mirror of
https://github.com/Gurge44/EndlessHostRoles.git
synced 2026-10-20 01:46:25 +00:00
M A R I O
This commit is contained in:
1 parent
c9a866ebfc
commit
0c686a5f07
7 files changed
+44
-44
No files matched your search
+1
-1
@@ -335,7 +335,7 @@ public enum CustomRoles
|
||||
Lawyer,
|
||||
Magician,
|
||||
Magistrate,
|
||||
Mario, // Vector
|
||||
Vector,
|
||||
Maverick,
|
||||
Medusa,
|
||||
Mycologist,
|
||||
|
||||
@@ -527,7 +527,7 @@ public class Main : BasePlugin
|
||||
{ CustomRoles.Lawyer, "#008080" },
|
||||
{ CustomRoles.God, "#f96464" },
|
||||
{ CustomRoles.Opportunist, "#4dff4d" },
|
||||
{ CustomRoles.Mario, "#ff6201" },
|
||||
{ CustomRoles.Vector, "#ff6201" },
|
||||
{ CustomRoles.Jackal, "#00b4eb" },
|
||||
{ CustomRoles.Sidekick, "#00b4eb" },
|
||||
{ CustomRoles.Innocent, "#8f815e" },
|
||||
@@ -1039,7 +1039,7 @@ public enum CustomWinner
|
||||
Technician = CustomRoles.Technician,
|
||||
Jackal = CustomRoles.Jackal,
|
||||
God = CustomRoles.God,
|
||||
Mario = CustomRoles.Mario,
|
||||
Vector = CustomRoles.Vector,
|
||||
Innocent = CustomRoles.Innocent,
|
||||
Pelican = CustomRoles.Pelican,
|
||||
Youtuber = CustomRoles.Youtuber,
|
||||
|
||||
@@ -301,7 +301,7 @@ internal static class CustomRolesHelper
|
||||
CustomRoles.Technician => Technician.CanVent.GetBool() ? CustomRoles.Engineer : CustomRoles.Crewmate,
|
||||
CustomRoles.GuardianAngelEHR => CustomRoles.GuardianAngel,
|
||||
CustomRoles.Zombie => CustomRoles.Impostor,
|
||||
CustomRoles.Mario => CustomRoles.Engineer,
|
||||
CustomRoles.Vector => CustomRoles.Engineer,
|
||||
CustomRoles.AntiAdminer => CustomRoles.Shapeshifter,
|
||||
CustomRoles.Arrogance => CustomRoles.Impostor,
|
||||
CustomRoles.Bomber => UsePets ? CustomRoles.Impostor : CustomRoles.Shapeshifter,
|
||||
@@ -1520,7 +1520,7 @@ internal static class CustomRolesHelper
|
||||
RoleOptionType.Crewmate_Power => Utils.GetRoleColor(CustomRoles.Electric),
|
||||
RoleOptionType.Crewmate_Chaos => Utils.GetRoleColor(CustomRoles.Tornado),
|
||||
RoleOptionType.Neutral_Benign => Utils.GetRoleColor(CustomRoles.Chameleon),
|
||||
RoleOptionType.Neutral_Evil => Utils.GetRoleColor(CustomRoles.Mario),
|
||||
RoleOptionType.Neutral_Evil => Utils.GetRoleColor(CustomRoles.Vector),
|
||||
RoleOptionType.Neutral_Pariah => ColorUtility.TryParseHtmlString("#a10e49", out var c) ? c : Color.magenta,
|
||||
RoleOptionType.Neutral_Killing => Palette.ImpostorRed,
|
||||
RoleOptionType.Coven_Miscellaneous => Utils.GetRoleColor(CustomRoles.CovenLeader),
|
||||
@@ -1600,7 +1600,7 @@ internal static class CustomRolesHelper
|
||||
CustomRoles.God => RoleOptionType.Neutral_Evil,
|
||||
CustomRoles.Executioner => RoleOptionType.Neutral_Evil,
|
||||
CustomRoles.Doomsayer => RoleOptionType.Neutral_Evil,
|
||||
CustomRoles.Mario => RoleOptionType.Neutral_Evil,
|
||||
CustomRoles.Vector => RoleOptionType.Neutral_Evil,
|
||||
CustomRoles.Terrorist => RoleOptionType.Neutral_Evil,
|
||||
CustomRoles.Thief => RoleOptionType.Neutral_Evil,
|
||||
CustomRoles.Collector => RoleOptionType.Neutral_Evil,
|
||||
|
||||
+1
-1
@@ -913,7 +913,7 @@ public static class Utils
|
||||
case CustomRoles.Crusader when !Options.UsePets.GetBool() || !Crusader.UsePet.GetBool():
|
||||
case CustomRoles.Refugee:
|
||||
case CustomRoles.Jester:
|
||||
case CustomRoles.Mario:
|
||||
case CustomRoles.Vector:
|
||||
case CustomRoles.Vulture:
|
||||
case CustomRoles.God:
|
||||
case CustomRoles.Innocent:
|
||||
|
||||
@@ -219,7 +219,7 @@ internal static class ChangeRoleSettings
|
||||
|
||||
Mayor.MayorUsedButtonCount = [];
|
||||
Paranoid.ParaUsedButtonCount = [];
|
||||
Mario.MarioVentCount = [];
|
||||
Vector.VectorVentCount = [];
|
||||
Cleaner.CleanerBodies = [];
|
||||
Virus.InfectedBodies = [];
|
||||
Workaholic.WorkaholicAlive = [];
|
||||
|
||||
+11
-11
@@ -299,7 +299,7 @@
|
||||
"Executioner": "Executioner",
|
||||
"Lawyer": "Lawyer",
|
||||
"Opportunist": "Opportunist",
|
||||
"Mario": "Vector",
|
||||
"Vector": "Vector",
|
||||
"Jackal": "Jackal",
|
||||
"God": "God",
|
||||
"Innocent": "Innocent",
|
||||
@@ -579,7 +579,7 @@
|
||||
"TerroristInfo": "Finish your tasks, THEN die",
|
||||
"ExecutionerInfo": "Get your target voted out",
|
||||
"LawyerInfo": "Help your target win!",
|
||||
"MarioInfo": "Jump in, jump out, win!",
|
||||
"VectorInfo": "Jump in, jump out, win!",
|
||||
"JackalInfo": "Murder everyone",
|
||||
"GodInfo": "Everything is under your control",
|
||||
"InnocentInfo": "Get someone ejected by making them kill you",
|
||||
@@ -809,7 +809,7 @@
|
||||
"ExecutionerInfoLong": "(Neutrals):\\nThe Executioner has a target with a diamond symbol next to their name. If the target dies, the Executioner may become a Crewmate, Jester, or Opportunist. If the target is voted out, the Executioner wins.",
|
||||
"LawyerInfoLong": "(Neutrals):\\nLawyer has a target to defend, which will be indicated by a diamond 「♦」 next to their name. If your target wins, you win. If they lose, you lose.",
|
||||
"OpportunistInfoLong": "(Neutrals):\\nIf the Opportunist is alive at the end, they win with the winning team.",
|
||||
"MarioInfoLong": "(Neutrals):\\nVector will win alone by venting a certain number of times.",
|
||||
"VectorInfoLong": "(Neutrals):\\nVector will win alone by venting a certain number of times.",
|
||||
"JackalInfoLong": "(Neutrals):\\nConvert a player with your Kill button. If you die, they will become the new Jackal. You win once you achieve majority and no other evil teams exist.",
|
||||
"GodInfoLong": "(Neutrals):\\nGod knows everyone's role from the beginning, and God will win alone as long as he lives to the end. Note: God won't be Lovers.",
|
||||
"InnocentInfoLong": "(Neutrals):\\nInnocent players can use the kill button to plant another player, causing them to die immediately. If the planted player is voted out in a meeting, the Innocent wins. Note that the Jester, Executioner, and Innocent can win together.",
|
||||
@@ -1559,13 +1559,13 @@
|
||||
"ZombieSpeedReduce": "After a certain time, decrease the speed of <color=#ff1919>Zombie</color> by",
|
||||
"NemesisCanKillNum": "Max number of revenges",
|
||||
"JesterCanUseButton": "Can call emergency meetings",
|
||||
"MarioVentButtonText": "Hop",
|
||||
"Mario.NumVentsToWinOn.Skeld": "Number of Vents to Win on Skeld",
|
||||
"Mario.NumVentsToWinOn.MiraHQ": "Number of Vents to Win on Mira",
|
||||
"Mario.NumVentsToWinOn.Polus": "Number of Vents to Win on Polus",
|
||||
"Mario.NumVentsToWinOn.Dleks": "Number of Vents to Win on Dleks",
|
||||
"Mario.NumVentsToWinOn.Airship": "Number of Vents to Win on Airship",
|
||||
"Mario.NumVentsToWinOn.Fungle": "Number of Vents to Win on Fungle",
|
||||
"VectorVentButtonText": "Hop",
|
||||
"Vector.NumVentsToWinOn.Skeld": "Number of Vents to Win on Skeld",
|
||||
"Vector.NumVentsToWinOn.MiraHQ": "Number of Vents to Win on Mira",
|
||||
"Vector.NumVentsToWinOn.Polus": "Number of Vents to Win on Polus",
|
||||
"Vector.NumVentsToWinOn.Dleks": "Number of Vents to Win on Dleks",
|
||||
"Vector.NumVentsToWinOn.Airship": "Number of Vents to Win on Airship",
|
||||
"Vector.NumVentsToWinOn.Fungle": "Number of Vents to Win on Fungle",
|
||||
"CanCheckCamera": "Can track camera usage",
|
||||
"ArroganceDefaultKillCooldown": "Starting kill cooldown",
|
||||
"ArroganceReduceKillCooldown": "Reduce kill cooldown by",
|
||||
@@ -10080,7 +10080,7 @@
|
||||
"WinnerRoleText.Revolutionist": "Revolutionist Wins!",
|
||||
"WinnerRoleText.Jackal": "Team Jackal Wins!",
|
||||
"WinnerRoleText.God": "God Wins!",
|
||||
"WinnerRoleText.Mario": "Vector Wins!",
|
||||
"WinnerRoleText.Vector": "Vector Wins!",
|
||||
"WinnerRoleText.Innocent": "Innocent Wins!",
|
||||
"WinnerRoleText.Pelican": "Pelican Wins!",
|
||||
"WinnerRoleText.Youtuber": "YouTuber Wins!",
|
||||
|
||||
@@ -9,37 +9,37 @@ using static EHR.Options;
|
||||
|
||||
namespace EHR.Neutral;
|
||||
|
||||
internal class Mario : RoleBase
|
||||
internal class Vector : RoleBase
|
||||
{
|
||||
public static Dictionary<byte, int> MarioVentCount = [];
|
||||
public static Dictionary<byte, int> VectorVentCount = [];
|
||||
|
||||
public static bool On;
|
||||
|
||||
private static OptionItem MarioVentCD;
|
||||
private static OptionItem VectorVentCD;
|
||||
|
||||
private static Dictionary<MapNames, OptionItem> MapWinCounts = [];
|
||||
private static int MarioVentNumWin;
|
||||
private static int VectorVentNumWin;
|
||||
|
||||
public override bool IsEnable => On;
|
||||
|
||||
public override void SetupCustomOption()
|
||||
{
|
||||
SetupRoleOptions(18300, TabGroup.NeutralRoles, CustomRoles.Mario);
|
||||
SetupRoleOptions(18300, TabGroup.NeutralRoles, CustomRoles.Vector);
|
||||
|
||||
MarioVentCD = new FloatOptionItem(18311, "VentCooldown", new(0f, 180f, 1f), 0f, TabGroup.NeutralRoles)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Mario])
|
||||
VectorVentCD = new FloatOptionItem(18311, "VentCooldown", new(0f, 180f, 1f), 0f, TabGroup.NeutralRoles)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Vector])
|
||||
.SetValueFormat(OptionFormat.Seconds);
|
||||
|
||||
MapWinCounts = Enum.GetValues<MapNames>().ToDictionary(x => x, x => new IntegerOptionItem(18312 + (int)x, $"Mario.NumVentsToWinOn.{x}", new(0, 900, 5), 80, TabGroup.NeutralRoles)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Mario])
|
||||
MapWinCounts = Enum.GetValues<MapNames>().ToDictionary(x => x, x => new IntegerOptionItem(18312 + (int)x, $"Vector.NumVentsToWinOn.{x}", new(0, 900, 5), 80, TabGroup.NeutralRoles)
|
||||
.SetParent(CustomRoleSpawnChances[CustomRoles.Vector])
|
||||
.SetValueFormat(OptionFormat.Times));
|
||||
}
|
||||
|
||||
public override void Add(byte playerId)
|
||||
{
|
||||
On = true;
|
||||
MarioVentCount[playerId] = 0;
|
||||
MarioVentNumWin = MapWinCounts[SubmergedCompatibility.IsSubmerged() ? MapNames.Airship : Main.CurrentMap].GetInt();
|
||||
VectorVentCount[playerId] = 0;
|
||||
VectorVentNumWin = MapWinCounts[SubmergedCompatibility.IsSubmerged() ? MapNames.Airship : Main.CurrentMap].GetInt();
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
@@ -49,44 +49,44 @@ internal class Mario : RoleBase
|
||||
|
||||
public override void ApplyGameOptions(IGameOptions opt, byte playerId)
|
||||
{
|
||||
AURoleOptions.EngineerCooldown = MarioVentCD.GetFloat();
|
||||
AURoleOptions.EngineerCooldown = VectorVentCD.GetFloat();
|
||||
AURoleOptions.EngineerInVentMaxTime = 1f;
|
||||
}
|
||||
|
||||
public override string GetProgressText(byte playerId, bool comms)
|
||||
{
|
||||
return Utils.ColorString(Color.white, $"<color=#777777>-</color> {MarioVentCount.GetValueOrDefault(playerId, 0)}/{MarioVentNumWin}");
|
||||
return Utils.ColorString(Color.white, $"<color=#777777>-</color> {VectorVentCount.GetValueOrDefault(playerId, 0)}/{VectorVentNumWin}");
|
||||
}
|
||||
|
||||
public override void SetButtonTexts(HudManager hud, byte id)
|
||||
{
|
||||
hud.AbilityButton.buttonLabelText.text = Translator.GetString("MarioVentButtonText");
|
||||
hud.AbilityButton.buttonLabelText.text = Translator.GetString("VectorVentButtonText");
|
||||
}
|
||||
|
||||
public override void OnFixedUpdate(PlayerControl pc)
|
||||
{
|
||||
byte playerId = pc.PlayerId;
|
||||
|
||||
if (MarioVentCount[playerId] >= MarioVentNumWin)
|
||||
if (VectorVentCount[playerId] >= VectorVentNumWin)
|
||||
{
|
||||
MarioVentCount[playerId] = MarioVentNumWin;
|
||||
CustomWinnerHolder.ResetAndSetWinner(CustomWinner.Mario);
|
||||
VectorVentCount[playerId] = VectorVentNumWin;
|
||||
CustomWinnerHolder.ResetAndSetWinner(CustomWinner.Vector);
|
||||
CustomWinnerHolder.WinnerIds.Add(playerId);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnEnterVent(PlayerControl pc, Vent vent)
|
||||
{
|
||||
MarioVentCount.TryAdd(pc.PlayerId, 0);
|
||||
MarioVentCount[pc.PlayerId]++;
|
||||
VectorVentCount.TryAdd(pc.PlayerId, 0);
|
||||
VectorVentCount[pc.PlayerId]++;
|
||||
Utils.SendRPC(CustomRPC.SyncRoleData, pc.PlayerId, pc.PlayerId);
|
||||
Utils.NotifyRoles(SpecifySeer: pc, SpecifyTarget: pc);
|
||||
pc.RPCPlayCustomSound("MarioJump");
|
||||
pc.RPCPlayCustomSound("VectorJump");
|
||||
|
||||
if (AmongUsClient.Instance.AmHost && MarioVentCount[pc.PlayerId] >= MarioVentNumWin)
|
||||
if (AmongUsClient.Instance.AmHost && VectorVentCount[pc.PlayerId] >= VectorVentNumWin)
|
||||
{
|
||||
pc.RPCPlayCustomSound("MarioCoin");
|
||||
CustomWinnerHolder.ResetAndSetWinner(CustomWinner.Mario);
|
||||
pc.RPCPlayCustomSound("VectorCoin");
|
||||
CustomWinnerHolder.ResetAndSetWinner(CustomWinner.Vector);
|
||||
CustomWinnerHolder.WinnerIds.Add(pc.PlayerId);
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,7 @@ internal class Mario : RoleBase
|
||||
public void ReceiveRPC(MessageReader reader)
|
||||
{
|
||||
byte id = reader.ReadByte();
|
||||
MarioVentCount.TryAdd(id, 0);
|
||||
MarioVentCount[id]++;
|
||||
VectorVentCount.TryAdd(id, 0);
|
||||
VectorVentCount[id]++;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user