mirror of
https://github.com/Gurge44/EndlessHostRoles.git
synced 2026-10-20 21:35:59 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d816b7c063 | ||
|
|
24924815a6 | ||
|
|
5f5ebd137e | ||
|
|
e219d884da | ||
|
|
ca6baa56fe | ||
|
|
39dd11eddb | ||
|
|
4b7e308417 | ||
|
|
ab17883b19 | ||
|
|
73e53e5afd | ||
|
|
95bc96f877 | ||
|
|
041c54303b | ||
|
|
732ba9ec01 |
No files matched your search
@@ -220,6 +220,7 @@ public enum CustomRoles
|
||||
Amnesiac,
|
||||
Arsonist,
|
||||
Bandit,
|
||||
Bargainer,
|
||||
BloodKnight,
|
||||
Bubble,
|
||||
Cherokious,
|
||||
@@ -271,6 +272,7 @@ public enum CustomRoles
|
||||
Ritualist,
|
||||
Romantic,
|
||||
RuthlessRomantic,
|
||||
Samurai,
|
||||
SchrodingersCat,
|
||||
NSerialKiller, // Serial Killer
|
||||
Sidekick,
|
||||
|
||||
@@ -220,6 +220,7 @@ public enum CustomRoles
|
||||
Amnesiac,
|
||||
Arsonist,
|
||||
Bandit,
|
||||
Bargainer,
|
||||
BloodKnight,
|
||||
Bubble,
|
||||
Cherokious,
|
||||
@@ -271,6 +272,7 @@ public enum CustomRoles
|
||||
Ritualist,
|
||||
Romantic,
|
||||
RuthlessRomantic,
|
||||
Samurai,
|
||||
SchrodingersCat,
|
||||
NSerialKiller, // Serial Killer
|
||||
Sidekick,
|
||||
|
||||
@@ -10,14 +10,17 @@
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FPS/@EntryIndexedValue">FPS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GM/@EntryIndexedValue">GM</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HUD/@EntryIndexedValue">HUD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=KCD/@EntryIndexedValue">KCD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NB/@EntryIndexedValue">NB</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NC/@EntryIndexedValue">NC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NE/@EntryIndexedValue">NE</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NK/@EntryIndexedValue">NK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NNK/@EntryIndexedValue">NNK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PC/@EntryIndexedValue">PC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RNG/@EntryIndexedValue">RNG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RPC/@EntryIndexedValue">RPC</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SK/@EntryIndexedValue">SK</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SS/@EntryIndexedValue">SS</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TMP/@EntryIndexedValue">TMP</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EHR/@EntryIndexedValue">EHR</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=UI/@EntryIndexedValue">UI</s:String>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.GameMode.HideAndSeekRoles;
|
||||
using EHR.Modules;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.GameMode.HideAndSeekRoles;
|
||||
using EHR.Modules;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR
|
||||
@@ -22,7 +22,7 @@ namespace EHR
|
||||
const int id = 69_211_001;
|
||||
Color color = new(52, 94, 235, byte.MaxValue);
|
||||
|
||||
MaxGameLength = IntegerOptionItem.Create(id, "FFA_GameTime", new(0, 1200, 10), 600, TabGroup.GameSettings, false)
|
||||
MaxGameLength = IntegerOptionItem.Create(id, "FFA_GameTime", new(0, 1200, 10), 600, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
.SetColor(color);
|
||||
|
||||
+23
-20
@@ -1,9 +1,9 @@
|
||||
using EHR.Modules;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using EHR.Modules;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
@@ -55,56 +55,59 @@ internal static class FFAManager
|
||||
|
||||
public static void SetupCustomOption()
|
||||
{
|
||||
FFAGameTime = IntegerOptionItem.Create(67_223_001, "FFA_GameTime", new(30, 600, 10), 300, TabGroup.GameSettings, false)
|
||||
FFAGameTime = IntegerOptionItem.Create(67_223_001, "FFA_GameTime", new(30, 600, 10), 300, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
.SetHeader(true);
|
||||
FFAKcd = FloatOptionItem.Create(67_223_002, "FFA_KCD", new(1f, 60f, 1f), 10f, TabGroup.GameSettings, false)
|
||||
FFAKcd = FloatOptionItem.Create(67_223_002, "FFA_KCD", new(1f, 60f, 1f), 10f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
FFADisableVentingWhenTwoPlayersAlive = BooleanOptionItem.Create(67_223_003, "FFA_DisableVentingWhenTwoPlayersAlive", true, TabGroup.GameSettings, false)
|
||||
FFADisableVentingWhenTwoPlayersAlive = BooleanOptionItem.Create(67_223_003, "FFA_DisableVentingWhenTwoPlayersAlive", true, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue));
|
||||
FFADisableVentingWhenKcdIsUp = BooleanOptionItem.Create(67_223_004, "FFA_DisableVentingWhenKCDIsUp", true, TabGroup.GameSettings, false)
|
||||
FFADisableVentingWhenKcdIsUp = BooleanOptionItem.Create(67_223_004, "FFA_DisableVentingWhenKCDIsUp", true, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue));
|
||||
FFAEnableRandomAbilities = BooleanOptionItem.Create(67_223_005, "FFA_EnableRandomAbilities", true, TabGroup.GameSettings, false)
|
||||
FFAEnableRandomAbilities = BooleanOptionItem.Create(67_223_005, "FFA_EnableRandomAbilities", true, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue));
|
||||
FFAShieldDuration = FloatOptionItem.Create(67_223_006, "FFA_ShieldDuration", new(1f, 70f, 1f), 7f, TabGroup.GameSettings, false)
|
||||
FFAShieldDuration = FloatOptionItem.Create(67_223_006, "FFA_ShieldDuration", new(1f, 70f, 1f), 7f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
FFAIncreasedSpeed = FloatOptionItem.Create(67_223_007, "FFA_IncreasedSpeed", new(0.1f, 5f, 0.1f), 1.5f, TabGroup.GameSettings, false)
|
||||
FFAIncreasedSpeed = FloatOptionItem.Create(67_223_007, "FFA_IncreasedSpeed", new(0.1f, 5f, 0.1f), 1.5f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Multiplier);
|
||||
FFADecreasedSpeed = FloatOptionItem.Create(67_223_008, "FFA_DecreasedSpeed", new(0.1f, 5f, 0.1f), 1f, TabGroup.GameSettings, false)
|
||||
FFADecreasedSpeed = FloatOptionItem.Create(67_223_008, "FFA_DecreasedSpeed", new(0.1f, 5f, 0.1f), 1f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Multiplier);
|
||||
FFAModifiedSpeedDuration = FloatOptionItem.Create(67_223_009, "FFA_ModifiedSpeedDuration", new(1f, 60f, 1f), 10f, TabGroup.GameSettings, false).SetGameMode(CustomGameMode.FFA).SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
FFAModifiedSpeedDuration = FloatOptionItem.Create(67_223_009, "FFA_ModifiedSpeedDuration", new(1f, 60f, 1f), 10f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA).SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
FFALowerVision = FloatOptionItem.Create(67_223_010, "FFA_LowerVision", new(0f, 1f, 0.05f), 0.5f, TabGroup.GameSettings, false).SetGameMode(CustomGameMode.FFA).SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
FFALowerVision = FloatOptionItem.Create(67_223_010, "FFA_LowerVision", new(0f, 1f, 0.05f), 0.5f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA).SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Multiplier);
|
||||
FFAModifiedVisionDuration = FloatOptionItem.Create(67_223_011, "FFA_ModifiedVisionDuration", new(1f, 70f, 1f), 5f, TabGroup.GameSettings, false).SetGameMode(CustomGameMode.FFA).SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
FFAModifiedVisionDuration = FloatOptionItem.Create(67_223_011, "FFA_ModifiedVisionDuration", new(1f, 70f, 1f), 5f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA).SetColor(new Color32(0, 255, 165, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
FFAEnableRandomTwists = BooleanOptionItem.Create(67_223_012, "FFA_EnableRandomTwists", true, TabGroup.GameSettings, false)
|
||||
FFAEnableRandomTwists = BooleanOptionItem.Create(67_223_012, "FFA_EnableRandomTwists", true, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue));
|
||||
FFAShieldIsOneTimeUse = BooleanOptionItem.Create(67_223_013, "FFA_ShieldIsOneTimeUse", true, TabGroup.GameSettings, false)
|
||||
FFAShieldIsOneTimeUse = BooleanOptionItem.Create(67_223_013, "FFA_ShieldIsOneTimeUse", true, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue));
|
||||
FFAChatDuringGame = BooleanOptionItem.Create(67_223_014, "FFA_ChatDuringGame", false, TabGroup.GameSettings, false)
|
||||
FFAChatDuringGame = BooleanOptionItem.Create(67_223_014, "FFA_ChatDuringGame", false, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue));
|
||||
FFATeamMode = BooleanOptionItem.Create(67_223_015, "FFA_TeamMode", false, TabGroup.GameSettings, false)
|
||||
FFATeamMode = BooleanOptionItem.Create(67_223_015, "FFA_TeamMode", false, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetHeader(true)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue));
|
||||
FFATeamNumber = IntegerOptionItem.Create(67_223_016, "FFA_TeamNumber", new(2, 7, 1), 2, TabGroup.GameSettings, false)
|
||||
FFATeamNumber = IntegerOptionItem.Create(67_223_016, "FFA_TeamNumber", new(2, 7, 1), 2, TabGroup.GameSettings)
|
||||
.SetParent(FFATeamMode)
|
||||
.SetGameMode(CustomGameMode.FFA)
|
||||
.SetColor(new Color32(0, 255, 165, byte.MaxValue));
|
||||
|
||||
@@ -13,12 +13,12 @@ namespace EHR.GameMode.HideAndSeekRoles
|
||||
public static void SetupCustomOption()
|
||||
{
|
||||
Options.SetupRoleOptions(69_211_301, TabGroup.NeutralRoles, CustomRoles.Fox, CustomGameMode.HideAndSeek, true);
|
||||
Vision = FloatOptionItem.Create(69_211_303, "FoxVision", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.NeutralRoles, false)
|
||||
Vision = FloatOptionItem.Create(69_211_303, "FoxVision", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.NeutralRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new(0, 255, 0, byte.MaxValue))
|
||||
.SetParent(Options.CustomRoleSpawnChances[CustomRoles.Fox]);
|
||||
Speed = FloatOptionItem.Create(69_213_304, "FoxSpeed", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.NeutralRoles, false)
|
||||
Speed = FloatOptionItem.Create(69_213_304, "FoxSpeed", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.NeutralRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new(0, 255, 0, byte.MaxValue))
|
||||
|
||||
@@ -18,15 +18,15 @@ namespace EHR.GameMode.HideAndSeekRoles
|
||||
.SetHeader(true)
|
||||
.SetColor(new(52, 94, 235, byte.MaxValue));
|
||||
|
||||
Vision = FloatOptionItem.Create(69_211_101, "HiderVision", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.CrewmateRoles, false)
|
||||
Vision = FloatOptionItem.Create(69_211_101, "HiderVision", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.CrewmateRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new(52, 94, 235, byte.MaxValue));
|
||||
Speed = FloatOptionItem.Create(69_211_102, "HiderSpeed", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.CrewmateRoles, false)
|
||||
Speed = FloatOptionItem.Create(69_211_102, "HiderSpeed", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.CrewmateRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new(52, 94, 235, byte.MaxValue));
|
||||
TimeDecreaseOnTaskComplete = IntegerOptionItem.Create(69_211_103, "TimeDecreaseOnTaskComplete", new(0, 60, 1), 5, TabGroup.CrewmateRoles, false)
|
||||
TimeDecreaseOnTaskComplete = IntegerOptionItem.Create(69_211_103, "TimeDecreaseOnTaskComplete", new(0, 60, 1), 5, TabGroup.CrewmateRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
.SetColor(new(52, 94, 235, byte.MaxValue));
|
||||
|
||||
@@ -19,19 +19,19 @@ namespace EHR.GameMode.HideAndSeekRoles
|
||||
.SetHeader(true)
|
||||
.SetColor(new(255, 25, 25, byte.MaxValue));
|
||||
|
||||
Vision = FloatOptionItem.Create(69_211_201, "SeekerVision", new(0.05f, 5f, 0.05f), 0.5f, TabGroup.ImpostorRoles, false)
|
||||
Vision = FloatOptionItem.Create(69_211_201, "SeekerVision", new(0.05f, 5f, 0.05f), 0.5f, TabGroup.ImpostorRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new(255, 25, 25, byte.MaxValue));
|
||||
Speed = FloatOptionItem.Create(69_211_202, "SeekerSpeed", new(0.05f, 5f, 0.05f), 1.5f, TabGroup.ImpostorRoles, false)
|
||||
Speed = FloatOptionItem.Create(69_211_202, "SeekerSpeed", new(0.05f, 5f, 0.05f), 1.5f, TabGroup.ImpostorRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new(255, 25, 25, byte.MaxValue));
|
||||
KillCooldown = FloatOptionItem.Create(69_211_203, "KillCooldown", new(0f, 90f, 1f), 10f, TabGroup.ImpostorRoles, false)
|
||||
KillCooldown = FloatOptionItem.Create(69_211_203, "KillCooldown", new(0f, 90f, 1f), 10f, TabGroup.ImpostorRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
.SetColor(new(255, 25, 25, byte.MaxValue));
|
||||
CanVent = BooleanOptionItem.Create(69_211_204, "CanVent", false, TabGroup.ImpostorRoles, false)
|
||||
CanVent = BooleanOptionItem.Create(69_211_204, "CanVent", false, TabGroup.ImpostorRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetColor(new(255, 25, 25, byte.MaxValue));
|
||||
}
|
||||
|
||||
@@ -13,12 +13,12 @@ namespace EHR.GameMode.HideAndSeekRoles
|
||||
public static void SetupCustomOption()
|
||||
{
|
||||
Options.SetupRoleOptions(69_211_401, TabGroup.NeutralRoles, CustomRoles.Troll, CustomGameMode.HideAndSeek, true);
|
||||
Vision = FloatOptionItem.Create(69_211_403, "TrollVision", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.NeutralRoles, false)
|
||||
Vision = FloatOptionItem.Create(69_211_403, "TrollVision", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.NeutralRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new(255, 0, 255, byte.MaxValue))
|
||||
.SetParent(Options.CustomRoleSpawnChances[CustomRoles.Troll]);
|
||||
Speed = FloatOptionItem.Create(69_211_404, "TrollSpeed", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.NeutralRoles, false)
|
||||
Speed = FloatOptionItem.Create(69_211_404, "TrollSpeed", new(0.05f, 5f, 0.05f), 1.25f, TabGroup.NeutralRoles)
|
||||
.SetGameMode(CustomGameMode.HideAndSeek)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new(255, 0, 255, byte.MaxValue))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR
|
||||
@@ -23,19 +23,19 @@ namespace EHR
|
||||
|
||||
public static void SetupCustomOption()
|
||||
{
|
||||
Time = IntegerOptionItem.Create(69_213_001, "HotPotato_Time", new(1, 90, 1), 20, TabGroup.GameSettings, false)
|
||||
Time = IntegerOptionItem.Create(69_213_001, "HotPotato_Time", new(1, 90, 1), 20, TabGroup.GameSettings)
|
||||
.SetHeader(true)
|
||||
.SetGameMode(CustomGameMode.HotPotato)
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
.SetColor(new Color32(232, 205, 70, byte.MaxValue));
|
||||
HolderSpeed = FloatOptionItem.Create(69_213_002, "HotPotato_HolderSpeed", new(0.1f, 5f, 0.1f), 1.5f, TabGroup.GameSettings, false)
|
||||
HolderSpeed = FloatOptionItem.Create(69_213_002, "HotPotato_HolderSpeed", new(0.1f, 5f, 0.1f), 1.5f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.HotPotato)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new Color32(232, 205, 70, byte.MaxValue));
|
||||
Chat = BooleanOptionItem.Create(69_213_003, "FFA_ChatDuringGame", false, TabGroup.GameSettings, false)
|
||||
Chat = BooleanOptionItem.Create(69_213_003, "FFA_ChatDuringGame", false, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.HotPotato)
|
||||
.SetColor(new Color32(232, 205, 70, byte.MaxValue));
|
||||
Range = FloatOptionItem.Create(69_213_004, "HotPotato_Range", new(0.25f, 5f, 0.25f), 1f, TabGroup.GameSettings, false)
|
||||
Range = FloatOptionItem.Create(69_213_004, "HotPotato_Range", new(0.25f, 5f, 0.25f), 1f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.HotPotato)
|
||||
.SetValueFormat(OptionFormat.Multiplier)
|
||||
.SetColor(new Color32(232, 205, 70, byte.MaxValue));
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using EHR.Roles.AddOns.Common;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using EHR.Roles.AddOns.Common;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
@@ -64,7 +64,7 @@ public class Counter(int totalGreenTime, int totalRedTime, long startTimeStamp,
|
||||
{
|
||||
get
|
||||
{
|
||||
string result = IsYellow || (Timer == TotalGreenTime && !IsRed && !IsYellow) || (Timer == TotalRedTime && IsRed) ? Utils.ColorString(Color.clear, "00") : Utils.ColorString(IsRed ? Color.red : Color.green, Timer < 10 ? $"0{Timer}" : Timer.ToString());
|
||||
string result = IsYellow || (Timer == TotalGreenTime && !IsRed && !IsYellow) || (Timer == TotalRedTime && IsRed) ? Utils.ColorString(Color.clear, "00") : Utils.ColorString(IsRed ? Color.red : Color.green, Timer < 10 ? $" {Timer}" : Timer.ToString());
|
||||
|
||||
if (Timer is <= 19 and >= 10 && !IsYellow) result = $" {result}";
|
||||
if (Timer % 10 == 1 && !IsYellow) result = result.Insert(result.Length - 9, " ");
|
||||
@@ -217,7 +217,7 @@ internal class MoveAndStopManager
|
||||
private static int DefaultMaxValue => 30;
|
||||
|
||||
private static OptionItem CreateSetting(int Id, string direction, bool red, bool min) =>
|
||||
IntegerOptionItem.Create(Id, CounterSettingString(direction, red, min), CounterValueRule, min ? DefaultMinValue : DefaultMaxValue, TabGroup.GameSettings, false)
|
||||
IntegerOptionItem.Create(Id, CounterSettingString(direction, red, min), CounterValueRule, min ? DefaultMinValue : DefaultMaxValue, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.MoveAndStop)
|
||||
.SetColor(new Color32(0, 255, 255, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
@@ -230,7 +230,7 @@ internal class MoveAndStopManager
|
||||
.AddReplacement(new("Middle", Utils.ColorString(Color.white, "Middle")));
|
||||
|
||||
private static OptionItem CreateExtraTimeSetting(int Id, string mapName, int defaultValue) =>
|
||||
IntegerOptionItem.Create(Id, $"MoveAndStop_ExtraGreenTimeOn{mapName}", ExtraTimeValue, defaultValue, TabGroup.GameSettings, false)
|
||||
IntegerOptionItem.Create(Id, $"MoveAndStop_ExtraGreenTimeOn{mapName}", ExtraTimeValue, defaultValue, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.MoveAndStop)
|
||||
.SetColor(new Color32(0, 255, 255, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
@@ -238,7 +238,7 @@ internal class MoveAndStopManager
|
||||
|
||||
public static void SetupCustomOption()
|
||||
{
|
||||
MoveAndStop_GameTime = IntegerOptionItem.Create(68_213_001, "FFA_GameTime", new(30, 1200, 10), 900, TabGroup.GameSettings, false)
|
||||
MoveAndStop_GameTime = IntegerOptionItem.Create(68_213_001, "FFA_GameTime", new(30, 1200, 10), 900, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.MoveAndStop)
|
||||
.SetColor(new Color32(0, 255, 255, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using EHR.Modules;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using static EHR.RandomSpawn;
|
||||
|
||||
@@ -43,40 +43,40 @@ internal static class SoloKombatManager
|
||||
|
||||
public static void SetupCustomOption()
|
||||
{
|
||||
KB_GameTime = IntegerOptionItem.Create(66_233_001, "KB_GameTime", new(30, 300, 5), 180, TabGroup.GameSettings, false)
|
||||
KB_GameTime = IntegerOptionItem.Create(66_233_001, "KB_GameTime", new(30, 300, 5), 180, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds)
|
||||
.SetHeader(true);
|
||||
KB_ATKCooldown = FloatOptionItem.Create(66_223_008, "KB_ATKCooldown", new(1f, 10f, 0.1f), 1f, TabGroup.GameSettings, false)
|
||||
KB_ATKCooldown = FloatOptionItem.Create(66_223_008, "KB_ATKCooldown", new(1f, 10f, 0.1f), 1f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
KB_HPMax = FloatOptionItem.Create(66_233_002, "KB_HPMax", new(10f, 990f, 5f), 100f, TabGroup.GameSettings, false)
|
||||
KB_HPMax = FloatOptionItem.Create(66_233_002, "KB_HPMax", new(10f, 990f, 5f), 100f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Health);
|
||||
KB_ATK = FloatOptionItem.Create(66_233_003, "KB_ATK", new(1f, 100f, 1f), 8f, TabGroup.GameSettings, false)
|
||||
KB_ATK = FloatOptionItem.Create(66_233_003, "KB_ATK", new(1f, 100f, 1f), 8f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Health);
|
||||
KB_RecoverPerSecond = FloatOptionItem.Create(66_233_005, "KB_RecoverPerSecond", new(1f, 180f, 1f), 2f, TabGroup.GameSettings, false)
|
||||
KB_RecoverPerSecond = FloatOptionItem.Create(66_233_005, "KB_RecoverPerSecond", new(1f, 180f, 1f), 2f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Health);
|
||||
KB_RecoverAfterSecond = IntegerOptionItem.Create(66_233_004, "KB_RecoverAfterSecond", new(0, 60, 1), 8, TabGroup.GameSettings, false)
|
||||
KB_RecoverAfterSecond = IntegerOptionItem.Create(66_233_004, "KB_RecoverAfterSecond", new(0, 60, 1), 8, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
KB_ResurrectionWaitingTime = IntegerOptionItem.Create(66_233_006, "KB_ResurrectionWaitingTime", new(3, 990, 1), 15, TabGroup.GameSettings, false)
|
||||
KB_ResurrectionWaitingTime = IntegerOptionItem.Create(66_233_006, "KB_ResurrectionWaitingTime", new(3, 990, 1), 15, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
KB_KillBonusMultiplier = FloatOptionItem.Create(66_233_007, "KB_KillBonusMultiplier", new(0.25f, 5f, 0.25f), 1.25f, TabGroup.GameSettings, false)
|
||||
KB_KillBonusMultiplier = FloatOptionItem.Create(66_233_007, "KB_KillBonusMultiplier", new(0.25f, 5f, 0.25f), 1.25f, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue))
|
||||
.SetValueFormat(OptionFormat.Multiplier);
|
||||
KB_BootVentWhenDead = BooleanOptionItem.Create(66_233_009, "KB_BootVentWhenDead", false, TabGroup.GameSettings, false)
|
||||
KB_BootVentWhenDead = BooleanOptionItem.Create(66_233_009, "KB_BootVentWhenDead", false, TabGroup.GameSettings)
|
||||
.SetGameMode(CustomGameMode.SoloKombat)
|
||||
.SetColor(new Color32(245, 82, 82, byte.MaxValue));
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using Hazel;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using Hazel;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
@@ -8,6 +6,8 @@ using System.Reflection;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using static EHR.Translator;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using AmongUs.Data;
|
||||
using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using BepInEx.Configuration;
|
||||
using System;
|
||||
using System;
|
||||
using BepInEx.Configuration;
|
||||
using UnityEngine;
|
||||
using Object = UnityEngine.Object;
|
||||
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net.Sockets;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using AmongUs.GameOptions;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.Impostor;
|
||||
using HarmonyLib;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace EHR.Modules;
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
@@ -333,6 +333,8 @@ internal static class CustomRolesHelper
|
||||
CustomRoles.BloodKnight => RoleTypes.Impostor,
|
||||
CustomRoles.Poisoner => RoleTypes.Impostor,
|
||||
CustomRoles.NSerialKiller => RoleTypes.Impostor,
|
||||
CustomRoles.Samurai => RoleTypes.Impostor,
|
||||
CustomRoles.Bargainer => RoleTypes.Impostor,
|
||||
CustomRoles.Tiger => RoleTypes.Impostor,
|
||||
CustomRoles.SoulHunter => RoleTypes.Impostor,
|
||||
CustomRoles.Enderman => RoleTypes.Impostor,
|
||||
@@ -433,6 +435,8 @@ internal static class CustomRolesHelper
|
||||
CustomRoles.Refugee or
|
||||
CustomRoles.Parasite or
|
||||
CustomRoles.NSerialKiller or
|
||||
CustomRoles.Samurai or
|
||||
CustomRoles.Bargainer or
|
||||
CustomRoles.Tiger or
|
||||
CustomRoles.Enderman or
|
||||
CustomRoles.Mycologist or
|
||||
@@ -1156,6 +1160,8 @@ internal static class CustomRolesHelper
|
||||
CustomRoles.PlagueBearer => CountTypes.PlagueBearer,
|
||||
CustomRoles.Parasite => CountTypes.Impostor,
|
||||
CustomRoles.NSerialKiller => CountTypes.NSerialKiller,
|
||||
CustomRoles.Samurai => CountTypes.Samurai,
|
||||
CustomRoles.Bargainer => CountTypes.Bargainer,
|
||||
CustomRoles.Tiger => CountTypes.Tiger,
|
||||
CustomRoles.Enderman => CountTypes.Enderman,
|
||||
CustomRoles.Mycologist => CountTypes.Mycologist,
|
||||
@@ -1305,6 +1311,8 @@ public enum CountTypes
|
||||
HexMaster,
|
||||
Wraith,
|
||||
NSerialKiller,
|
||||
Samurai,
|
||||
Bargainer,
|
||||
Tiger,
|
||||
Enderman,
|
||||
Mycologist,
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using AmongUs.GameOptions;
|
||||
using Hazel;
|
||||
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using Hazel;
|
||||
using System;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using Hazel;
|
||||
|
||||
namespace EHR.Modules;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace EHR.Modules
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using Hazel;
|
||||
using System.Collections.Generic;
|
||||
using Hazel;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -4,30 +4,25 @@ namespace EHR;
|
||||
|
||||
public static class DebugModeManager
|
||||
{
|
||||
// これが有効の時、通常のゲームに支障のないデバッグ機能(詳細ログ・ゲーム外でのデバッグ表示など)が有効化される。
|
||||
// また、ゲーム内オプションでデバッグモードを有効化することができる。
|
||||
public static bool AmDebugger { get; private set; } =
|
||||
#if DEBUG
|
||||
true;
|
||||
true;
|
||||
#else
|
||||
false;
|
||||
#endif
|
||||
// これが有効の時、通常のゲームを破壊する可能性のある強力なデバッグ機能(テレポートなど)が有効化される。
|
||||
public static bool IsDebugMode => AmDebugger && EnableDebugMode != null && EnableDebugMode.GetBool();
|
||||
|
||||
public static OptionItem EnableDebugMode;
|
||||
|
||||
public static void Auth(HashAuth auth, string input)
|
||||
{
|
||||
// AmDebugger = デバッグビルドである || デバッグキー認証が通った
|
||||
AmDebugger = AmDebugger || auth.CheckString(input);
|
||||
}
|
||||
|
||||
public static void SetupCustomOption()
|
||||
{
|
||||
EnableDebugMode = BooleanOptionItem.Create(2, "EnableDebugMode", false, TabGroup.SystemSettings, true)
|
||||
.SetHeader(true)
|
||||
.SetColor(Color.green)
|
||||
.SetHeader(true)
|
||||
.SetHidden(!AmDebugger);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,3 @@
|
||||
using EHR.Modules;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
@@ -6,6 +5,7 @@ using System.Diagnostics.CodeAnalysis;
|
||||
using System.IO;
|
||||
using System.Net.Http;
|
||||
using System.Runtime.CompilerServices;
|
||||
using EHR.Modules;
|
||||
using LogLevel = BepInEx.Logging.LogLevel;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
using Object = UnityEngine.Object;
|
||||
|
||||
|
||||
+5
-5
@@ -1,11 +1,11 @@
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using Hazel;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using Hazel;
|
||||
using InnerNet;
|
||||
using static EHR.Translator;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using EHR.Patches;
|
||||
@@ -9,11 +14,6 @@ using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
using static EHR.Utils;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using AmongUs.GameOptions;
|
||||
using Hazel;
|
||||
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Array = Il2CppSystem.Array;
|
||||
using Buffer = Il2CppSystem.Buffer;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using AmongUs.GameOptions;
|
||||
using System;
|
||||
using AmongUs.GameOptions;
|
||||
|
||||
namespace EHR.Modules;
|
||||
|
||||
@@ -14,19 +14,19 @@ public class NormalGameOptionsSender : GameOptionsSender
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_logicOptions == null || !GameManager.Instance.LogicComponents.Contains(_logicOptions))
|
||||
if (GameManager.Instance != null && GameManager.Instance.LogicComponents != null && (_logicOptions == null || !GameManager.Instance.LogicComponents.Contains(_logicOptions)))
|
||||
{
|
||||
foreach (var glc in GameManager.Instance?.LogicComponents)
|
||||
foreach (var glc in GameManager.Instance.LogicComponents)
|
||||
if (glc.TryCast<LogicOptions>(out var lo))
|
||||
_logicOptions = lo;
|
||||
}
|
||||
|
||||
return _logicOptions != null && _logicOptions.IsDirty;
|
||||
return _logicOptions is { IsDirty: true };
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.Fatal(ex.ToString(), "NormalGameOptionsSender.IsDirty.Get");
|
||||
return _logicOptions != null && _logicOptions.IsDirty;
|
||||
Logger.Error(ex.ToString(), "NormalGameOptionsSender.IsDirty.Get");
|
||||
return _logicOptions is { IsDirty: true };
|
||||
}
|
||||
}
|
||||
protected set { _logicOptions?.ClearDirtyFlag(); }
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using AmongUs.GameOptions;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.AddOns.GhostRoles;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
@@ -6,8 +8,6 @@ using EHR.Roles.Neutral;
|
||||
using Hazel;
|
||||
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Mathf = UnityEngine.Mathf;
|
||||
|
||||
namespace EHR.Modules;
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.AddOns.Crewmate;
|
||||
@@ -7,9 +10,6 @@ using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.AddOns.GhostRoles;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.AddOns.GhostRoles;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace EHR.Modules
|
||||
{
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
using EHR.Modules;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.AddOns.Common;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using EHR.Patches;
|
||||
using System;
|
||||
using EHR.Patches;
|
||||
using Rewired.Utils;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using Object = UnityEngine.Object;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using AmongUs.GameOptions;
|
||||
using System;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
using System;
|
||||
|
||||
namespace EHR.Modules;
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using HarmonyLib;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Net.Http;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using HarmonyLib;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Twitch;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.Linq;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.AddOns.Common;
|
||||
using EHR.Roles.AddOns.GhostRoles;
|
||||
@@ -5,7 +6,6 @@ using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using Hazel;
|
||||
using System.Linq;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using EHR.Modules;
|
||||
using System.Collections.Generic;
|
||||
using EHR.Modules;
|
||||
using Hazel;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using AmongUs.GameOptions;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using AmongUs.GameOptions;
|
||||
using System;
|
||||
using AmongUs.GameOptions;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
+287
-287
File diff suppressed because it is too large.
Load diff
@@ -6,7 +6,7 @@ public class BooleanOptionItem(int id, string name, bool defaultValue, TabGroup
|
||||
public const string TEXT_false = "ColoredOff";
|
||||
|
||||
public static BooleanOptionItem Create(
|
||||
int id, string name, bool defaultValue, TabGroup tab, bool isSingleValue
|
||||
int id, string name, bool defaultValue, TabGroup tab, bool isSingleValue = false
|
||||
)
|
||||
{
|
||||
return new(
|
||||
|
||||
@@ -6,7 +6,7 @@ public class FloatOptionItem(int id, string name, float defaultValue, TabGroup t
|
||||
public FloatValueRule Rule = rule;
|
||||
|
||||
public static FloatOptionItem Create(
|
||||
int id, string name, FloatValueRule rule, float defaultValue, TabGroup tab, bool isSingleValue
|
||||
int id, string name, FloatValueRule rule, float defaultValue, TabGroup tab, bool isSingleValue = false
|
||||
)
|
||||
{
|
||||
return new(
|
||||
|
||||
@@ -6,7 +6,7 @@ public class IntegerOptionItem(int id, string name, int defaultValue, TabGroup t
|
||||
public IntegerValueRule Rule = rule;
|
||||
|
||||
public static IntegerOptionItem Create(
|
||||
int id, string name, IntegerValueRule rule, int defaultValue, TabGroup tab, bool isSingleValue
|
||||
int id, string name, IntegerValueRule rule, int defaultValue, TabGroup tab, bool isSingleValue = false
|
||||
)
|
||||
{
|
||||
return new(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using EHR.Modules;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using EHR.Modules;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
@@ -166,7 +166,7 @@ public abstract class OptionItem
|
||||
return disableColor ? Translator.GetString(Name, ReplacementDictionary, console) : Utils.ColorString(NameColor, Translator.GetString(Name, ReplacementDictionary));
|
||||
}
|
||||
|
||||
public virtual bool GetBool() => CurrentValue != 0 && (Parent == null || Parent.GetBool());
|
||||
public virtual bool GetBool() => Name == "Bargainer.LensOfTruth.DurationSwitch" ? GetValue() == 3 : CurrentValue != 0 && (Parent == null || Parent.GetBool());
|
||||
public virtual int GetInt() => CurrentValue;
|
||||
public virtual float GetFloat() => CurrentValue;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ public class StringOptionItem(int id, string name, int defaultValue, TabGroup ta
|
||||
public IntegerValueRule Rule = (0, selections.Length - 1, 1);
|
||||
public string[] Selections = selections;
|
||||
|
||||
public static StringOptionItem Create(int id, string name, string[] selections, int defaultIndex, TabGroup tab, bool isSingleValue, bool noTranslation = false)
|
||||
public static StringOptionItem Create(int id, string name, string[] selections, int defaultIndex, TabGroup tab, bool isSingleValue = false, bool noTranslation = false)
|
||||
=> new(id, name, defaultIndex, tab, isSingleValue, selections, noTranslation);
|
||||
|
||||
// Getter
|
||||
|
||||
@@ -6,8 +6,8 @@ public class TextOptionItem : OptionItem
|
||||
public IntegerValueRule Rule;
|
||||
|
||||
// コンストラクタ
|
||||
public TextOptionItem(int id, string name, int defaultValue, TabGroup tab, bool isSingleValue)
|
||||
: base(id, name, defaultValue, tab, isSingleValue)
|
||||
public TextOptionItem(int id, string name, int defaultValue, TabGroup tab, bool isSingleValue = false)
|
||||
: base(id, name, defaultValue, tab, isSingleValue)
|
||||
{
|
||||
IsText = true;
|
||||
IsHeader = true;
|
||||
|
||||
+4
-4
@@ -1,3 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.AddOns.Crewmate;
|
||||
using EHR.Roles.AddOns.Impostor;
|
||||
@@ -7,10 +11,6 @@ using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using static EHR.Translator;
|
||||
|
||||
namespace EHR.Modules;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using HarmonyLib;
|
||||
using Il2CppInterop.Runtime.InteropTypes;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using HarmonyLib;
|
||||
using Il2CppInterop.Runtime.InteropTypes;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
using AmongUs.Data;
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
@@ -9,6 +6,9 @@ using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using AmongUs.Data;
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
using HarmonyLib;
|
||||
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
@@ -9,6 +7,8 @@ using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.RegularExpressions;
|
||||
using HarmonyLib;
|
||||
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||
using Object = Il2CppSystem.Object;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
+24
-9
@@ -1,3 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AmongUs.Data;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
@@ -12,15 +21,6 @@ using HarmonyLib;
|
||||
using Hazel;
|
||||
using Il2CppInterop.Runtime.InteropTypes;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
using Object = UnityEngine.Object;
|
||||
@@ -518,6 +518,8 @@ public static class Utils
|
||||
case CustomRoles.Eclipse:
|
||||
case CustomRoles.Pyromaniac:
|
||||
case CustomRoles.NSerialKiller:
|
||||
case CustomRoles.Samurai:
|
||||
case CustomRoles.Bargainer:
|
||||
case CustomRoles.Tiger:
|
||||
case CustomRoles.SoulHunter:
|
||||
case CustomRoles.Enderman:
|
||||
@@ -706,6 +708,7 @@ public static class Utils
|
||||
__instance.Is(CustomRoleTypes.Impostor) && PlayerControl.LocalPlayer.Is(CustomRoleTypes.Impostor) && Options.ImpKnowAlliesRole.GetBool() ||
|
||||
__instance.Is(CustomRoleTypes.Impostor) && PlayerControl.LocalPlayer.Is(CustomRoles.Madmate) && Options.MadmateKnowWhosImp.GetBool() ||
|
||||
CustomTeamManager.AreInSameCustomTeam(__instance.PlayerId, PlayerControl.LocalPlayer.PlayerId) && Options.CTAPlayersCanSeeEachOthersRoles.GetBool() ||
|
||||
Bargainer.KnowRole(PlayerControl.LocalPlayer, __instance) ||
|
||||
Adventurer.KnowRole(PlayerControl.LocalPlayer, __instance) ||
|
||||
Totocalcio.KnowRole(PlayerControl.LocalPlayer, __instance) ||
|
||||
Romantic.KnowRole(PlayerControl.LocalPlayer, __instance) ||
|
||||
@@ -1812,6 +1815,7 @@ public static class Utils
|
||||
SelfSuffix.Append(Commander.GetSuffixText(seer, seer));
|
||||
SelfSuffix.Append(AntiAdminer.GetSuffixText(seer));
|
||||
SelfSuffix.Append(Roles.Impostor.Sentry.GetSuffix(seer));
|
||||
SelfSuffix.Append(Bargainer.GetSuffix(seer));
|
||||
|
||||
switch (seer.GetCustomRole())
|
||||
{
|
||||
@@ -1943,6 +1947,9 @@ public static class Utils
|
||||
|
||||
string SeerRealName = seer.GetRealName(isForMeeting);
|
||||
|
||||
if (Options.CurrentGameMode == CustomGameMode.FFA && FFAManager.FFATeamMode.GetBool())
|
||||
SeerRealName = SeerRealName.ApplyNameColorData(seer, seer, isForMeeting);
|
||||
|
||||
if (!isForMeeting && MeetingStates.FirstMeeting && Options.ChangeNameToRoleInfo.GetBool() && Options.CurrentGameMode is not CustomGameMode.FFA and not CustomGameMode.MoveAndStop and not CustomGameMode.HotPotato)
|
||||
{
|
||||
var team = CustomTeamManager.GetCustomTeam(seer.PlayerId);
|
||||
@@ -2122,6 +2129,13 @@ public static class Utils
|
||||
TargetMark.Append($"<color={GetRoleColorCode(CustomRoles.Analyst)}>○</color>");
|
||||
}
|
||||
|
||||
break;
|
||||
case CustomRoles.Samurai: // Same as Analyst
|
||||
if ((Main.PlayerStates[seer.PlayerId].Role as Samurai).Target.Id == target.PlayerId)
|
||||
{
|
||||
TargetMark.Append($"<color={GetRoleColorCode(CustomRoles.Samurai)}>○</color>");
|
||||
}
|
||||
|
||||
break;
|
||||
case CustomRoles.Puppeteer when Puppeteer.PuppeteerList.ContainsValue(seer.PlayerId) && Puppeteer.PuppeteerList.ContainsKey(target.PlayerId):
|
||||
TargetMark.Append($"<color={GetRoleColorCode(CustomRoles.Impostor)}>◆</color>");
|
||||
@@ -2150,6 +2164,7 @@ public static class Utils
|
||||
(seer.Is(CustomRoleTypes.Crewmate) && target.Is(CustomRoles.Marshall) && target.GetTaskState().IsTaskFinished) ||
|
||||
(Main.PlayerStates[target.PlayerId].deathReason == PlayerState.DeathReason.Vote && Options.SeeEjectedRolesInMeeting.GetBool()) ||
|
||||
CustomTeamManager.AreInSameCustomTeam(seer.PlayerId, target.PlayerId) && Options.CTAPlayersCanSeeEachOthersRoles.GetBool() ||
|
||||
Bargainer.KnowRole(seer, target) ||
|
||||
Adventurer.KnowRole(seer, target) ||
|
||||
Totocalcio.KnowRole(seer, target) ||
|
||||
Romantic.KnowRole(seer, target) ||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using HarmonyLib;
|
||||
using System.Collections.Generic;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using AmongUs.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.Data;
|
||||
using AmongUs.Data.Player;
|
||||
using Assets.InnerNet;
|
||||
using HarmonyLib;
|
||||
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
+11
-17
@@ -1,15 +1,15 @@
|
||||
using Assets.CoreScripts;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using Assets.CoreScripts;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
@@ -966,18 +966,12 @@ internal class ChatCommands
|
||||
string[] args = text.Split(' ');
|
||||
string subArgs;
|
||||
|
||||
if (GuessManager.GuesserMsg(player, text))
|
||||
if (GuessManager.GuesserMsg(player, text) ||
|
||||
Judge.TrialMsg(player, text) ||
|
||||
NiceSwapper.SwapMsg(player, text) ||
|
||||
ParityCop.ParityCheckMsg(player, text) ||
|
||||
Councillor.MurderMsg(player, text))
|
||||
{
|
||||
if (Judge.TrialMsg(player, text) ||
|
||||
NiceSwapper.SwapMsg(player, text) ||
|
||||
ParityCop.ParityCheckMsg(player, text) ||
|
||||
Councillor.MurderMsg(player, text))
|
||||
{
|
||||
canceled = true;
|
||||
LastSentCommand[player.PlayerId] = now;
|
||||
return;
|
||||
}
|
||||
|
||||
canceled = true;
|
||||
LastSentCommand[player.PlayerId] = now;
|
||||
return;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.Data;
|
||||
using EHR.Roles.Impostor;
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using BepInEx.Unity.IL2CPP.Utils.Collections;
|
||||
using EHR.Modules;
|
||||
@@ -7,9 +10,6 @@ using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using InnerNet;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using static EHR.CustomWinnerHolder;
|
||||
using static EHR.Translator;
|
||||
@@ -227,7 +227,7 @@ class GameEndChecker
|
||||
WinnerIds.RemoveWhere(x => CustomTeamManager.GetCustomTeam(x) != null);
|
||||
}
|
||||
|
||||
if (WinnerTeam == CustomWinner.Lovers || WinnerIds.Any(x => Main.PlayerStates[x].SubRoles.Contains(CustomRoles.Lovers)))
|
||||
if ((WinnerTeam == CustomWinner.Lovers || WinnerIds.Any(x => Main.PlayerStates[x].SubRoles.Contains(CustomRoles.Lovers))) && Main.LoversPlayers.All(x => x.IsAlive()))
|
||||
{
|
||||
if (WinnerTeam != CustomWinner.Lovers) AdditionalWinnerTeams.Add(AdditionalWinners.Lovers);
|
||||
Main.AllPlayerControls
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using EHR.Modules;
|
||||
using HarmonyLib;
|
||||
using Rewired;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using EHR.Modules;
|
||||
using HarmonyLib;
|
||||
using Rewired;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using EHR.Modules;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using EHR.Modules;
|
||||
using HarmonyLib;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using AmongUs.Data;
|
||||
using Discord;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
|
||||
namespace EHR.Patches
|
||||
{
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.Linq;
|
||||
using AmongUs.Data;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.AddOns.Crewmate;
|
||||
@@ -6,7 +7,6 @@ using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using System.Linq;
|
||||
|
||||
namespace EHR.Patches;
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using HarmonyLib;
|
||||
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||
using Il2CppSystem.Collections.Generic;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.Data;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
+5
-4
@@ -1,3 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.AddOns.Common;
|
||||
using EHR.Roles.Crewmate;
|
||||
@@ -5,9 +8,6 @@ using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Il2CppSystem.Text;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
@@ -31,7 +31,7 @@ class HudManagerPatch
|
||||
|
||||
private static TextMeshPro OverriddenRolesText;
|
||||
|
||||
private static long LastNullError = 0;
|
||||
private static long LastNullError;
|
||||
|
||||
//public static GameObject TempLowerInfoText;
|
||||
public static void Postfix(HudManager __instance)
|
||||
@@ -386,6 +386,7 @@ class HudManagerPatch
|
||||
CustomRoles.WeaponMaster => WeaponMaster.GetHudAndProgressText(player.PlayerId),
|
||||
CustomRoles.Postman => Postman.GetHudText(player),
|
||||
CustomRoles.SoulHunter => SoulHunter.HUDText(player.PlayerId),
|
||||
CustomRoles.Bargainer => Bargainer.GetSuffix(player),
|
||||
CustomRoles.Chronomancer => Chronomancer.GetHudText(player.PlayerId),
|
||||
CustomRoles.Mafioso => Mafioso.GetHUDText(player),
|
||||
CustomRoles.Druid => Druid.GetHUDText(player),
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Il2CppSystem.Collections.Generic;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using HarmonyLib;
|
||||
using System.Text.RegularExpressions;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using HarmonyLib;
|
||||
using System.Collections.Generic;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using BepInEx.Unity.IL2CPP.Utils;
|
||||
using System.Collections;
|
||||
using BepInEx.Unity.IL2CPP.Utils;
|
||||
using HarmonyLib;
|
||||
using System.Collections;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using HarmonyLib;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
@@ -102,7 +102,7 @@ public class MainMenuManagerPatch
|
||||
{
|
||||
freeplayButton.GetComponent<PassiveButton>().OnClick = new();
|
||||
freeplayButton.GetComponent<PassiveButton>().OnClick.AddListener((Action)(() => Application.OpenURL("https://tohe.cc")));
|
||||
__instance.StartCoroutine(Effects.Lerp(0.01f, new Action<float>((p) => freeplayButton.transform.GetChild(0).GetComponent<TMP_Text>().SetText(GetString("Website")))));
|
||||
__instance.StartCoroutine(Effects.Lerp(0.01f, new Action<float>(p => freeplayButton.transform.GetChild(0).GetComponent<TMP_Text>().SetText(GetString("Website")))));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
using Object = UnityEngine.Object;
|
||||
@@ -797,6 +797,7 @@ class MeetingHudStartPatch
|
||||
(pc.Is(CustomRoles.Marshall) && PlayerControl.LocalPlayer.Is(CustomRoleTypes.Crewmate) && pc.GetTaskState().IsTaskFinished) ||
|
||||
(Main.PlayerStates[pc.PlayerId].deathReason == PlayerState.DeathReason.Vote && Options.SeeEjectedRolesInMeeting.GetBool()) ||
|
||||
CustomTeamManager.AreInSameCustomTeam(pc.PlayerId, PlayerControl.LocalPlayer.PlayerId) && Options.CTAPlayersCanSeeEachOthersRoles.GetBool() ||
|
||||
Bargainer.KnowRole(PlayerControl.LocalPlayer, pc) ||
|
||||
Adventurer.KnowRole(PlayerControl.LocalPlayer, pc) ||
|
||||
Totocalcio.KnowRole(PlayerControl.LocalPlayer, pc) ||
|
||||
Romantic.KnowRole(PlayerControl.LocalPlayer, pc) ||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace EHR.Patches;
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using EHR.Patches;
|
||||
@@ -11,11 +16,6 @@ using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using static EHR.Translator;
|
||||
@@ -130,7 +130,7 @@ class CheckMurderPatch
|
||||
{
|
||||
if (!AmongUsClient.Instance.AmHost) return false;
|
||||
|
||||
var killer = __instance; // alternative variable
|
||||
var killer = __instance;
|
||||
|
||||
Logger.Info($"{killer.GetNameWithRole().RemoveHtmlTags()} => {target.GetNameWithRole().RemoveHtmlTags()}", "CheckMurder");
|
||||
|
||||
@@ -185,21 +185,16 @@ class CheckMurderPatch
|
||||
{
|
||||
if (!Main.KilledDiseased.TryAdd(killer.PlayerId, 1))
|
||||
{
|
||||
// Key already exists, update the value
|
||||
Main.KilledDiseased[killer.PlayerId] += 1;
|
||||
}
|
||||
// Key doesn't exist, add the key-value pair
|
||||
}
|
||||
|
||||
if (target.Is(CustomRoles.Antidote))
|
||||
{
|
||||
if (!Main.KilledAntidote.TryAdd(killer.PlayerId, 1))
|
||||
{
|
||||
// Key already exists, update the value
|
||||
Main.KilledAntidote[killer.PlayerId] += 1; // Main.AllPlayerKillCooldown.TryGetValue(killer.PlayerId, out float kcd) ? (kcd - Options.AntidoteCDOpt.GetFloat() > 0 ? kcd - Options.AntidoteCDOpt.GetFloat() : 0f) : 0f;
|
||||
Main.KilledAntidote[killer.PlayerId] += 1;
|
||||
}
|
||||
// Key doesn't exist, add the key-value pair
|
||||
// Main.AllPlayerKillCooldown.TryGetValue(killer.PlayerId, out float kcd) ? (kcd - Options.AntidoteCDOpt.GetFloat() > 0 ? kcd - Options.AntidoteCDOpt.GetFloat() : 0f) : 0f);
|
||||
}
|
||||
|
||||
killer.ResetKillCooldown();
|
||||
@@ -217,7 +212,7 @@ class CheckMurderPatch
|
||||
return false;
|
||||
case CustomGameMode.FFA:
|
||||
FFAManager.OnPlayerAttack(killer, target);
|
||||
return true;
|
||||
return false;
|
||||
case CustomGameMode.MoveAndStop:
|
||||
case CustomGameMode.HotPotato:
|
||||
return false;
|
||||
@@ -650,11 +645,10 @@ class ShapeshiftPatch
|
||||
public static bool ProcessShapeshift(PlayerControl shapeshifter, PlayerControl target)
|
||||
{
|
||||
if (!Main.ProcessShapeshifts) return true;
|
||||
|
||||
Logger.Info($"{shapeshifter?.GetNameWithRole()} => {target?.GetNameWithRole()}", "Shapeshift");
|
||||
|
||||
if (shapeshifter == null || target == null) return true;
|
||||
|
||||
Logger.Info($"{shapeshifter.GetNameWithRole()} => {target.GetNameWithRole()}", "Shapeshift");
|
||||
|
||||
var shapeshifting = shapeshifter.PlayerId != target.PlayerId;
|
||||
|
||||
if (Main.CheckShapeshift.TryGetValue(shapeshifter.PlayerId, out var last) && last == shapeshifting)
|
||||
@@ -693,6 +687,7 @@ class ShapeshiftPatch
|
||||
|
||||
bool shouldCancel = Options.DisableShapeshiftAnimations.GetBool();
|
||||
bool shouldAlwaysCancel = shouldCancel && Options.DisableAllShapeshiftAnimations.GetBool();
|
||||
bool doSSwithoutAnim = isSSneeded && shouldAlwaysCancel;
|
||||
|
||||
isSSneeded &= !shouldAlwaysCancel;
|
||||
forceCancel |= shouldAlwaysCancel;
|
||||
@@ -715,6 +710,12 @@ class ShapeshiftPatch
|
||||
NotifyRoles(SpecifySeer: shapeshifter, SpecifyTarget: shapeshifter);
|
||||
}
|
||||
|
||||
if (doSSwithoutAnim)
|
||||
{
|
||||
shapeshifter.RpcShapeshift(target, false);
|
||||
return false;
|
||||
}
|
||||
|
||||
return isSSneeded || (!shouldCancel && !forceCancel) || (!shapeshifting && !shouldAlwaysCancel);
|
||||
}
|
||||
|
||||
@@ -738,7 +739,7 @@ class ShapeshiftPatch
|
||||
Adventurer.OnAnyoneShapeshiftLoop(av, __instance);
|
||||
break;
|
||||
case Roles.Impostor.Sentry st:
|
||||
st.OnAnyoneShapeshiftLoop(__instance);
|
||||
st.OnAnyoneShapeshiftLoop(__instance, target);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1406,6 +1407,13 @@ class FixedUpdatePatch
|
||||
Mark.Append($"<color={GetRoleColorCode(CustomRoles.Analyst)}>○</color>");
|
||||
}
|
||||
|
||||
break;
|
||||
case CustomRoles.Samurai:
|
||||
if ((Main.PlayerStates[seer.PlayerId].Role as Samurai).Target.Id == target.PlayerId)
|
||||
{
|
||||
Mark.Append($"<color={GetRoleColorCode(CustomRoles.Samurai)}>○</color>");
|
||||
}
|
||||
|
||||
break;
|
||||
case CustomRoles.Puppeteer:
|
||||
if (Puppeteer.PuppeteerList.ContainsValue(seer.PlayerId) && Puppeteer.PuppeteerList.ContainsKey(target.PlayerId))
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
using System;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AmongUs.Data;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
@@ -5,9 +8,6 @@ using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using InnerNet;
|
||||
using System;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using static EHR.Translator;
|
||||
|
||||
namespace EHR;
|
||||
@@ -195,23 +195,26 @@ class OnPlayerLeftPatch
|
||||
else if (GameStates.IsLobby)
|
||||
msg = GetString("Message.HostLeftGameInLobby");
|
||||
|
||||
player.SetName(title);
|
||||
player?.SetName(title);
|
||||
DestroyableSingleton<HudManager>.Instance.Chat.AddChat(player, msg);
|
||||
player.SetName(name);
|
||||
player?.SetName(name);
|
||||
|
||||
var writer = CustomRpcSender.Create("MessagesToSend");
|
||||
writer.StartMessage(clientId);
|
||||
writer.StartRpc(player.NetId, (byte)RpcCalls.SetName)
|
||||
.Write(title)
|
||||
.EndRpc();
|
||||
writer.StartRpc(player.NetId, (byte)RpcCalls.SendChat)
|
||||
.Write(msg)
|
||||
.EndRpc();
|
||||
writer.StartRpc(player.NetId, (byte)RpcCalls.SetName)
|
||||
.Write(player.Data.PlayerName)
|
||||
.EndRpc();
|
||||
writer.EndMessage();
|
||||
writer.SendMessage();
|
||||
if (player != null && player.Data != null)
|
||||
{
|
||||
var writer = CustomRpcSender.Create("MessagesToSend");
|
||||
writer.StartMessage(clientId);
|
||||
writer.StartRpc(player.NetId, (byte)RpcCalls.SetName)
|
||||
.Write(title)
|
||||
.EndRpc();
|
||||
writer.StartRpc(player.NetId, (byte)RpcCalls.SendChat)
|
||||
.Write(msg)
|
||||
.EndRpc();
|
||||
writer.StartRpc(player.NetId, (byte)RpcCalls.SetName)
|
||||
.Write(player.Data.PlayerName)
|
||||
.EndRpc();
|
||||
writer.EndMessage();
|
||||
writer.SendMessage();
|
||||
}
|
||||
}
|
||||
|
||||
// Additional description of the reason for disconnection
|
||||
@@ -243,7 +246,7 @@ class OnPlayerLeftPatch
|
||||
|
||||
Utils.CountAlivePlayers(true);
|
||||
|
||||
data.Character.Data.Disconnected = true;
|
||||
if (data != null && data.Character != null) data.Character.Data.Disconnected = true;
|
||||
}
|
||||
catch (NullReferenceException)
|
||||
{
|
||||
@@ -252,6 +255,10 @@ class OnPlayerLeftPatch
|
||||
{
|
||||
Logger.Error(ex.ToString(), "OnPlayerLeftPatch.Postfix");
|
||||
}
|
||||
finally
|
||||
{
|
||||
Utils.NotifyRoles(NoCache: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using EHR.Roles.Impostor;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using EHR.Roles.Impostor;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using System.Linq;
|
||||
using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using System.Linq;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BepInEx;
|
||||
using EHR.Patches;
|
||||
using EHR.Roles.AddOns.Crewmate;
|
||||
@@ -6,8 +8,6 @@ using EHR.Roles.Crewmate;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace EHR;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using AmongUs.GameOptions;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
using Object = UnityEngine.Object;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace EHR.Patches;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AmongUs.GameOptions;
|
||||
using EHR.Modules;
|
||||
using EHR.Roles.AddOns.Common;
|
||||
@@ -8,9 +11,6 @@ using EHR.Roles.Impostor;
|
||||
using EHR.Roles.Neutral;
|
||||
using HarmonyLib;
|
||||
using Hazel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using static EHR.Modules.CustomRoleSelector;
|
||||
using static EHR.Translator;
|
||||
|
||||
|
||||
@@ -29,12 +29,12 @@
|
||||
|
||||
## Visit our website for more information: [EHR](https://sites.google.com/view/ehr-au)
|
||||
## Main Features
|
||||
- Note: The goal with this branch is to improve the existing stuff over adding new roles. If some of the stuff you see below are in TOHRE, they were originally coded by me.
|
||||
### New gamemode
|
||||
- Note: The goal with this branch is to improve the existing stuff over adding new roles. If some of the stuff you see below are in other mods, they were originally coded by me.
|
||||
### Most Popular Game Mode
|
||||
- A brand new official gamemode, Basic FFA (Free For All)
|
||||
- This mode makes everyone a killer and the last player alive wins
|
||||
- Features: Random events, ranks and scoring, random ability gain for every kill, game timer, scoreboard (task list), unique end screen, fully customizable
|
||||
### Overall improvements
|
||||
### Overall improvements compared to other mods
|
||||
- Role spawn chances are in percentages
|
||||
- Gain more ability uses for completing tasks as crewmate roles
|
||||
- Gain more ability uses for getting kills as impostor roles
|
||||
@@ -103,91 +103,7 @@
|
||||
- Provocateur: No longer suicides after selecting a target
|
||||
- Pursuer: Target doesn't die when trying to use their kill button, they'll just have their kill cooldown reset
|
||||
|
||||
### Now, some new roles as well
|
||||
- Lighter (Crewmate)
|
||||
- Demolitionist (Crewmate)
|
||||
- Ventguard (Crewmate)
|
||||
- Express (Crewmate)
|
||||
- Witness (Crewmate)
|
||||
- Alchemist (Crewmate)
|
||||
- Task Manager (Crewmate)
|
||||
- Speedrunner (Crewmate)
|
||||
- Ignitor (Crewmate)
|
||||
- Security Guard (Crewmate)
|
||||
- Aid (Crewmate)
|
||||
- Spy (Crewmate)
|
||||
- Tether (Crewmate)
|
||||
- Ricochet (Crewmate)
|
||||
- Door Master (Crewmate)
|
||||
- Hacker (Crewmate)
|
||||
- Guess Manager (Crewmate)
|
||||
- Altruist (Crewmate)
|
||||
- Transmitter (Crewmate)
|
||||
- Autocrat (Crewmate)
|
||||
- Benefactor (Crewmate)
|
||||
- Nightmare (Crewmate)
|
||||
- Camera Man (Crewmate)
|
||||
- Escort (Crewmate)
|
||||
- Donut Delivery (Crewmate)
|
||||
- Drainer (Crewmate)
|
||||
- Insight (Crewmate)
|
||||
- Tunneler (Crewmate)
|
||||
- Detour (Crewmate)
|
||||
- Gaulois (Crewmate)
|
||||
- Analyst (Crewmate)
|
||||
- Electric (Crewmate)
|
||||
- Mole (Crewmate)
|
||||
- Tornado (Crewmate)
|
||||
- Sentinel (Crewmate)
|
||||
- Rabbit (Crewmate)
|
||||
- Perceiver (Crewmate)
|
||||
- Convener (Crewmate)
|
||||
- Mathematician (Crewmate)
|
||||
- Romantic (Neutral)
|
||||
- Werewolf (Neutral)
|
||||
- Imitator (Neutral)
|
||||
- Head Hunter (Neutral)
|
||||
- Vengeance (Neutral)
|
||||
- Eclipse (Neutral)
|
||||
- Pyromaniac (Neutral)
|
||||
- Weapon Master (Neutral)
|
||||
- Postman (Neutral)
|
||||
- Reckless (Neutral)
|
||||
- Magician (Neutral)
|
||||
- Enderman (Neutral)
|
||||
- Mycologist (Neutral)
|
||||
- Bubble (Neutral)
|
||||
- Hookshot (Neutral)
|
||||
- Sprayer (Neutral)
|
||||
- Soul Hunter (Neutral)
|
||||
- Necromancer / Deathknight (Neutral)
|
||||
- Undertaker (Impostor)
|
||||
- Gambler (Impostor)
|
||||
- Mastermind (Impostor)
|
||||
- Rift Maker (Impostor)
|
||||
- Hitman (Impostor)
|
||||
- Sapper (Impostor)
|
||||
- Nullifier (Impostor)
|
||||
- Chronomancer (Impostor)
|
||||
- Librarian (Impostor)
|
||||
- Yin Yanger (Impostor)
|
||||
- Cantankerous (Impostor)
|
||||
- Duellist (Impostor)
|
||||
- Kamikaze (Impostor)
|
||||
- Swapster (Impostor)
|
||||
- Swiftclaw (Impostor)
|
||||
- Damocles (Impostor-only Add-on)
|
||||
- Deadly Quota (Impostor-only Add-on)
|
||||
- Nimble (Add-on)
|
||||
- Physicist (Add-on)
|
||||
- Stressed (Add-on)
|
||||
- Giant (Add-on)
|
||||
- Magnet (Add-on)
|
||||
- Sleuth (Add-on)
|
||||
- Asthmatic (Add-on)
|
||||
- Disco (Add-on)
|
||||
- Truant (Add-on)
|
||||
- Busy (Add-on)
|
||||
### To see the full list of unique roles and their descriptions, visit our website: [EHR](https://sites.google.com/view/ehr-au)
|
||||
|
||||
## Note:
|
||||
- You can use parts of the code in here, but if you do, you'll have to credit me (Gurge44) or the mod by mentioning its name (EHR) and providing a link to this github page. (Or leaving the in-game credits as they are is also fine!)
|
||||
@@ -198,11 +114,11 @@
|
||||
## Credit to these mods and their developers for the code and help:
|
||||
### :star: [TOHER/TOHRE/TOHEN](https://github.com/0xDrMoe/TownofHost-Enhanced) :
|
||||
>
|
||||
> - Our repo is forked from TOHEN
|
||||
> - Our repo is forked from TOHRE (from a long time ago)
|
||||
>
|
||||
### :star: [TOHE/TONX](https://github.com/KARPED1EM/TownOfHostEdited) :
|
||||
>
|
||||
> - Our repo is a continuation of EHR
|
||||
> - Our repo is a continuation of TOHE
|
||||
> - TONX reference: Modify character limit for chat messages
|
||||
>
|
||||
### :star: [TOH](https://github.com/tukasa0001/TownOfHost) :
|
||||
@@ -263,17 +179,31 @@
|
||||
>
|
||||
|
||||
### Endless Host Roles (EHR), with Endless Possibilities, brought to you by the Endless Network.
|
||||
- Contributors:
|
||||
- Gurge44 (main)
|
||||
##### Developers:
|
||||
- Gurge44
|
||||
##### Contributors:
|
||||
- Dx
|
||||
- PH_Gaming
|
||||
##### Special Thanks:
|
||||
- Seleneous
|
||||
- thewhiskas27
|
||||
- HyperAtill
|
||||
##### Translators:
|
||||
- Dx (PT-BR)
|
||||
- PH_Gaming (PT-BR)
|
||||
- Tomix (PT-BR)
|
||||
- aviiiv (PT-BR)
|
||||
- HyperAtill (RU)
|
||||
|
||||
|
||||
# License for the Custom Team Assinger application
|
||||
# License for the Custom Team Assigner application
|
||||
|
||||
Copyright (c) 2024, Gurge44
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
@@ -288,6 +218,8 @@ modification, are permitted provided that the following conditions are met:
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ''AS IS'' AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
|
||||
@@ -2621,13 +2621,54 @@
|
||||
"TransmitterInfoLong": "(Crewmates):\\nAs the Transmitter, when you complete a task, you teleport to the nearest player.",
|
||||
"Sentry": "Sentry",
|
||||
"SentryInfo": "Monitor a Room",
|
||||
"SentryInfoLong": "(Crewmates):\\nAs the Sentry, you can monitor a room by petting your pet. When you pet your pet in the future, you get information from that room, including:<size=80%>\\n- The players currently in that room\\n- Who is dead in that room (if any)\\n- The players that used a vent in that room\\n- Whether someone shapeshifted in that room</size>\\n\\nDepending on the settings, players may know if a room is monitored, and you may not be able to view this info during Comms Sabotages.",
|
||||
"SentryInfoLong": "(Crewmates):\\nAs the Sentry, you can monitor a room by petting your pet. When you pet your pet in the future, you get information from that room, including:<size=80%>\\n- The players currently in that room\\n- Who is dead in that room (if any)</size>\\nYou also get a notification when someone uses a vent or shapeshifts in that room.\\n\\nDepending on the settings, players may know if a room is monitored, and you may not be able to view this info during Comms Sabotages.",
|
||||
"Sentry.ShowInfoDuration": "Info is Visible for",
|
||||
"Sentry.PlayersKnowAboutCamera": "Players Know if the Room is Monitored",
|
||||
"Sentry.CannotSeeInfoDuringComms": "Cannot See Info During Comms Sabotages",
|
||||
"Sentry.Suffix.MonitoredRoom": "<size=80%>This room is monitored by the {0}</size>",
|
||||
"Sentry.Suffix.Self": "<size=70%>Monitoring: <#00ffa5>{0}</color></size>",
|
||||
"Sentry.Notify.Info": "<u>Info about your monitored room:</u>\\nPlayers: {0}\\nDead players: {1}\\nPlayers that used a vent: {2}\\nShapeshifters: {3}",
|
||||
"Sentry.Notify.Info": "<u>Info about your monitored room:</u>\\nPlayers: {0}\\nDead players: {1}",
|
||||
"Sentry.Notify.Info.NoData": "<#ff0000>none</color>",
|
||||
"Sentry.Notify.Shapeshifted": "{0} shapeshifted into {1} in your monitored room",
|
||||
"Sentry.Notify.Vented": "{0} vented in your monitored room",
|
||||
"Sentry.Notify.InvalidRoom": "You are not in a room",
|
||||
"Samurai": "Samurai",
|
||||
"SamuraiInfo": "Kill Players in Unique Ways",
|
||||
"SamuraiInfoLong": "(Neutrals):\\nAs the Samurai, you can do delayed kills and normal kills. What decides? Well, if you click your kill button on someone (the kill won't occur immediately) and you stay near them for a few seconds (like an arsonist douse), you get a lower kill cooldown and the kill will be delayed. If you fail to stay near them, you do a normal kill, lunge included.",
|
||||
"Samurai.NearbyDuration": "Time to Stay Near Target",
|
||||
"Samurai.SuccessKCD": "Kill Cooldown for Delayed Kills",
|
||||
"Samurai.KillDelay": "Kill Delay",
|
||||
"Bargainer": "Bargainer",
|
||||
"BargainerInfo": "Gain Money & Buy Power-Ups",
|
||||
"BargainerInfoLong": "(Neutrals):\\nAs the Bargainer, you can gain money by killing, sabotaging and surviving meetings. You can use this money to buy some items from the shop. All devices on this map represent a shop you can use by going near it. You can buy the following items:<size=80%>\\n- Energy Drink (lowers your kill cooldown for that round)\\n- Lens Of Truth (reveals a random player's role for some time)\\n- Band Aid (gives you a shield for some time)</size>\\nWhen you step away from a shop, the selected item will be purchased if you have enough money for it. You can choose to not buy anything. While in the shop, sabotage to cycle between the available items.",
|
||||
"Bargainer.StartingMoney": "Starting Money",
|
||||
"Bargainer.Kill.Enabled": "Gain Money for Killing",
|
||||
"Bargainer.Kill.Amount": "Money Gained for Killing",
|
||||
"Bargainer.Sabotage.Enabled": "Gain Money for Sabotaging",
|
||||
"Bargainer.Sabotage.Amount": "Money Gained for Sabotaging",
|
||||
"Bargainer.SurviveMeeting.Enabled": "Gain Money for Surviving Meetings",
|
||||
"Bargainer.SurviveMeeting.Amount": "Money Gained for Surviving Meetings",
|
||||
"Bargainer.EnergyDrink.Enabled": "Energy Drink Enabled",
|
||||
"Bargainer.EnergyDrink.Cost": "Energy Drink Cost",
|
||||
"Bargainer.LensOfTruth.Enabled": "Lens Of Truth Enabled",
|
||||
"Bargainer.LensOfTruth.Cost": "Lens Of Truth Cost",
|
||||
"Bargainer.BandAid.Enabled": "Band Aid Enabled",
|
||||
"Bargainer.BandAid.Cost": "Band Aid Cost",
|
||||
"Bargainer.BandAid.Duration": "Band Aid Duration",
|
||||
"Bargainer.BandAid.DurationSwitch": "Band Aid Lasts",
|
||||
"Bargainer.EnergyDrink.ReducedKCD": "Energy Drink Reduced Kill Cooldown",
|
||||
"Bargainer.LensOfTruth.Duration": "Lens Of Truth Duration",
|
||||
"Bargainer.LensOfTruth.DurationSwitch": "Lens Of Truth Lasts",
|
||||
"Bargainer.Notify.PurchasedItem": "You have purchased a(n) {0}",
|
||||
"Bargainer.None": "No Item",
|
||||
"Bargainer.EnergyDrink": "Energy Drink",
|
||||
"Bargainer.LensOfTruth": "Lens Of Truth",
|
||||
"Bargainer.BandAid": "Band Aid",
|
||||
"Bargainer.Suffix.InShop": "<size=80%>[<#00ffa5>Shop</color>] Selected: {0} ({1})</size>",
|
||||
"Forever": "Forever",
|
||||
"UntilNextMeeting": "Until Next Meeting",
|
||||
"UntilNextReveal": "Until Next Reveal",
|
||||
"ForSpecifiedTime": "For Specified Time",
|
||||
"SchrodingersCat": "Schrödinger's Cat",
|
||||
"SchrodingersCatInfo": "Get Attacked to Get a Role",
|
||||
"SchrodingersCatInfoLong": "(Neutrals):\\nAs Schrödinger's Cat, if you get attacked, you turn into the same role as your killer.\\nIf you don't get attacked, you lose, or you can win with crewmates, depending on the settings.",
|
||||
@@ -3132,7 +3173,7 @@
|
||||
"SilenceMode": "Silencing Method",
|
||||
"Adventurer": "Adventurer",
|
||||
"AdventurerInfo": "Collect Resources to Perform Actions",
|
||||
"AdventurerInfoLong": "(Crewmates):\\nAs the Adventurer, you can collect resources listed below and craft them into weapons if you have the required amount of materials for it.<size=70%>\\n\\n<u><b>Resources (and how to obtain them):</b></u>\\n- ❖ (Complete a Task)\\n- Θ (Players Leave This Behind<sup>*</sup>)\\n- ♳ (Dead Bodies<sup>*</sup>)\\n- ⁂ (Shapeshift Skins<sup>*</sup>)\\n- \u2600 (Fix Lights)\\n- ○ (Found in Groups<sup>*</sup>)\\n<size=50%><sup>*</sup> When this resource is available somewhere, you get an arrow pointing towards that location. (Except dead bodies.) Go there to collect it.</size>\\n\\n<u><b>Weapons (and their ingredients):</b></u>\\n- Gun (1 ♳ + 1 ❖) (Kill someone (pet near them))\\n- Shield (3 ❖) (Gives someone a 1-time shield)\\n- Lantern (1 \u2600 + 1 ❖) (Increases crewmates' vision for some time)\\n- Portal (2 Θ) (Swaps you with a random player)\\n- Wrench (1 \u2600 + 2 ❖) (Clears the current sabotage)\\n- Proxy (2 ○ + 1 ❖) (Gives you +1 vote in the next meeting)\\n- Prediction (1 ♳ + 2 ⁂ + 1 ❖) (Reveals the nearest player's role)\\n- RNG (2 Θ + 2 ❖) (Makes a random weapon)</size>",
|
||||
"AdventurerInfoLong": "(Crewmates):\\nAs the Adventurer, you can collect resources listed below and craft them into weapons if you have the required amount of materials for it.<size=70%>\\n\\n<u><b>Resources (and how to obtain them):</b></u>\\n- ❖ (Complete a Task)\\n- Θ (Players Leave This Behind<sup>*</sup>)\\n- ♳ (Dead Bodies<sup>*</sup>)\\n- ⁂ (Shapeshift Skins<sup>*</sup>)\\n- \u2600 (Fix Lights)\\n- ○ (Found in Groups<sup>*</sup>)\\n<size=50%><sup>*</sup> When this resource is available somewhere, you get an arrow pointing towards that location. (Except dead bodies.) Go there to collect it.</size>\\n\\n<u><b>Weapons (and their ingredients):</b></u>\\n- Gun (1 ♳ + 1 ❖) (Kill nearest player)\\n- Shield (3 ❖) (Gives nearest player a 1-time shield)\\n- Lantern (1 \u2600 + 1 ❖) (Increases crewmates' vision for some time)\\n- Portal (2 Θ) (Swaps you with a random player)\\n- Wrench (1 \u2600 + 2 ❖) (Clears the current sabotage)\\n- Proxy (2 ○ + 1 ❖) (Gives you +1 vote in the next meeting)\\n- Prediction (1 ♳ + 2 ⁂ + 1 ❖) (Reveals the nearest player's role)\\n- RNG (2 Θ + 2 ❖) (Makes a random weapon)</size>\\n\\nTo use your weapons, pet your pet.",
|
||||
"AdventurerWeaponDescription.Gun": "Kill the next player you go near",
|
||||
"AdventurerWeaponDescription.Shield": "Gives someone a 1-time shield",
|
||||
"AdventurerWeaponDescription.Lantern": "Increases crewmates' vision for some time",
|
||||
|
||||
@@ -9,16 +9,16 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(222420, CustomRoles.Antidote, canSetNum: true);
|
||||
ImpCanBeAntidote = BooleanOptionItem.Create(222426, "ImpCanBeAntidote", true, TabGroup.Addons, false)
|
||||
ImpCanBeAntidote = BooleanOptionItem.Create(222426, "ImpCanBeAntidote", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Antidote]);
|
||||
CrewCanBeAntidote = BooleanOptionItem.Create(222427, "CrewCanBeAntidote", true, TabGroup.Addons, false)
|
||||
CrewCanBeAntidote = BooleanOptionItem.Create(222427, "CrewCanBeAntidote", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Antidote]);
|
||||
NeutralCanBeAntidote = BooleanOptionItem.Create(222423, "NeutralCanBeAntidote", true, TabGroup.Addons, false)
|
||||
NeutralCanBeAntidote = BooleanOptionItem.Create(222423, "NeutralCanBeAntidote", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Antidote]);
|
||||
AntidoteCDOpt = FloatOptionItem.Create(222424, "AntidoteCDOpt", new(0f, 180f, 1f), 5f, TabGroup.Addons, false)
|
||||
AntidoteCDOpt = FloatOptionItem.Create(222424, "AntidoteCDOpt", new(0f, 180f, 1f), 5f, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Antidote])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
AntidoteCDReset = BooleanOptionItem.Create(222425, "AntidoteCDReset", true, TabGroup.Addons, false)
|
||||
AntidoteCDReset = BooleanOptionItem.Create(222425, "AntidoteCDReset", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Antidote]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,16 +12,16 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(15420, CustomRoles.Asthmatic, canSetNum: true);
|
||||
AsthmaticMinRedTime = IntegerOptionItem.Create(15423, "AsthmaticMinRedTime", new(1, 90, 1), 5, TabGroup.Addons, false)
|
||||
AsthmaticMinRedTime = IntegerOptionItem.Create(15423, "AsthmaticMinRedTime", new(1, 90, 1), 5, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Asthmatic])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
AsthmaticMaxRedTime = IntegerOptionItem.Create(15424, "AsthmaticMaxRedTime", new(1, 90, 1), 30, TabGroup.Addons, false)
|
||||
AsthmaticMaxRedTime = IntegerOptionItem.Create(15424, "AsthmaticMaxRedTime", new(1, 90, 1), 30, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Asthmatic])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
AsthmaticMinGreenTime = IntegerOptionItem.Create(15425, "AsthmaticMinGreenTime", new(1, 90, 1), 5, TabGroup.Addons, false)
|
||||
AsthmaticMinGreenTime = IntegerOptionItem.Create(15425, "AsthmaticMinGreenTime", new(1, 90, 1), 5, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Asthmatic])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
AsthmaticMaxGreenTime = IntegerOptionItem.Create(15426, "AsthmaticMaxGreenTime", new(1, 90, 1), 30, TabGroup.Addons, false)
|
||||
AsthmaticMaxGreenTime = IntegerOptionItem.Create(15426, "AsthmaticMaxGreenTime", new(1, 90, 1), 30, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Asthmatic])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
}
|
||||
|
||||
@@ -9,11 +9,11 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(13600, CustomRoles.Autopsy, canSetNum: true);
|
||||
ImpCanBeAutopsy = BooleanOptionItem.Create(13610, "ImpCanBeAutopsy", true, TabGroup.Addons, false)
|
||||
ImpCanBeAutopsy = BooleanOptionItem.Create(13610, "ImpCanBeAutopsy", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Autopsy]);
|
||||
CrewCanBeAutopsy = BooleanOptionItem.Create(13611, "CrewCanBeAutopsy", true, TabGroup.Addons, false)
|
||||
CrewCanBeAutopsy = BooleanOptionItem.Create(13611, "CrewCanBeAutopsy", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Autopsy]);
|
||||
NeutralCanBeAutopsy = BooleanOptionItem.Create(13612, "NeutralCanBeAutopsy", true, TabGroup.Addons, false)
|
||||
NeutralCanBeAutopsy = BooleanOptionItem.Create(13612, "NeutralCanBeAutopsy", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Autopsy]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
Options.SetupAdtRoleOptions(15100, CustomRoles.Avanger, canSetNum: true);
|
||||
Options.ImpCanBeAvanger = BooleanOptionItem.Create(15110, "ImpCanBeAvanger", false, TabGroup.Addons, false)
|
||||
Options.ImpCanBeAvanger = BooleanOptionItem.Create(15110, "ImpCanBeAvanger", false, TabGroup.Addons)
|
||||
.SetParent(Options.CustomRoleSpawnChances[CustomRoles.Avanger]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,23 +9,23 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(13700, CustomRoles.Bait, canSetNum: true);
|
||||
ImpCanBeBait = BooleanOptionItem.Create(13710, "ImpCanBeBait", true, TabGroup.Addons, false)
|
||||
ImpCanBeBait = BooleanOptionItem.Create(13710, "ImpCanBeBait", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bait]);
|
||||
CrewCanBeBait = BooleanOptionItem.Create(13711, "CrewCanBeBait", true, TabGroup.Addons, false)
|
||||
CrewCanBeBait = BooleanOptionItem.Create(13711, "CrewCanBeBait", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bait]);
|
||||
NeutralCanBeBait = BooleanOptionItem.Create(13712, "NeutralCanBeBait", true, TabGroup.Addons, false)
|
||||
NeutralCanBeBait = BooleanOptionItem.Create(13712, "NeutralCanBeBait", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bait]);
|
||||
BaitDelayMin = FloatOptionItem.Create(13713, "BaitDelayMin", new(0f, 90f, 1f), 0f, TabGroup.Addons, false)
|
||||
BaitDelayMin = FloatOptionItem.Create(13713, "BaitDelayMin", new(0f, 90f, 1f), 0f, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bait])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
BaitDelayMax = FloatOptionItem.Create(13714, "BaitDelayMax", new(0f, 90f, 1f), 0f, TabGroup.Addons, false)
|
||||
BaitDelayMax = FloatOptionItem.Create(13714, "BaitDelayMax", new(0f, 90f, 1f), 0f, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bait])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
BaitDelayNotify = BooleanOptionItem.Create(13715, "BaitDelayNotify", true, TabGroup.Addons, false)
|
||||
BaitDelayNotify = BooleanOptionItem.Create(13715, "BaitDelayNotify", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bait]);
|
||||
BaitNotification = BooleanOptionItem.Create(13716, "BaitNotification", false, TabGroup.Addons, false)
|
||||
BaitNotification = BooleanOptionItem.Create(13716, "BaitNotification", false, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bait]);
|
||||
ReportBaitAtAllCost = BooleanOptionItem.Create(13717, "ReportBaitAtAllCost", false, TabGroup.Addons, false)
|
||||
ReportBaitAtAllCost = BooleanOptionItem.Create(13717, "ReportBaitAtAllCost", false, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bait]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,14 +9,14 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(15200, CustomRoles.Bewilder, canSetNum: true);
|
||||
BewilderVision = FloatOptionItem.Create(15210, "BewilderVision", new(0f, 5f, 0.05f), 0.6f, TabGroup.Addons, false)
|
||||
BewilderVision = FloatOptionItem.Create(15210, "BewilderVision", new(0f, 5f, 0.05f), 0.6f, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bewilder])
|
||||
.SetValueFormat(OptionFormat.Multiplier);
|
||||
ImpCanBeBewilder = BooleanOptionItem.Create(15211, "ImpCanBeBewilder", true, TabGroup.Addons, false)
|
||||
ImpCanBeBewilder = BooleanOptionItem.Create(15211, "ImpCanBeBewilder", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bewilder]);
|
||||
CrewCanBeBewilder = BooleanOptionItem.Create(15212, "CrewCanBeBewilder", true, TabGroup.Addons, false)
|
||||
CrewCanBeBewilder = BooleanOptionItem.Create(15212, "CrewCanBeBewilder", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bewilder]);
|
||||
NeutralCanBeBewilder = BooleanOptionItem.Create(15213, "NeutralCanBeBewilder", true, TabGroup.Addons, false)
|
||||
NeutralCanBeBewilder = BooleanOptionItem.Create(15213, "NeutralCanBeBewilder", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Bewilder]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,11 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(14900, CustomRoles.Brakar, canSetNum: true);
|
||||
ImpCanBeTiebreaker = BooleanOptionItem.Create(14910, "ImpCanBeTiebreaker", true, TabGroup.Addons, false)
|
||||
ImpCanBeTiebreaker = BooleanOptionItem.Create(14910, "ImpCanBeTiebreaker", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Brakar]);
|
||||
CrewCanBeTiebreaker = BooleanOptionItem.Create(14911, "CrewCanBeTiebreaker", true, TabGroup.Addons, false)
|
||||
CrewCanBeTiebreaker = BooleanOptionItem.Create(14911, "CrewCanBeTiebreaker", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Brakar]);
|
||||
NeutralCanBeTiebreaker = BooleanOptionItem.Create(14912, "NeutralCanBeTiebreaker", true, TabGroup.Addons, false)
|
||||
NeutralCanBeTiebreaker = BooleanOptionItem.Create(14912, "NeutralCanBeTiebreaker", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Brakar]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(15290, CustomRoles.Busy, canSetNum: true);
|
||||
BusyLongTasks = IntegerOptionItem.Create(15293, "BusyLongTasks", new(0, 90, 1), 1, TabGroup.Addons, false)
|
||||
BusyLongTasks = IntegerOptionItem.Create(15293, "BusyLongTasks", new(0, 90, 1), 1, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Busy]);
|
||||
BusyShortTasks = IntegerOptionItem.Create(15294, "BusyShortTasks", new(0, 90, 1), 1, TabGroup.Addons, false)
|
||||
BusyShortTasks = IntegerOptionItem.Create(15294, "BusyShortTasks", new(0, 90, 1), 1, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Busy]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using EHR.Roles.Impostor;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using EHR.Roles.Impostor;
|
||||
using static EHR.Options;
|
||||
|
||||
namespace EHR.Roles.AddOns.Common
|
||||
@@ -11,7 +11,7 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(15430, CustomRoles.Disco, canSetNum: true);
|
||||
DiscoChangeInterval = IntegerOptionItem.Create(15433, "DiscoChangeInterval", new(1, 90, 1), 5, TabGroup.Addons, false)
|
||||
DiscoChangeInterval = IntegerOptionItem.Create(15433, "DiscoChangeInterval", new(1, 90, 1), 5, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Disco])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
}
|
||||
|
||||
@@ -9,16 +9,16 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(111420, CustomRoles.Diseased, canSetNum: true);
|
||||
ImpCanBeDiseased = BooleanOptionItem.Create(111426, "ImpCanBeDiseased", true, TabGroup.Addons, false)
|
||||
ImpCanBeDiseased = BooleanOptionItem.Create(111426, "ImpCanBeDiseased", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Diseased]);
|
||||
CrewCanBeDiseased = BooleanOptionItem.Create(111427, "CrewCanBeDiseased", true, TabGroup.Addons, false)
|
||||
CrewCanBeDiseased = BooleanOptionItem.Create(111427, "CrewCanBeDiseased", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Diseased]);
|
||||
NeutralCanBeDiseased = BooleanOptionItem.Create(111423, "NeutralCanBeDiseased", true, TabGroup.Addons, false)
|
||||
NeutralCanBeDiseased = BooleanOptionItem.Create(111423, "NeutralCanBeDiseased", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Diseased]);
|
||||
DiseasedCDOpt = FloatOptionItem.Create(111424, "DiseasedCDOpt", new(0f, 180f, 1f), 25f, TabGroup.Addons, false)
|
||||
DiseasedCDOpt = FloatOptionItem.Create(111424, "DiseasedCDOpt", new(0f, 180f, 1f), 25f, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Diseased])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
DiseasedCDReset = BooleanOptionItem.Create(111425, "DiseasedCDReset", true, TabGroup.Addons, false)
|
||||
DiseasedCDReset = BooleanOptionItem.Create(111425, "DiseasedCDReset", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Diseased]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,11 +17,11 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(13900, CustomRoles.DoubleShot, canSetNum: true, tab: TabGroup.Addons);
|
||||
ImpCanBeDoubleShot = BooleanOptionItem.Create(13910, "ImpCanBeDoubleShot", true, TabGroup.Addons, false)
|
||||
ImpCanBeDoubleShot = BooleanOptionItem.Create(13910, "ImpCanBeDoubleShot", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.DoubleShot]);
|
||||
CrewCanBeDoubleShot = BooleanOptionItem.Create(13911, "CrewCanBeDoubleShot", true, TabGroup.Addons, false)
|
||||
CrewCanBeDoubleShot = BooleanOptionItem.Create(13911, "CrewCanBeDoubleShot", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.DoubleShot]);
|
||||
NeutralCanBeDoubleShot = BooleanOptionItem.Create(13912, "NeutralCanBeDoubleShot", true, TabGroup.Addons, false)
|
||||
NeutralCanBeDoubleShot = BooleanOptionItem.Create(13912, "NeutralCanBeDoubleShot", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.DoubleShot]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,11 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(14700, CustomRoles.DualPersonality, canSetNum: true);
|
||||
ImpCanBeDualPersonality = BooleanOptionItem.Create(14710, "ImpCanBeDualPersonality", true, TabGroup.Addons, false)
|
||||
ImpCanBeDualPersonality = BooleanOptionItem.Create(14710, "ImpCanBeDualPersonality", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.DualPersonality]);
|
||||
CrewCanBeDualPersonality = BooleanOptionItem.Create(14711, "CrewCanBeDualPersonality", true, TabGroup.Addons, false)
|
||||
CrewCanBeDualPersonality = BooleanOptionItem.Create(14711, "CrewCanBeDualPersonality", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.DualPersonality]);
|
||||
DualVotes = BooleanOptionItem.Create(14712, "DualVotes", true, TabGroup.Addons, false)
|
||||
DualVotes = BooleanOptionItem.Create(14712, "DualVotes", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.DualPersonality]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
Options.SetupAdtRoleOptions(18700, CustomRoles.Flashman, canSetNum: true, tab: TabGroup.Addons);
|
||||
Options.FlashmanSpeed = FloatOptionItem.Create(18703, "FlashmanSpeed", new(0.25f, 3f, 0.25f), 2.5f, TabGroup.Addons, false)
|
||||
Options.FlashmanSpeed = FloatOptionItem.Create(18703, "FlashmanSpeed", new(0.25f, 3f, 0.25f), 2.5f, TabGroup.Addons)
|
||||
.SetParent(Options.CustomRoleSpawnChances[CustomRoles.Flashman])
|
||||
.SetValueFormat(OptionFormat.Multiplier);
|
||||
}
|
||||
|
||||
@@ -9,11 +9,11 @@ namespace EHR.Roles.AddOns.Common
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
SetupAdtRoleOptions(19200, CustomRoles.Fool, canSetNum: true, tab: TabGroup.Addons);
|
||||
ImpCanBeFool = BooleanOptionItem.Create(19210, "ImpCanBeFool", true, TabGroup.Addons, false)
|
||||
ImpCanBeFool = BooleanOptionItem.Create(19210, "ImpCanBeFool", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Fool]);
|
||||
CrewCanBeFool = BooleanOptionItem.Create(19211, "CrewCanBeFool", true, TabGroup.Addons, false)
|
||||
CrewCanBeFool = BooleanOptionItem.Create(19211, "CrewCanBeFool", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Fool]);
|
||||
NeutralCanBeFool = BooleanOptionItem.Create(19212, "NeutralCanBeFool", true, TabGroup.Addons, false)
|
||||
NeutralCanBeFool = BooleanOptionItem.Create(19212, "NeutralCanBeFool", true, TabGroup.Addons)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Fool]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
public void SetupCustomOption()
|
||||
{
|
||||
Options.SetupAdtRoleOptions(18750, CustomRoles.Giant, canSetNum: true, tab: TabGroup.Addons);
|
||||
Options.GiantSpeed = FloatOptionItem.Create(18753, "GiantSpeed", new(0.25f, 3f, 0.25f), 0.75f, TabGroup.Addons, false)
|
||||
Options.GiantSpeed = FloatOptionItem.Create(18753, "GiantSpeed", new(0.25f, 3f, 0.25f), 0.75f, TabGroup.Addons)
|
||||
.SetParent(Options.CustomRoleSpawnChances[CustomRoles.Giant])
|
||||
.SetValueFormat(OptionFormat.Multiplier);
|
||||
}
|
||||
|
||||
Loaded 100 of 369 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user