From 15747880c1c67f71d3a4a4bfbba1f20186c3c8d7 Mon Sep 17 00:00:00 2001 From: Eisbison Date: Thu, 11 Mar 2021 16:25:28 +0100 Subject: [PATCH] Restructure repository --- README.md | 15 +- Source Code.zip | Bin 216496 -> 0 bytes Source Code/BonusRoles.cs | 405 ++++++++++++++++++++ Source Code/BonusRoles.csproj | 51 +++ Source Code/Buttons.cs | 271 +++++++++++++ Source Code/CredentialsPatch.cs | 31 ++ Source Code/CustomButton.cs | 166 ++++++++ Source Code/EndGamePatch.cs | 275 ++++++++++++++ Source Code/Footprint.cs | 59 +++ Source Code/GameHistory.cs | 32 ++ Source Code/GameOptionsPatch.cs | 23 ++ Source Code/Helpers.cs | 250 ++++++++++++ Source Code/IntroPatch.cs | 172 +++++++++ Source Code/Main.cs | 133 +++++++ Source Code/MeetingPatch.cs | 360 ++++++++++++++++++ Source Code/PlayerControlPatch.cs | 289 ++++++++++++++ Source Code/RPC.cs | 462 +++++++++++++++++++++++ Source Code/Resources/AdminTableIcon.png | Bin 0 -> 5158 bytes Source Code/Resources/CamoButton.png | Bin 0 -> 16845 bytes Source Code/Resources/CleanButton.png | Bin 0 -> 19394 bytes Source Code/Resources/Footprint.png | Bin 0 -> 2821 bytes Source Code/Resources/MorphButton.png | Bin 0 -> 17588 bytes Source Code/Resources/RepairButton.png | Bin 0 -> 18674 bytes Source Code/Resources/RewindButton.png | Bin 0 -> 17215 bytes Source Code/Resources/SampleButton.png | Bin 0 -> 18578 bytes Source Code/Resources/SeerButton.png | Bin 0 -> 17757 bytes Source Code/Resources/ShieldButton.png | Bin 0 -> 20457 bytes Source Code/Resources/ShiftButton.png | Bin 0 -> 19716 bytes Source Code/Resources/SwapperCheck.png | Bin 0 -> 7597 bytes Source Code/RoleAssignmentPatch.cs | 91 +++++ Source Code/ShipStatusPatch.cs | 15 + Source Code/UpdatePatch.cs | 334 ++++++++++++++++ Source Code/UsablesPatch.cs | 244 ++++++++++++ 33 files changed, 3676 insertions(+), 2 deletions(-) delete mode 100644 Source Code.zip create mode 100644 Source Code/BonusRoles.cs create mode 100644 Source Code/BonusRoles.csproj create mode 100644 Source Code/Buttons.cs create mode 100644 Source Code/CredentialsPatch.cs create mode 100644 Source Code/CustomButton.cs create mode 100644 Source Code/EndGamePatch.cs create mode 100644 Source Code/Footprint.cs create mode 100644 Source Code/GameHistory.cs create mode 100644 Source Code/GameOptionsPatch.cs create mode 100644 Source Code/Helpers.cs create mode 100644 Source Code/IntroPatch.cs create mode 100644 Source Code/Main.cs create mode 100644 Source Code/MeetingPatch.cs create mode 100644 Source Code/PlayerControlPatch.cs create mode 100644 Source Code/RPC.cs create mode 100644 Source Code/Resources/AdminTableIcon.png create mode 100644 Source Code/Resources/CamoButton.png create mode 100644 Source Code/Resources/CleanButton.png create mode 100644 Source Code/Resources/Footprint.png create mode 100644 Source Code/Resources/MorphButton.png create mode 100644 Source Code/Resources/RepairButton.png create mode 100644 Source Code/Resources/RewindButton.png create mode 100644 Source Code/Resources/SampleButton.png create mode 100644 Source Code/Resources/SeerButton.png create mode 100644 Source Code/Resources/ShieldButton.png create mode 100644 Source Code/Resources/ShiftButton.png create mode 100644 Source Code/Resources/SwapperCheck.png create mode 100644 Source Code/RoleAssignmentPatch.cs create mode 100644 Source Code/ShipStatusPatch.cs create mode 100644 Source Code/UpdatePatch.cs create mode 100644 Source Code/UsablesPatch.cs diff --git a/README.md b/README.md index c52e80e..4b691ec 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,18 @@ Even more roles are coming soon :) # Releases : | Among Us - Version| Mod Version | Link | |----------|-------------|-----------------| +| **2021.3.5s** | v1.4 | [Download](https://github.com/Eisbison/TheOtherRoles/releases/download/v1.4/TheOtherRoles.zip) | **2021.3.5s** | v1.3 | [Download](https://github.com/Eisbison/TheOtherRoles/releases/download/v1.3/TheOtherRoles.zip) | 2020.12.19s | v1.1 | [Download](https://github.com/Eisbison/TheOtherRoles/releases/download/v1.1/TheOtherRoles.zip) | 2020.12.19s | v1.0 | [Download](https://github.com/Eisbison/TheOtherRoles/files/6097191/TheOtherRoles.zip) | +\ +**Changes in v1.4:** +- Fixing a Camoflager/Morphling animation bug +- Fixing a bug where the Swapper could swap votes even if he was dead +- The custom cooldown buttons now render the cooldown progress (the grey overlay) in the right way (v1.3 introduced the bug) +- Players in vents are not targetable anymore by the role actions, the button does not activate (e.g. Seer revealing, Morphling sample). Exception: Impostor killing an Engineer in a vent + **Changes in v1.3:** - Adds support for the Among Us version **2021.3.5s** - Fixes a bug where a an edge case caused all players to start the game with the camouflaged look @@ -51,7 +59,7 @@ Even more roles are coming soon :) - A bug was removed where the game of the Lovers crashed if they were the last players killed by the host of the lobby. # Installation -1. Download and unzip the newest [release](https://github.com/Eisbison/TheOtherRoles/releases/download/v1.3/TheOtherRoles.zip) +1. Download and unzip the newest [release](https://github.com/Eisbison/TheOtherRoles/releases/download/v1.4/TheOtherRoles.zip) 2. Find the folder of your game, for steams players you can right click in steam, on the game, a menu will appear proposing you to go to the folders.3. Make a copy of your game, it's not obligatory but advise, put it where you want. 4. Drag or extract the files from the zip into your game, at the .exe level. 6. Run the game (the first launch might take a while) @@ -204,6 +212,9 @@ Depending on the selected option the player will get a blue flash on his screen ### **Team: Crewmates** The Engineer (if alive) can fix one sabotage per game from anywhere on the map.\ The Engineer can use vents. +\ +**NOTE** +- The kill button of Impostors activates if they stand next to a vent where the Engineer is. They can also kill him there. No other action (e.g. Morphling sample, Shifter shift, ...) can affect players inside vents. ### Game Options | Name | Description | @@ -358,4 +369,4 @@ It's bad I know, this is a side project and my second week of modding. So there You can use parts of the codes but don't copy paste the whole thing. Make sure you give credits to the other developers, because some parts of the code are base on theirs. And yes it is in a zip file... I will change that. # Bugs, suggestions and requests -If you found any bugs, have an idea for an idea for a new role or any other request, join my [Discord server](https://discord.gg/77RkMJHWsM) +If you found any bugs, have an idea for an idea for a new role or any other request, join my [Discord server](https://discord.gg/77RkMJHWsM) \ No newline at end of file diff --git a/Source Code.zip b/Source Code.zip deleted file mode 100644 index 3eb0c35e0ed6f7704dc03ac6cee0ad3977a18d04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216496 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
V#TuP1)xWEAM0i~8 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 revealedPlayers = new List(); + + public static float cooldown = float.MaxValue; + public static int kindOfInfo = 0; + public static int playersWithNotification = 0; + + public static PlayerControl currentTarget; + + private static Sprite buttonSprite; + public static Sprite getButtonSprite() { + if (buttonSprite) return buttonSprite; + buttonSprite = Helpers.loadSpriteFromResources("BonusRoles.Resources.SeerButton.png", 100f); + return buttonSprite; + } + + public static void clearAndReload() { + seer = null; + revealedPlayers = new List(); + cooldown = BonusRolesPlugin.seerCooldown.GetValue(); + kindOfInfo = BonusRolesPlugin.seerKindOfInfo.GetValue(); + playersWithNotification = BonusRolesPlugin.seerPlayersWithNotification.GetValue(); + } + } + + public static class Morphling { + public static PlayerControl morphling; + public static Color color = Palette.ImpostorRed; + private static Sprite sampleSprite; + private static Sprite morphSprite; + + public static float cooldown = float.MaxValue; + + public static PlayerControl currentTarget; + public static PlayerControl sampledTarget; + public static PlayerControl morphTarget; + public static float morphTimer = 0f; + + + public static void clearAndReload() { + morphling = null; + currentTarget = null; + sampledTarget = null; + morphTarget = null; + morphTimer = 0f; + cooldown = BonusRolesPlugin.morphlingCooldown.GetValue(); + } + + public static Sprite getSampleSprite() { + if (sampleSprite) return sampleSprite; + sampleSprite = Helpers.loadSpriteFromResources("BonusRoles.Resources.SampleButton.png", 100f); + return sampleSprite; + } + + public static Sprite getMorphSprite() { + if (morphSprite) return morphSprite; + morphSprite = Helpers.loadSpriteFromResources("BonusRoles.Resources.MorphButton.png", 100f); + return morphSprite; + } + } + + public static class Camouflager { + public static PlayerControl camouflager; + public static Color color = Palette.ImpostorRed; + + public static float cooldown = float.MaxValue; + public static float camouflageTimer = 0f; + + private static Sprite buttonSprite; + public static Sprite getButtonSprite() { + if (buttonSprite) return buttonSprite; + buttonSprite = Helpers.loadSpriteFromResources("BonusRoles.Resources.CamoButton.png", 100f); + return buttonSprite; + } + + public static void clearAndReload() { + camouflager = null; + camouflageTimer = 0f; + cooldown = BonusRolesPlugin.camouflagerCooldown.GetValue(); + } + } + + public static class Spy { + public static PlayerControl spy; + private static Sprite adminTableIcon; + public static Color color = new Color(252f / 255f, 90f / 255f, 30f / 255f, 1); + + public static Sprite getAdminTableIconSprite() { + if (adminTableIcon) return adminTableIcon; + adminTableIcon = Helpers.loadSpriteFromResources("BonusRoles.Resources.AdminTableIcon.png", 350f); + return adminTableIcon; + } + + public static void clearAndReload() { + spy = null; + } + } + + public static class Child { + public static PlayerControl child; + public static Color color = Color.white; + + public static void clearAndReload() { + child = null; + } + } +} \ No newline at end of file diff --git a/Source Code/BonusRoles.csproj b/Source Code/BonusRoles.csproj new file mode 100644 index 0000000..3df26ef --- /dev/null +++ b/Source Code/BonusRoles.csproj @@ -0,0 +1,51 @@ + + + netstandard2.1 + 1.0.0 + NuclearPowered/Mappings:0.2.0 + + BonusRoles + Eisbison + + + + 2021.3.5s + $(DefineConstants);STEAM + + + + 2021.3.5i + $(DefineConstants);ITCH + + + + + + + + + + + $(AmongUs)\BepInEx\plugins\Essentials-$(GameVersion).dll + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source Code/Buttons.cs b/Source Code/Buttons.cs new file mode 100644 index 0000000..2fe81fd --- /dev/null +++ b/Source Code/Buttons.cs @@ -0,0 +1,271 @@ +using HarmonyLib; +using Hazel; +using System; +using System.IO; +using System.Net.Http; +using UnityEngine; +using static BonusRoles.BonusRoles; +using Reactor.Extensions; +using System.Collections.Generic; + +namespace BonusRoles +{ + [HarmonyPatch(typeof(HudManager), nameof(HudManager.Start))] + static class HudManagerStartPatch + { + private static CustomButton engineerRepairButton; + private static CustomButton janitorCleanButton; + private static CustomButton sheriffKillButton; + private static CustomButton timeMasterRewindTimeButton; + private static CustomButton medicShieldButton; + private static CustomButton shifterShiftButton; + private static CustomButton seerRevealButton; + private static CustomButton morphlingButton; + private static CustomButton camouflagerButton; + + public static void setCustomButtonCooldowns() { + engineerRepairButton.MaxTimer = 0f; + janitorCleanButton.MaxTimer = Janitor.cooldown; + sheriffKillButton.MaxTimer = Sheriff.cooldown; + timeMasterRewindTimeButton.MaxTimer = TimeMaster.cooldown; + medicShieldButton.MaxTimer = 0f; + shifterShiftButton.MaxTimer = Shifter.cooldown; + seerRevealButton.MaxTimer = Seer.cooldown; + morphlingButton.MaxTimer = Morphling.cooldown; + camouflagerButton.MaxTimer = Camouflager.cooldown; + } + + public static void Postfix(HudManager __instance) + { + // Engineer Repair + engineerRepairButton = new CustomButton( + () => { + engineerRepairButton.Timer = 0f; + + MessageWriter usedRepairWriter = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.EngineerUsedRepair, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(usedRepairWriter); + RPCProcedure.engineerUsedRepair(); + + foreach (PlayerTask task in PlayerControl.LocalPlayer.myTasks) { + if (task.TaskType == TaskTypes.FixLights) { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.EngineerFixLights, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.engineerFixLights(); + } else if (task.TaskType == TaskTypes.RestoreOxy) { + ShipStatus.Instance.RpcRepairSystem(SystemTypes.LifeSupp, 0 | 64); + ShipStatus.Instance.RpcRepairSystem(SystemTypes.LifeSupp, 1 | 64); + } else if (task.TaskType == TaskTypes.ResetReactor) { + ShipStatus.Instance.RpcRepairSystem(SystemTypes.Reactor, 16); + } else if (task.TaskType == TaskTypes.ResetSeismic) { + ShipStatus.Instance.RpcRepairSystem(SystemTypes.Laboratory, 16); + } else if (task.TaskType == TaskTypes.FixComms) { + ShipStatus.Instance.RpcRepairSystem(SystemTypes.Comms, 16 | 0); + ShipStatus.Instance.RpcRepairSystem(SystemTypes.Comms, 16 | 1); + } + } + }, + () => { return Engineer.engineer != null && Engineer.engineer == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { + bool sabotageActive = false; + foreach (PlayerTask task in PlayerControl.LocalPlayer.myTasks) + if (task.TaskType == TaskTypes.FixLights || task.TaskType == TaskTypes.RestoreOxy || task.TaskType == TaskTypes.ResetReactor || task.TaskType == TaskTypes.ResetSeismic || task.TaskType == TaskTypes.FixComms) + sabotageActive = true; + return sabotageActive && !Engineer.usedRepair && PlayerControl.LocalPlayer.CanMove; + }, + false, + Engineer.getButtonSprite(), + Vector3.zero, + __instance + ); + + // Janitor Clean + janitorCleanButton = new CustomButton( + () => { + foreach (Collider2D collider2D in Physics2D.OverlapCircleAll(PlayerControl.LocalPlayer.GetTruePosition(), PlayerControl.LocalPlayer.MaxReportDistance, Constants.PlayersOnlyMask)) { + if (collider2D.tag == "DeadBody") + { + DeadBody component = collider2D.GetComponent(); + if (component && !component.Reported) + { + Vector2 truePosition = PlayerControl.LocalPlayer.GetTruePosition(); + Vector2 truePosition2 = component.TruePosition; + if (Vector2.Distance(truePosition2, truePosition) <= PlayerControl.LocalPlayer.MaxReportDistance && PlayerControl.LocalPlayer.CanMove && !PhysicsHelpers.AnythingBetween(truePosition, truePosition2, Constants.ShipAndObjectsMask, false)) + { + GameData.PlayerInfo playerInfo = GameData.Instance.GetPlayerById(component.ParentId); + + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.JanitorClean, Hazel.SendOption.None, -1); + writer.Write(playerInfo.PlayerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.janitorClean(playerInfo.PlayerId); + janitorCleanButton.Timer = janitorCleanButton.MaxTimer; + + break; + } + } + } + } + }, + () => { return Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { return __instance.ReportButton.renderer.color == Palette.EnabledColor && PlayerControl.LocalPlayer.CanMove; }, + true, + Janitor.getButtonSprite(), + Vector3.zero, + __instance + ); + + // Sheriff Kill + sheriffKillButton = new CustomButton( + () => { + if (Medic.shielded != null && Medic.shielded == Sheriff.currentTarget) { + MessageWriter attemptWriter = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ShieldedMurderAttempt, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(attemptWriter); + RPCProcedure.shieldedMurderAttempt(); + + return; + } + + byte targetId = 0; + if (Sheriff.currentTarget.Data.IsImpostor || (Sheriff.jesterCanDieToSheriff && Jester.jester != null && Jester.jester == Sheriff.currentTarget)) + targetId = Sheriff.currentTarget.PlayerId; + else + targetId = PlayerControl.LocalPlayer.PlayerId; + + MessageWriter killWriter = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.SheriffKill, Hazel.SendOption.None, -1); + killWriter.Write(targetId); + AmongUsClient.Instance.FinishRpcImmediately(killWriter); + RPCProcedure.sheriffKill(targetId); + + sheriffKillButton.Timer = sheriffKillButton.MaxTimer; + Sheriff.currentTarget = null; + }, + () => { return Sheriff.sheriff != null && Sheriff.sheriff == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { return Sheriff.currentTarget && PlayerControl.LocalPlayer.CanMove; }, + true, + __instance.KillButton.renderer.sprite, + Vector3.zero, + __instance + ); + + // Time Master Rewind Time + timeMasterRewindTimeButton = new CustomButton( + () => { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.TimeMasterRewindTime, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.timeMasterRewindTime(); + timeMasterRewindTimeButton.Timer = timeMasterRewindTimeButton.MaxTimer; + }, + () => { return TimeMaster.timeMaster != null && TimeMaster.timeMaster == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { return PlayerControl.LocalPlayer.CanMove; }, + true, + TimeMaster.getButtonSprite(), + Vector3.zero, + __instance + ); + + // Medic Shield + medicShieldButton = new CustomButton( + () => { + medicShieldButton.Timer = 0f; + + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.MedicSetShielded, Hazel.SendOption.None, -1); + writer.Write(Medic.currentTarget.PlayerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.medicSetShielded(Medic.currentTarget.PlayerId); + }, + () => { return Medic.medic != null && Medic.medic == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { return !Medic.usedShield && Medic.currentTarget && PlayerControl.LocalPlayer.CanMove; }, + false, + Medic.getButtonSprite(), + Vector3.zero, + __instance + ); + + + // Shifter shift + shifterShiftButton = new CustomButton( + () => { + shifterShiftButton.Timer = shifterShiftButton.MaxTimer; + + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ShifterShift, Hazel.SendOption.None, -1); + writer.Write(Shifter.currentTarget.PlayerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + + RPCProcedure.shifterShift(Shifter.currentTarget.PlayerId); + }, + () => { return Shifter.shifter != null && Shifter.shifter == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { return Shifter.currentTarget && PlayerControl.LocalPlayer.CanMove; }, + true, + Shifter.getButtonSprite(), + Vector3.zero, + __instance + ); + + // Seer reveal + seerRevealButton = new CustomButton( + () => { + seerRevealButton.Timer = seerRevealButton.MaxTimer; + + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.SeerReveal, Hazel.SendOption.None, -1); + writer.Write(Seer.currentTarget.PlayerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + + RPCProcedure.seerReveal(Seer.currentTarget.PlayerId); + }, + () => { return Seer.seer != null && Seer.seer == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { return Seer.currentTarget && PlayerControl.LocalPlayer.CanMove; }, + false, + Seer.getButtonSprite(), + Vector3.zero, + __instance + ); + + // Morphling morph + morphlingButton = new CustomButton( + () => { + if (Morphling.sampledTarget != null) { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.MorphlingMorph, Hazel.SendOption.None, -1); + writer.Write(Morphling.sampledTarget.PlayerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.morphlingMorph(Morphling.sampledTarget.PlayerId); + Morphling.sampledTarget = null; + morphlingButton.HasEffect = true; // Trigger effect on this click + } else if (Morphling.currentTarget != null) { + Morphling.sampledTarget = Morphling.currentTarget; + morphlingButton.Sprite = Morphling.getMorphSprite(); + morphlingButton.HasEffect = false; // Block effect on this click + } + }, + () => { return Morphling.morphling != null && Morphling.morphling == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { return (Morphling.currentTarget || Morphling.sampledTarget) && PlayerControl.LocalPlayer.CanMove; }, + true, + Morphling.getSampleSprite(), + new Vector3(0f, 1.3f, 0f), + __instance, + true, + 10f, + () => { + morphlingButton.Timer = morphlingButton.MaxTimer; + morphlingButton.Sprite = Morphling.getSampleSprite(); + } + ); + + // Camouflager camouflage + camouflagerButton = new CustomButton( + () => { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.CamouflagerCamouflage, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.camouflagerCamouflage(); + }, + () => { return Camouflager.camouflager != null && Camouflager.camouflager == PlayerControl.LocalPlayer && __instance.UseButton.isActiveAndEnabled && !PlayerControl.LocalPlayer.Data.IsDead; }, + () => { return PlayerControl.LocalPlayer.CanMove; }, + true, + Camouflager.getButtonSprite(), + new Vector3(0f, 1.3f, 0f), + __instance, + true, + 10f, + () => { camouflagerButton.Timer = camouflagerButton.MaxTimer; } + ); + } + } +} \ No newline at end of file diff --git a/Source Code/CredentialsPatch.cs b/Source Code/CredentialsPatch.cs new file mode 100644 index 0000000..c2a8c0a --- /dev/null +++ b/Source Code/CredentialsPatch.cs @@ -0,0 +1,31 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BonusRoles +{ + [HarmonyPatch(typeof(VersionShower), nameof(VersionShower.Start))] + public static class VersionShowerPatch + { + static void Postfix(VersionShower __instance) { + string spacer = new String('\n', 15); + if (__instance.text.Text.Contains(spacer)) + __instance.text.Text += "\n[FFFFFFFF]- Loaded [FCCE03FF]TheOtherRoles[FFFFFFFF] v1.4\n by [FCCE03FF]Eisbison"; + else + __instance.text.Text += spacer + "[FFFFFFFF]- Loaded [FCCE03FF]TheOtherRoles[FFFFFFFF] v1.4\n by [FCCE03FF]Eisbison"; + } + } + + [HarmonyPatch(typeof(PingTracker), nameof(PingTracker.Update))] + public static class PingTrackerPatch + { + static void Postfix(VersionShower __instance) + { + __instance.text.Text += "\n[FCCE03FF]TheOtherRoles[FFFFFFFF]"; + __instance.text.Text += "\nModded by [FCCE03FF]Eisbison"; + } + } +} diff --git a/Source Code/CustomButton.cs b/Source Code/CustomButton.cs new file mode 100644 index 0000000..e89bf31 --- /dev/null +++ b/Source Code/CustomButton.cs @@ -0,0 +1,166 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using Reactor.Extensions; +using Reactor.Unstrip; +using UnityEngine; + +public class CustomButton +{ + public static List buttons = new List(); + public KillButtonManager killButtonManager; + public Vector3 PositionOffset; + public float MaxTimer = float.MaxValue; + public float Timer = 0f; + public bool ResetTimeAfterMeeting; + private Action OnClick; + private Func HasButton; + private Func CouldUse; + private Action OnEffectEnds; + public bool HasEffect; + private bool isEffectActive = false; + private float EffectDuration; + public Sprite Sprite; + private HudManager hudManager; + + public CustomButton(Action OnClick, Func HasButton, Func CouldUse, bool ResetTimeAfterMeeting, Sprite Sprite, Vector3 PositionOffset, HudManager hudManager, bool HasEffect, float EffectDuration, Action OnEffectEnds) + { + this.hudManager = hudManager; + this.OnClick = OnClick; + this.HasButton = HasButton; + this.CouldUse = CouldUse; + this.PositionOffset = PositionOffset; + this.ResetTimeAfterMeeting = ResetTimeAfterMeeting; + this.HasEffect = HasEffect; + this.EffectDuration = EffectDuration; + this.OnEffectEnds = OnEffectEnds; + this.Sprite = Sprite; + Timer = 16.2f; + buttons.Add(this); + killButtonManager = UnityEngine.Object.Instantiate(hudManager.KillButton, hudManager.transform); + PassiveButton button = killButtonManager.GetComponent(); + button.OnClick.RemoveAllListeners(); + button.OnClick.AddListener((UnityEngine.Events.UnityAction)listener); + + void listener() + { + if (this.Timer < 0f && HasButton() && CouldUse()) + { + killButtonManager.renderer.color = new Color(1f, 1f, 1f, 0.3f); + this.OnClick(); + + if (this.HasEffect && !this.isEffectActive) { + this.Timer = this.EffectDuration; + killButtonManager.TimerText.Color = new Color(0F, 0.8F, 0F); + this.isEffectActive = true; + } + } + } + setActive(false); + } + + public CustomButton(Action OnClick, Func HasButton, Func CouldUse, bool ResetTimeAfterMeeting, Sprite Sprite, Vector3 PositionOffset, HudManager hudManager) + : this(OnClick, HasButton, CouldUse, ResetTimeAfterMeeting, Sprite, PositionOffset, hudManager, false, 0f, () => {}) { } + + + public static void HudUpdate() + { + buttons.RemoveAll(item => item.killButtonManager == null); + if (MeetingHud.Instance || ExileController.Instance) return; + + for (int i = 0; i < buttons.Count; i++) + { + try + { + buttons[i].Update(); + } + catch (NullReferenceException) + { + System.Console.WriteLine("[WARNING] NullReferenceException from HudUpdate().HasButton(), if theres only one warning its fine"); + } + } + } + + public static void MeetingEndedUpdate() { + buttons.RemoveAll(item => item.killButtonManager == null); + for (int i = 0; i < buttons.Count; i++) + { + try + { + if (buttons[i].ResetTimeAfterMeeting) { + buttons[i].Timer = buttons[i].MaxTimer; + buttons[i].Update(); + } + } + catch (NullReferenceException) + { + System.Console.WriteLine("[WARNING] NullReferenceException from MeetingEndedUpdate().HasButton(), if theres only one warning its fine"); + } + } + } + + public static void ResetAllCooldowns() { + for (int i = 0; i < buttons.Count; i++) + { + try + { + buttons[i].Timer = buttons[i].MaxTimer; + buttons[i].Update(); + } + catch (NullReferenceException) + { + System.Console.WriteLine("[WARNING] NullReferenceException from MeetingEndedUpdate().HasButton(), if theres only one warning its fine"); + } + } + } + + public void setActive(bool isActive) { + if (isActive) { + killButtonManager.gameObject.SetActive(true); + killButtonManager.renderer.enabled = true; + } else { + killButtonManager.gameObject.SetActive(false); + killButtonManager.renderer.enabled = false; + } + } + + private void Update() + { + if (PlayerControl.LocalPlayer.Data == null || !HasButton()) { + setActive(false); + return; + } + setActive(true); + + killButtonManager.renderer.sprite = Sprite; + + if (killButtonManager.transform.position == hudManager.KillButton.transform.position) + { + Vector3 vector = killButtonManager.transform.localPosition; + vector += new Vector3(PositionOffset.x, PositionOffset.y); + killButtonManager.transform.localPosition = vector; + } + + + if (CouldUse()) { + killButtonManager.renderer.color = Palette.EnabledColor; + killButtonManager.renderer.material.SetFloat("_Desat", 0f); + } else { + killButtonManager.renderer.color = Palette.DisabledColor; + killButtonManager.renderer.material.SetFloat("_Desat", 1f); + } + + if (Timer >= 0) { + Timer -= Time.deltaTime; + } + + if (Timer <= 0 && HasEffect && isEffectActive) { + isEffectActive = false; + killButtonManager.TimerText.Color = Palette.EnabledColor; + OnEffectEnds(); + } + + killButtonManager.SetCoolDown(Timer, (HasEffect && isEffectActive) ? EffectDuration : MaxTimer); + } +} \ No newline at end of file diff --git a/Source Code/EndGamePatch.cs b/Source Code/EndGamePatch.cs new file mode 100644 index 0000000..499d028 --- /dev/null +++ b/Source Code/EndGamePatch.cs @@ -0,0 +1,275 @@ + +using HarmonyLib; +using static BonusRoles.BonusRoles; +using static BonusRoles.GameHistory; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Linq; +using Hazel; +using UnhollowerBaseLib; +using System; +using System.Text; + +namespace BonusRoles { + enum WinCondition { + Default, + LoversTeamWin, + LoversSoloWin, + JesterWin, + ChildWin + } + + static class AdditionalTempData { + // Should be implemented using a proper GameOverReason in the future + public static WinCondition winCondition = WinCondition.Default; + public static bool localIsLover = false; + + + public static void clear() { + winCondition = WinCondition.Default; + localIsLover = false; + + } + } + + [HarmonyPatch(typeof(AmongUsClient), nameof(AmongUsClient.OnGameEnd))] + public class OnGameEndPatch { + public static void Postfix(AmongUsClient __instance, GameOverReason OFLKLGMHBEL, bool JFFPAKGPNJA) { + AdditionalTempData.clear(); + + // Remove shifter from winners + if (Shifter.shifter != null) { + WinningPlayerData shifterWinner = null; + foreach (WinningPlayerData winner in TempData.winners) + if (winner.Name == Shifter.shifter.Data.PlayerName) shifterWinner = winner; + + if (shifterWinner != null) TempData.winners.Remove(shifterWinner); + } + // Remove Jester from winners (on Jester win he will be added again, see below) + if (Jester.jester != null) { + WinningPlayerData jesterWinner = null; + foreach (WinningPlayerData winner in TempData.winners) + if (winner.Name == Jester.jester.Data.PlayerName) jesterWinner = winner; + + if (jesterWinner != null) TempData.winners.Remove(jesterWinner); + } + + + // Child win condition (should be implemented using a proper GameOverReason in the future) + if (Child.child != null && Child.child.Data.IsImpostor) { + AdditionalTempData.winCondition = WinCondition.ChildWin; + TempData.winners = new Il2CppSystem.Collections.Generic.List(); + WinningPlayerData wpd = new WinningPlayerData(Child.child.Data); + wpd.IsImpostor = false; + TempData.winners.Add(wpd); + } + + // Jester win condition (should be implemented using a proper GameOverReason in the future) + else if (Jester.jester != null && Jester.jester.Data.IsImpostor) { + AdditionalTempData.winCondition = WinCondition.JesterWin; + TempData.winners = new Il2CppSystem.Collections.Generic.List(); + WinningPlayerData wpd = new WinningPlayerData(Jester.jester.Data); + wpd.IsImpostor = false; + TempData.winners.Add(wpd); + } + + // Lovers win conditions (should be implemented using a proper GameOverReason in the future) + else if (Lovers.existingAndAlive()) { + AdditionalTempData.localIsLover = (PlayerControl.LocalPlayer == Lovers.lover1 || PlayerControl.LocalPlayer == Lovers.lover2); + // Double win for lovers, crewmates also win + if (TempData.DidHumansWin(OFLKLGMHBEL)) { + AdditionalTempData.winCondition = WinCondition.LoversTeamWin; + } + // Lovers solo win + else if (Lovers.existingWithImpLover()){ + AdditionalTempData.winCondition = WinCondition.LoversSoloWin; + TempData.winners = new Il2CppSystem.Collections.Generic.List(); + TempData.winners.Add(new WinningPlayerData(Lovers.lover1.Data)); + TempData.winners.Add(new WinningPlayerData(Lovers.lover2.Data)); + } + } + + // Reset Bonus Roles Settings + clearAndReloadRoles(); + clearGameHistory(); + } + } + + [HarmonyPatch(typeof(EndGameManager), nameof(EndGameManager.SetEverythingUp))] + public class EndGameManagerSetUpPatch { + public static void Postfix(EndGameManager __instance) { + GameObject bonusText = UnityEngine.Object.Instantiate(__instance.WinText.gameObject); + bonusText.transform.position = new Vector3(__instance.WinText.transform.position.x, __instance.WinText.transform.position.y - 0.8f, __instance.WinText.transform.position.z); + bonusText.transform.localScale = new Vector3(0.7f, 0.7f, 1f); + TextRenderer textRenderer = bonusText.GetComponent(); + textRenderer.Text = ""; + + if (AdditionalTempData.winCondition == WinCondition.ChildWin) { + textRenderer.Text = "Child Wins"; + textRenderer.Color = Child.color; + } + else if (AdditionalTempData.winCondition == WinCondition.JesterWin) { + textRenderer.Text = "Jester Wins"; + textRenderer.Color = Jester.color; + } + else if (AdditionalTempData.winCondition == WinCondition.LoversTeamWin) { + if (AdditionalTempData.localIsLover) { + __instance.WinText.Text = "Double Victory"; + } + textRenderer.Text = "Lovers And Crewmates Win"; + textRenderer.Color = Lovers.color; + __instance.BackgroundBar.material.SetColor("_Color", Lovers.color); + } else if (AdditionalTempData.winCondition == WinCondition.LoversSoloWin) { + textRenderer.Text = "Lovers Win"; + textRenderer.Color = Lovers.color; + __instance.BackgroundBar.material.SetColor("_Color", Lovers.color); + } + + AdditionalTempData.clear(); + } + } + + [HarmonyPatch(typeof(ShipStatus), nameof(ShipStatus.CheckEndCriteria))] + class CheckEndCriteriaPatch{ + private static void ReviveEveryone() { + for (int i = 0; i < GameData.Instance.PlayerCount; i++) + GameData.Instance.AllPlayers[i].Object.Revive(); + DeadBody[] array = UnityEngine.Object.FindObjectsOfType(); + for (int i = 0; i < array.Length; i++) UnityEngine.Object.Destroy(array[i].gameObject); + } + + private static void EndGameForSabotage(ShipStatus __instance) + { + if (!DestroyableSingleton.InstanceExists) + { + __instance.enabled = false; + ShipStatus.RpcEndGame(GameOverReason.ImpostorBySabotage, false); + return; + } + DestroyableSingleton.Instance.ShowPopUp(DestroyableSingleton.Instance.GetString(StringNames.GameOverSabotage, new Il2CppReferenceArray(0))); + } + + public static bool Prefix(ShipStatus __instance) { + if (!GameData.Instance) + { + return false; + } + ISystemType systemType = __instance.Systems.ContainsKey(SystemTypes.LifeSupp) ? __instance.Systems[SystemTypes.LifeSupp] : null; + if (systemType != null) + { + LifeSuppSystemType lifeSuppSystemType = systemType.TryCast(); + if (lifeSuppSystemType.Countdown < 0f) + { + EndGameForSabotage(__instance); + lifeSuppSystemType.Countdown = 10000f; + } + } + ISystemType systemType2 = __instance.Systems.ContainsKey(SystemTypes.Reactor) ? __instance.Systems[SystemTypes.Reactor] : null; + if (systemType2 == null) systemType2 = __instance.Systems.ContainsKey(SystemTypes.Laboratory) ? __instance.Systems[SystemTypes.Laboratory] : null; + if (systemType2 != null) + { + ReactorSystemType reactorSystemType = systemType2.TryCast(); + if (reactorSystemType.Countdown < 0f) + { + EndGameForSabotage(__instance); + reactorSystemType.Countdown = 10000f; + } + } + int num = 0; + int num2 = 0; + int num3 = 0; + for (int i = 0; i < GameData.Instance.PlayerCount; i++) + { + GameData.PlayerInfo playerInfo = GameData.Instance.AllPlayers[i]; + if (!playerInfo.Disconnected) + { + if (playerInfo.IsImpostor) + { + num3++; + } + if (!playerInfo.IsDead) + { + if (playerInfo.IsImpostor) + { + num2++; + } + else + { + num++; + } + } + } + } + if (num2 <= 0 && (!DestroyableSingleton.InstanceExists || num3 > 0)) + { + if (!DestroyableSingleton.InstanceExists) + { + __instance.enabled = false; + ShipStatus.RpcEndGame(GameOverReason.HumansByVote, false); + return false; + } + DestroyableSingleton.Instance.ShowPopUp(DestroyableSingleton.Instance.GetString(StringNames.GameOverImpostorDead, new Il2CppReferenceArray(0))); + ReviveEveryone(); + return false; + } + else + { + if (num > num2) + { + bool localCompletedAllTasks = true; + foreach (PlayerTask t in PlayerControl.LocalPlayer.myTasks) { + localCompletedAllTasks = localCompletedAllTasks && t.IsComplete; + } + + if (!DestroyableSingleton.InstanceExists) + { + if (GameData.Instance.TotalTasks <= GameData.Instance.CompletedTasks) + { + __instance.enabled = false; + ShipStatus.RpcEndGame(GameOverReason.HumansByTask, false); + return false; + } + } + else if (localCompletedAllTasks) + { + DestroyableSingleton.Instance.ShowPopUp(DestroyableSingleton.Instance.GetString(StringNames.GameOverTaskWin, new Il2CppReferenceArray(0))); + __instance.Begin(); + } + if (num + num2 == 3 && Lovers.existingAndAlive()) { // 3 players with 2 lovers is always a lover win (either shared with crewmates or solo for lovers, marked as impostor win) + __instance.enabled = false; + ShipStatus.RpcEndGame(Lovers.existingWithImpLover() ? GameOverReason.ImpostorByKill : GameOverReason.HumansByVote, false); // should be implemented using a proper GameOverReason in the future + return false; + } + return false; + } + if (num == num2 && Lovers.existingAndAlive() && Lovers.existingWithImpLover()) { // 3 vs 3 or 2 vs 2 is not win if both lovers are alive and one is an impostor + return false; + } + if (!DestroyableSingleton.InstanceExists) + { + __instance.enabled = false; + GameOverReason endReason; + switch (TempData.LastDeathReason) + { + case DeathReason.Exile: + endReason = GameOverReason.ImpostorByVote; + break; + case DeathReason.Kill: + endReason = GameOverReason.ImpostorByKill; + break; + default: + endReason = GameOverReason.ImpostorByVote; + break; + } + ShipStatus.RpcEndGame(endReason, false); + return false; + } + DestroyableSingleton.Instance.ShowPopUp(DestroyableSingleton.Instance.GetString(StringNames.GameOverImpostorKills, new Il2CppReferenceArray(0))); + + ReviveEveryone(); + return false; + } + } + } +} \ No newline at end of file diff --git a/Source Code/Footprint.cs b/Source Code/Footprint.cs new file mode 100644 index 0000000..7cc24c8 --- /dev/null +++ b/Source Code/Footprint.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using UnityEngine; +using static BonusRoles.BonusRoles; + +namespace BonusRoles{ + class Footprint { + private static List footprints = new List(); + private static Sprite sprite; + private Color color; + private GameObject footprint; + private SpriteRenderer spriteRenderer; + + public static Sprite getFootprintSprite() { + if (sprite) return sprite; + sprite = Helpers.loadSpriteFromResources("BonusRoles.Resources.Footprint.png", 600f); + return sprite; + } + + public Footprint(float footprintDuration, bool anonymousFootprints, PlayerControl player) { + if (anonymousFootprints) + this.color = new Color(0.2f, 0.2f, 0.2f, 1f); + else + this.color = Palette.PlayerColors[(int) player.Data.ColorId]; + + footprint = new GameObject("Footprint"); + Vector3 position = new Vector3(player.transform.position.x, player.transform.position.y, player.transform.position.z + 1f); + footprint.transform.position = position; + footprint.transform.localPosition = position; + footprint.transform.SetParent(player.transform.parent); + + footprint.transform.Rotate(0.0f, 0.0f, UnityEngine.Random.Range(0.0f, 360.0f)); + + + spriteRenderer = footprint.AddComponent(); + spriteRenderer.sprite = getFootprintSprite(); + spriteRenderer.color = color; + + footprint.SetActive(true); + footprints.Add(this); + + Reactor.Coroutines.Start(CoFadeOutAndDestroy(footprintDuration)); + } + + IEnumerator CoFadeOutAndDestroy(float duration) + { + for (float t = 0f; t < duration; t += Time.deltaTime) + { + // Check not null since if game ends, this access throws an error + if (spriteRenderer) spriteRenderer.color = new Color(color.r, color.g, color.b, Mathf.Clamp(1f - t/duration, 0f, 1f)); + + yield return null; + } + UnityEngine.Object.Destroy(footprint); + footprints.Remove(this); + } + } +} \ No newline at end of file diff --git a/Source Code/GameHistory.cs b/Source Code/GameHistory.cs new file mode 100644 index 0000000..20c7552 --- /dev/null +++ b/Source Code/GameHistory.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using System.Collections; +using System; +using UnityEngine; +using static BonusRoles.BonusRoles; + +namespace BonusRoles{ + public class DeadPlayer + { + public PlayerControl player; + public DateTime timeOfDeath; + public DeathReason deathReason; + public PlayerControl killerIfExisting; + + public DeadPlayer(PlayerControl player, DateTime timeOfDeath, DeathReason deathReason, PlayerControl killerIfExisting) { + this.player = player; + this.timeOfDeath = timeOfDeath; + this.deathReason = deathReason; + this.killerIfExisting = killerIfExisting; + } + } + + static class GameHistory { + public static List> localPlayerPositions = new List>(); + public static List deadPlayers = new List(); + + public static void clearGameHistory() { + localPlayerPositions = new List>(); + deadPlayers = new List(); + } + } +} \ No newline at end of file diff --git a/Source Code/GameOptionsPatch.cs b/Source Code/GameOptionsPatch.cs new file mode 100644 index 0000000..5e592b4 --- /dev/null +++ b/Source Code/GameOptionsPatch.cs @@ -0,0 +1,23 @@ +using HarmonyLib; +using System; +using System.IO; +using System.Net.Http; +using UnityEngine; +using static BonusRoles.BonusRoles; +using Reactor.Extensions; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace BonusRoles +{ + [HarmonyPriority(Priority.Low)] + [HarmonyPatch(typeof(GameOptionsMenu), nameof(GameOptionsMenu.Update))] + class GameOptionsMenuUpdatePatch + { + public static void Postfix(GameOptionsMenu __instance) + { + __instance.GetComponentInParent().YBounds.max = -0.5F + __instance.Children.Length * 0.5F; + } + } +} \ No newline at end of file diff --git a/Source Code/Helpers.cs b/Source Code/Helpers.cs new file mode 100644 index 0000000..3b35483 --- /dev/null +++ b/Source Code/Helpers.cs @@ -0,0 +1,250 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using Reactor.Extensions; +using System.Collections; +using Reactor.Unstrip; +using UnhollowerBaseLib; +using UnityEngine; +using static BonusRoles.BonusRoles; + +namespace BonusRoles { + public static class Helpers { + + public static Sprite LoadSpriteFromEmbeddedResources(string resource, float PixelPerUnit) { + try { + System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly(); + System.IO.Stream myStream = myAssembly.GetManifestResourceStream(resource); + byte[] image = new byte[myStream.Length]; + myStream.Read(image, 0, (int) myStream.Length); + Texture2D myTexture = new Texture2D(2, 2, TextureFormat.ARGB32, true); + LoadImage(myTexture, image, true); + return Sprite.Create(myTexture, new Rect(0, 0, myTexture.width, myTexture.height), new Vector2(0.5f, 0.5f), PixelPerUnit); + } catch { } + return null; + } + + internal delegate bool d_LoadImage(IntPtr tex, IntPtr data, bool markNonReadable); + internal static d_LoadImage iCall_LoadImage; + private static bool LoadImage(Texture2D tex, byte[] data, bool markNonReadable) { + if (iCall_LoadImage == null) + iCall_LoadImage = IL2CPP.ResolveICall("UnityEngine.ImageConversion::LoadImage"); + + var il2cppArray = (Il2CppStructArray) data; + + return iCall_LoadImage.Invoke(tex.Pointer, il2cppArray.Pointer, markNonReadable); + } + + public static int a = 0; + + public static Sprite loadSpriteFromResources(string path, float pixelsPerUnit) { + try { + Texture2D texture = GUIExtensions.CreateEmptyTexture(); + Assembly assembly = Assembly.GetExecutingAssembly(); + Stream stream = assembly.GetManifestResourceStream(path); + byte[] byteTexture = Reactor.Extensions.Extensions.ReadFully(stream); + ImageConversion.LoadImage(texture, byteTexture, false); + return Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f), pixelsPerUnit); + } catch { + System.Console.WriteLine("Error loading sprite from path: " + path); + } + return null; + } + + public static PlayerControl playerById(byte id) + { + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + if (player.PlayerId == id) + return player; + return null; + } + + public static Dictionary allPlayersById() + { + Dictionary res = new Dictionary(); + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + res.Add(player.PlayerId, player); + return res; + } + + public static void setSkinWithAnim(PlayerPhysics playerPhysics, uint skinId) { + SkinData nextSkin = DestroyableSingleton.Instance.AllSkins[(int)skinId]; + AnimationClip clip = null; + var spriteAnim = playerPhysics.Skin.animator; + var anim = spriteAnim.m_animator; + var skinLayer = playerPhysics.Skin; + + var currentPhysicsAnim = playerPhysics.Animator.GetCurrentAnimation(); + if (currentPhysicsAnim == playerPhysics.RunAnim) clip = nextSkin.RunAnim; + else if (currentPhysicsAnim == playerPhysics.SpawnAnim) clip = nextSkin.SpawnAnim; + else if (currentPhysicsAnim == playerPhysics.EnterVentAnim) clip = nextSkin.EnterVentAnim; + else if (currentPhysicsAnim == playerPhysics.ExitVentAnim) clip = nextSkin.ExitVentAnim; + else if (currentPhysicsAnim == playerPhysics.IdleAnim) clip = nextSkin.IdleAnim; + else clip = nextSkin.IdleAnim; + + float progress = playerPhysics.Animator.m_animator.GetCurrentAnimatorStateInfo(0).normalizedTime; + skinLayer.skin = nextSkin; + + spriteAnim.Play(clip, 1f); + anim.Play("a", 0, progress % 1); + anim.Update(0f); + } + + public static IEnumerator CoFlashAndDisable(SpriteRenderer renderer, float duration, Color a, Color b) { + float singleDuration = duration / 2; + for (float t = 0f; t < singleDuration; t += Time.deltaTime) { + if (renderer != null) + renderer.color = Color.Lerp(a, b, Mathf.Clamp(t / singleDuration, 0, 1)); + yield return null; + } + for (float t = singleDuration; t > 0f; t -= Time.deltaTime) { + if (renderer != null) + renderer.color = Color.Lerp(a, b, Mathf.Clamp(t / singleDuration, 0, 1)); + yield return null; + } + + if (renderer != null) renderer.enabled = false; + } + + public static IEnumerator Slide2D(Transform target, Vector2 source, Vector2 dest, float duration = 0.75f) + { + Vector3 temp = default(Vector3); + temp.z = target.localPosition.z; + for (float time = 0f; time < duration; time += Time.deltaTime) + { + float num = time / duration; + temp.x = Mathf.SmoothStep(source.x, dest.x, num); + temp.y = Mathf.SmoothStep(source.y, dest.y, num); + target.localPosition = temp; + yield return null; + } + temp.x = dest.x; + temp.y = dest.y; + target.localPosition = temp; + yield break; + } + + public static string colorToHex(Color c) { + return string.Format("[{0:X2}{1:X2}{2:X2}{3:X2}]", (int)c.r, (int)c.g, (int)c.b, (int)c.a); + } + } + + public class SeerInfo { + public Color color; + public string roleName; + public bool isGood; + + public static SeerInfo getSeerInfoForPlayer(PlayerControl p) { + string r = ""; + bool g = true; + Color c = Color.white; + + if (Jester.jester != null && p == Jester.jester) { + r = "Jester"; + c = Jester.color; + g = false; + } + else if (Mayor.mayor != null && p == Mayor.mayor) { + r = "Mayor"; + c = Mayor.color; + } + else if (Engineer.engineer != null && p == Engineer.engineer) { + r = "Engineer"; + c = Engineer.color; + } + else if (Sheriff.sheriff != null && p == Sheriff.sheriff) { + r = "Sheriff"; + c = Sheriff.color; + } + else if (Lighter.lighter != null && p == Lighter.lighter) { + r = "Lighter"; + c = Lighter.color; + } + else if (Godfather.godfather != null && p == Godfather.godfather) { + r = "Godfather"; + c = Godfather.color; + g = false; + } + else if (Mafioso.mafioso != null && p == Mafioso.mafioso) { + r = "Mafioso"; + c = Mafioso.color; + g = false; + } + else if (Janitor.janitor != null && p == Janitor.janitor) { + r = "Janitor"; + c = Janitor.color; + g = false; + } + else if (Morphling.morphling != null && p == Morphling.morphling) { + r = "Morphling"; + c = Morphling.color; + g = false; + } + else if (Camouflager.camouflager != null && p == Camouflager.camouflager) { + r = "Camouflager"; + c = Camouflager.color; + g = false; + } + else if (Detective.detective != null && p == Detective.detective) { + r = "Detective"; + c = Detective.color; + } + else if (TimeMaster.timeMaster != null && p == TimeMaster.timeMaster) { + r = "Time Master"; + c = TimeMaster.color; + } + else if (Medic.medic != null && p == Medic.medic) { + r = "Medic"; + c = Medic.color; + } + else if (Shifter.shifter != null && p == Shifter.shifter) { + r = "Shifter"; + c = Shifter.color; + g = false; + } + else if (Swapper.swapper != null && p == Swapper.swapper) { + r = "Swapper"; + c = Swapper.color; + } + else if (Lovers.lover1 != null && p == Lovers.lover1) { + r = Lovers.lover1.Data.IsImpostor ? "ImpLover" : "Lover"; + c = Lovers.lover1.Data.IsImpostor ? Palette.ImpostorRed : Lovers.color; + g = !Lovers.lover1.Data.IsImpostor; + } + else if (Lovers.lover2 != null && p == Lovers.lover2) { + r = Lovers.lover2.Data.IsImpostor ? "ImpLover" : "Lover"; + c = Lovers.lover2.Data.IsImpostor ? Palette.ImpostorRed : Lovers.color; + g = !Lovers.lover2.Data.IsImpostor; + } + else if (Seer.seer != null && p == Seer.seer) { + r = "Seer"; + c = Seer.color; + } + else if (Spy.spy != null && p == Spy.spy) { + r = "Spy"; + c = Spy.color; + } + else if (Child.child != null && p == Child.child) { + r = "Child"; + c = Child.color; + } + else if (p.Data.IsImpostor) { // Just Impostor + r = "Impostor"; + c = Palette.ImpostorRed; + g = false; + } + else if (!p.Data.IsImpostor) { // Just Crewmate + r = "Crewmate"; + c = Color.white; + } + + SeerInfo result = new SeerInfo(); + result.roleName = r; + result.color = c; + result.isGood = g; + + return result; + } + } +} \ No newline at end of file diff --git a/Source Code/IntroPatch.cs b/Source Code/IntroPatch.cs new file mode 100644 index 0000000..653cae0 --- /dev/null +++ b/Source Code/IntroPatch.cs @@ -0,0 +1,172 @@ +using HarmonyLib; +using System; +using static BonusRoles.BonusRoles; +using UnityEngine; + + +namespace BonusRoles +{ + [HarmonyPatch(typeof(IntroCutscene.CoBegin__d), nameof(IntroCutscene.CoBegin__d.MoveNext))] + class IntroPatch + { + // Intro special teams + static void Prefix(IntroCutscene.CoBegin__d __instance) + { + if (PlayerControl.LocalPlayer == Jester.jester) + { + var jesterTeam = new Il2CppSystem.Collections.Generic.List(); + jesterTeam.Add(PlayerControl.LocalPlayer); + __instance.yourTeam = jesterTeam; + } else if (PlayerControl.LocalPlayer == Shifter.shifter) { + var shifterTeam = new Il2CppSystem.Collections.Generic.List(); + shifterTeam.Add(PlayerControl.LocalPlayer); + __instance.yourTeam = shifterTeam; + } + } + + // Intro display role + static void Postfix(IntroCutscene.CoBegin__d __instance) + { + if (PlayerControl.LocalPlayer == Jester.jester) + { + __instance.__this.Title.Text = "Jester"; + __instance.__this.Title.Color = Jester.color; + __instance.__this.ImpostorText.Text = "Get voted off of the ship to win"; + __instance.__this.BackgroundBar.material.color = Jester.color; + } + else if (PlayerControl.LocalPlayer == Mayor.mayor) + { + __instance.__this.Title.Text = "Mayor"; + __instance.__this.Title.Color = Mayor.color; + __instance.__this.ImpostorText.Text = "Your vote counts twice"; + __instance.__this.BackgroundBar.material.color = Mayor.color; + } + else if (PlayerControl.LocalPlayer == Engineer.engineer) + { + __instance.__this.Title.Text = "Engineer"; + __instance.__this.Title.Color = Engineer.color; + __instance.__this.ImpostorText.Text = "Maintain important systems on the ship"; + __instance.__this.BackgroundBar.material.color = Engineer.color; + } + else if (PlayerControl.LocalPlayer == Godfather.godfather) + { + __instance.__this.ImpostorText.gameObject.SetActive(true); + __instance.__this.Title.Text = "Godfather"; + __instance.__this.Title.Color = Godfather.color; + __instance.__this.ImpostorText.Text = "Kill all crewmates"; + __instance.__this.BackgroundBar.material.color = Godfather.color; + } + else if (PlayerControl.LocalPlayer == Mafioso.mafioso) + { + __instance.__this.ImpostorText.gameObject.SetActive(true); + __instance.__this.Title.Text = "Mafioso"; + __instance.__this.Title.Color = Mafioso.color; + __instance.__this.ImpostorText.Text = "Work with the [FF1919FF]Mafia[FFFFFFFF] to kill the crewmates"; + __instance.__this.BackgroundBar.material.color = Mafioso.color; + } + else if (PlayerControl.LocalPlayer == Janitor.janitor) + { + __instance.__this.ImpostorText.gameObject.SetActive(true); + __instance.__this.Title.Text = "Janitor"; + __instance.__this.Title.Color = Janitor.color; + __instance.__this.ImpostorText.Text = "Work with the [FF1919FF]Mafia[FFFFFFFF] by hiding dead bodies"; + __instance.__this.BackgroundBar.material.color = Janitor.color; + } + else if (PlayerControl.LocalPlayer == Morphling.morphling) + { + __instance.__this.ImpostorText.gameObject.SetActive(true); + __instance.__this.Title.Text = "Morphling"; + __instance.__this.Title.Color = Morphling.color; + __instance.__this.ImpostorText.Text = "Change your look to not get caught"; + __instance.__this.BackgroundBar.material.color = Morphling.color; + } + else if (PlayerControl.LocalPlayer == Camouflager.camouflager) + { + __instance.__this.ImpostorText.gameObject.SetActive(true); + __instance.__this.Title.Text = "Camouflager"; + __instance.__this.Title.Color = Camouflager.color; + __instance.__this.ImpostorText.Text = "Camouflage and kill the crewmates"; + __instance.__this.BackgroundBar.material.color = Camouflager.color; + } + else if (PlayerControl.LocalPlayer == Sheriff.sheriff) + { + __instance.__this.Title.Text = "Sheriff"; + __instance.__this.Title.Color = Sheriff.color; + __instance.__this.ImpostorText.Text = "Shoot the [FF1919FF]Impostors"; + __instance.__this.BackgroundBar.material.color = Sheriff.color; + } + else if (PlayerControl.LocalPlayer == Lighter.lighter) + { + __instance.__this.Title.Text = "Lighter"; + __instance.__this.Title.Color = Lighter.color; + __instance.__this.ImpostorText.Text = "Your light never goes out"; + __instance.__this.BackgroundBar.material.color = Lighter.color; + } + else if (PlayerControl.LocalPlayer == Detective.detective) + { + __instance.__this.Title.Text = "Detective"; + __instance.__this.Title.Color = Detective.color; + __instance.__this.ImpostorText.Text = "Find the [FF1919FF]Impostors[FFFFFFFF] by examining footprints"; + __instance.__this.BackgroundBar.material.color = Detective.color; + } + else if (PlayerControl.LocalPlayer == TimeMaster.timeMaster) + { + __instance.__this.Title.Text = "Time Master"; + __instance.__this.Title.Color = TimeMaster.color; + __instance.__this.ImpostorText.Text = "Rewind time to find the [FF1919FF]Impostors"; + __instance.__this.BackgroundBar.material.color = TimeMaster.color; + } + else if (PlayerControl.LocalPlayer == Medic.medic) + { + __instance.__this.Title.Text = "Medic"; + __instance.__this.Title.Color = Medic.color; + __instance.__this.ImpostorText.Text = "Create a shield to protect a person"; + __instance.__this.BackgroundBar.material.color = Medic.color; + } + else if (PlayerControl.LocalPlayer == Shifter.shifter) + { + __instance.__this.Title.Text = "Shifter"; + __instance.__this.Title.Color = Shifter.color; + __instance.__this.ImpostorText.Text = "Shift your role before the game ends"; + __instance.__this.BackgroundBar.material.color = Shifter.color; + } + else if (PlayerControl.LocalPlayer == Swapper.swapper) + { + __instance.__this.Title.Text = "Swapper"; + __instance.__this.Title.Color = Swapper.color; + __instance.__this.ImpostorText.Text = "Swap votes to exile the [FF1919FF]Impostors"; + __instance.__this.BackgroundBar.material.color = Swapper.color; + } + else if (PlayerControl.LocalPlayer == Lovers.lover1 || PlayerControl.LocalPlayer == Lovers.lover2) + { + PlayerControl otherLover = PlayerControl.LocalPlayer == Lovers.lover1 ? Lovers.lover2 : Lovers.lover1; + __instance.__this.Title.Text = PlayerControl.LocalPlayer.Data.IsImpostor ? "[FF1919FF]Imp[FC03BEFF]Lover" : "Lover"; + __instance.__this.Title.Color = PlayerControl.LocalPlayer.Data.IsImpostor ? Color.white : Lovers.color; + __instance.__this.ImpostorText.Text = "You are in [FC03BEFF]Love [FFFFFFFF] with [FC03BEFF]" + (otherLover?.Data?.PlayerName ?? ""); + __instance.__this.ImpostorText.gameObject.SetActive(true); + __instance.__this.BackgroundBar.material.color = Lovers.color; + } + else if (PlayerControl.LocalPlayer == Seer.seer) + { + __instance.__this.Title.Text = "Seer"; + __instance.__this.Title.Color = Seer.color; + __instance.__this.ImpostorText.Text = "Reveal the intentions of everyone on the ship"; + __instance.__this.BackgroundBar.material.color = Seer.color; + } + else if (PlayerControl.LocalPlayer == Spy.spy) + { + __instance.__this.Title.Text = "Spy"; + __instance.__this.Title.Color = Spy.color; + __instance.__this.ImpostorText.Text = "Spy on everyone to find the [FF1919FF]Impostors"; + __instance.__this.BackgroundBar.material.color = Spy.color; + } + else if (PlayerControl.LocalPlayer == Child.child) + { + __instance.__this.Title.Text = "Child"; + __instance.__this.Title.Color = Child.color; + __instance.__this.ImpostorText.Text = "No one will harm you"; + __instance.__this.BackgroundBar.material.color = Child.color; + } + } + } +} diff --git a/Source Code/Main.cs b/Source Code/Main.cs new file mode 100644 index 0000000..01e1710 --- /dev/null +++ b/Source Code/Main.cs @@ -0,0 +1,133 @@ +using BepInEx; +using BepInEx.Configuration; +using BepInEx.IL2CPP; +using HarmonyLib; +using Hazel; +using Reactor; +using System.Collections.Generic; +using Essentials.Options; +using UnityEngine; +using System.Linq; +using System.Net; +using System.IO; +using System; +using System.Reflection; +using UnhollowerBaseLib; + +namespace BonusRoles +{ + [BepInPlugin(Id)] + [BepInProcess("Among Us.exe")] + [BepInDependency(ReactorPlugin.Id)] + public class BonusRolesPlugin : BasePlugin + { + public const string Id = "me.eisbison.bonusroles"; + public Harmony Harmony { get; } = new Harmony(Id); + + // Role spawn chances + public static CustomNumberOption mafiaSpawnChance = CustomOption.AddNumber("Mafia Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption morphlingSpawnChance = CustomOption.AddNumber("Morphling Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption camouflagerSpawnChance = CustomOption.AddNumber("Camouflager Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption loversSpawnChance = CustomOption.AddNumber("Lovers Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption jesterSpawnChance = CustomOption.AddNumber("Jester Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption mayorSpawnChance = CustomOption.AddNumber("Mayor Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption engineerSpawnChance = CustomOption.AddNumber("Engineer Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption sheriffSpawnChance = CustomOption.AddNumber("Sheriff Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption lighterSpawnChance = CustomOption.AddNumber("Lighter Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption detectiveSpawnChance = CustomOption.AddNumber("Detective Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption timeMasterSpawnChance = CustomOption.AddNumber("Time Master Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption medicSpawnChance = CustomOption.AddNumber("Medic Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption shifterSpawnChance = CustomOption.AddNumber("Shifter Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption swapperSpawnChance = CustomOption.AddNumber("Swapper Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption seerSpawnChance = CustomOption.AddNumber("Seer Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption spySpawnChance = CustomOption.AddNumber("Spy Spawn Chance", 100, 0, 100, 10); + public static CustomNumberOption childSpawnChance = CustomOption.AddNumber("Child Spawn Chance", 100, 0, 100, 10); + + // Role settings + public static CustomNumberOption janitorCooldown = CustomOption.AddNumber("Janitor Cooldown", 30f, 10f, 60f, 2.5f); + public static CustomNumberOption morphlingCooldown = CustomOption.AddNumber("Morphling Cooldown", 30f, 10f, 60f, 2.5f); + public static CustomNumberOption camouflagerCooldown = CustomOption.AddNumber("Camouflager Cooldown", 30f, 10f, 60f, 2.5f); + public static CustomToggleOption loversBothDie = CustomOption.AddToggle("Both Lovers Die", true); + public static CustomNumberOption sheriffCooldown = CustomOption.AddNumber("Sheriff Cooldown", 30f, 10f, 60f, 2.5f); + public static CustomToggleOption jesterCanDieToSheriff = CustomOption.AddToggle("Jester Can Die To Sheriff", false); + public static CustomNumberOption lighterVision = CustomOption.AddNumber("Lighter Vision", 2f, 0.25f, 5f, 0.25f); + public static CustomToggleOption detectiveAnonymousFootprints = CustomOption.AddToggle("Anonymous Footprints", false); + public static CustomNumberOption detectiveFootprintIntervall = CustomOption.AddNumber("Footprint Intervall", 0.5f, 0.25f, 10f, 0.25f); + public static CustomNumberOption detectiveFootprintDuration = CustomOption.AddNumber("Footprint Duration", 5f, 0.25f, 10f, 0.25f); + public static CustomNumberOption timeMasterCooldown = CustomOption.AddNumber("Time Master Cooldown", 30f, 10f, 60f, 2.5f); + public static CustomNumberOption timeMasterRewindTime = CustomOption.AddNumber("Rewind Time", 3f, 1f, 10f, 1f); + public static CustomToggleOption timeMasterReviveDuringRewind = CustomOption.AddToggle("Revive During Rewind", false); + public static CustomNumberOption medicReportNameDuration = CustomOption.AddNumber("Time Where Medic Reports Will Have Name", 10, 0, 60, 2.5f); + public static CustomNumberOption medicReportColorDuration = CustomOption.AddNumber("Time Where Medic Reports Will Have Color Type", 20, 0, 120, 2.5f); + public static CustomStringOption medicShowShielded = CustomOption.AddString("Show Shielded Player", new string[] {"Everyone", "Shielded + Medic", "Medic"}); + public static CustomToggleOption medicShowAttemptToShielded = CustomOption.AddToggle("Shielded Player Sees Murder Attempt", false); + public static CustomNumberOption shifterCooldown = CustomOption.AddNumber("Shifter Cooldown", 30f, 10f, 60f, 2.5f); + public static CustomNumberOption seerCooldown = CustomOption.AddNumber("Seer Cooldown (No Reset After Meeting)", 15f, 30f, 180f, 15f); + public static CustomStringOption seerKindOfInfo = CustomOption.AddString("Info That Seer Reveals", new string[] {"Role", "Good/Bad"}); + public static CustomStringOption seerPlayersWithNotification = CustomOption.AddString("Players That See When They Are Being Revealed", new string[] {"Everyone", "The Good", "The Bad", "Nobody"}); + + public static ConfigEntry Ip { get; set; } + public static ConfigEntry Port { get; set; } + public static ConfigEntry Name { get; private set; } + + public override void Load() + { + Ip = Config.Bind("Custom", "Ipv4 or Hostname", "127.0.0.1"); + Port = Config.Bind("Custom", "Port", (ushort)22023); + Name = Config.Bind("Custom", "Custom", "Custom"); + + var defaultRegions = ServerManager.DefaultRegions.ToList(); + var ip = Ip.Value; + if (Uri.CheckHostName(Ip.Value).ToString() == "Dns") + { + try + { + foreach (IPAddress address in Dns.GetHostAddresses(Ip.Value)) + { + if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) + { + ip = address.ToString(); break; + } + } + } + catch { } + } + + var port = Port.Value; + defaultRegions.Insert(0, new StaticRegionInfo( + Name.Value, (StringNames)3000, ip, new[] + { + new ServerInfo($"CustomServer", ip, Port.Value) + }).Duplicate() + ) ; + ServerManager.DefaultRegions = defaultRegions.ToArray(); + + CustomOption.ShamelessPlug = false; + Harmony.PatchAll(); + } + } + + // Patch server name + [HarmonyPatch(typeof(LanguageUnit),"HOGGPANBLGP")] + public class ServerNamePatch { + public static bool Prefix(StringNames LENBLADGELB, string NNLLKLDPBAI, Il2CppReferenceArray DKBJCINDDCD, ref string __result) + { + if (LENBLADGELB == (StringNames)3000) + { + __result = BonusRolesPlugin.Name.Value; + return false; + } + return true; + } + } + + // Deactivate bans, since I always leave my local testing game and ban myself + [HarmonyPatch(typeof(StatsManager), nameof(StatsManager.AmBanned), MethodType.Getter)] + public static class AmBannedPatch + { + public static void Postfix(out bool __result) + { + __result = false; + } + } +} diff --git a/Source Code/MeetingPatch.cs b/Source Code/MeetingPatch.cs new file mode 100644 index 0000000..f03e676 --- /dev/null +++ b/Source Code/MeetingPatch.cs @@ -0,0 +1,360 @@ +using HarmonyLib; +using Hazel; +using System.Collections.Generic; +using System.Linq; +using UnhollowerBaseLib; +using static BonusRoles.BonusRoles; +using System.Collections; +using System; +using System.Text; +using UnityEngine; + +namespace BonusRoles +{ + [HarmonyPatch(typeof(MeetingHud), "CalculateVotes")] + class MeetingCalculateVotesPatch { + static bool Prefix(MeetingHud __instance, ref Il2CppStructArray __result) + { + Il2CppStructArray array = new Il2CppStructArray(11); + for (int i = 0; i < __instance.playerStates.Length; i++) + { + PlayerVoteArea playerVoteArea = __instance.playerStates[i]; + if (playerVoteArea.didVote) + { + int num = (int)(playerVoteArea.votedFor + 1); + if (num >= 0 && num < array.Length) + { + Il2CppStructArray array2 = array; + int num2 = num; + // Mayor count vote twice + if (Mayor.mayor != null && playerVoteArea.TargetPlayerId == (sbyte)Mayor.mayor.PlayerId) + array2[num2] += 2; + else + array2[num2] += 1; + } + } + } + + // Swapper swap votes + PlayerVoteArea swapped1 = null; + PlayerVoteArea swapped2 = null; + + foreach (PlayerVoteArea playerVoteArea in __instance.playerStates) { + if (playerVoteArea.TargetPlayerId == Swapper.playerId1) swapped1 = playerVoteArea; + if (playerVoteArea.TargetPlayerId == Swapper.playerId2) swapped2 = playerVoteArea; + } + + if (swapped1 != null && swapped2 != null && swapped1.TargetPlayerId + 1 >= 0 && swapped1.TargetPlayerId + 1 < array.Length && swapped2.TargetPlayerId + 1 >= 0 && swapped2.TargetPlayerId + 1 < array.Length) { + byte tmp = array[swapped1.TargetPlayerId + 1]; + array[swapped1.TargetPlayerId + 1] = array[swapped2.TargetPlayerId + 1]; + array[swapped2.TargetPlayerId + 1] = tmp; + } + + __result = array; + return false; + } + } + + [HarmonyPatch(typeof(MeetingHud), nameof(MeetingHud.PopulateResults))] + class MeetingPopulateVotesPatch { + static bool Prefix(MeetingHud __instance, Il2CppStructArray GNKPMAGJLNC) + { + // Swapper swap votes + PlayerVoteArea swapped1 = null; + PlayerVoteArea swapped2 = null; + + foreach (PlayerVoteArea playerVoteArea in __instance.playerStates) { + if (playerVoteArea.TargetPlayerId == Swapper.playerId1) swapped1 = playerVoteArea; + if (playerVoteArea.TargetPlayerId == Swapper.playerId2) swapped2 = playerVoteArea; + } + + bool doSwap = swapped1 != null && swapped2 != null; + if (doSwap) { + Reactor.Coroutines.Start(Helpers.Slide2D(swapped1.transform, swapped1.transform.localPosition, swapped2.transform.localPosition, 2f)); + Reactor.Coroutines.Start(Helpers.Slide2D(swapped2.transform, swapped2.transform.localPosition, swapped1.transform.localPosition, 2f)); + } + + // Mayor display vote twice + __instance.TitleText.Text = DestroyableSingleton.Instance.GetString(StringNames.MeetingVotingResults, new Il2CppReferenceArray(0)); + int num = doSwap ? 4 : 0; // Delay animaton if swapping + for (int i = 0; i < __instance.playerStates.Length; i++) + { + PlayerVoteArea playerVoteArea = __instance.playerStates[i]; + playerVoteArea.ClearForResults(); + int num2 = doSwap ? 4 : 0; // Delay animaton if swapping + bool mayorFirstVoteDisplayed = false; + + for (int j = 0; j < __instance.playerStates.Length; j++) + { + PlayerVoteArea playerVoteArea2 = __instance.playerStates[j]; + byte self = GNKPMAGJLNC[(int)playerVoteArea2.TargetPlayerId]; + + if (!((self & 128) > 0)) + { + GameData.PlayerInfo playerById = GameData.Instance.GetPlayerById((byte)playerVoteArea2.TargetPlayerId); + int votedFor = (int)PlayerVoteArea.GetVotedFor(self); + if (votedFor == (int)playerVoteArea.TargetPlayerId) + { + SpriteRenderer spriteRenderer = UnityEngine.Object.Instantiate(__instance.PlayerVotePrefab); + if (PlayerControl.GameOptions.AnonymousVotes) + { + PlayerControl.SetPlayerMaterialColors(Palette.DisabledGrey, spriteRenderer); + } + else + { + PlayerControl.SetPlayerMaterialColors((int)playerById.ColorId, spriteRenderer); + } + spriteRenderer.transform.SetParent(playerVoteArea.transform); + spriteRenderer.transform.localPosition = __instance.CounterOrigin + new Vector3(__instance.CounterOffsets.x * (float)num2, 0f, 0f); + spriteRenderer.transform.localScale = Vector3.zero; + spriteRenderer.transform.SetParent(playerVoteArea.transform.parent); // Reparent votes so they don't move with their playerVoteArea + __instance.StartCoroutine(Effects.Bloop((float)num2 * 0.5f, spriteRenderer.transform, 1f, 0.5f)); + num2++; + } + else if (i == 0 && votedFor == -1) + { + SpriteRenderer spriteRenderer2 = UnityEngine.Object.Instantiate(__instance.PlayerVotePrefab); + if (PlayerControl.GameOptions.AnonymousVotes) + { + PlayerControl.SetPlayerMaterialColors(Palette.DisabledGrey, spriteRenderer2); + } + else + { + PlayerControl.SetPlayerMaterialColors((int)playerById.ColorId, spriteRenderer2); + } + spriteRenderer2.transform.SetParent(__instance.SkippedVoting.transform); + spriteRenderer2.transform.localPosition = __instance.CounterOrigin + new Vector3(__instance.CounterOffsets.x * (float)num, 0f, 0f); + spriteRenderer2.transform.localScale = Vector3.zero; + spriteRenderer2.transform.SetParent(playerVoteArea.transform.parent); // Reparent votes so they don't move with their playerVoteArea + __instance.StartCoroutine(Effects.Bloop((float)num * 0.5f, spriteRenderer2.transform, 1f, 0.5f)); + num++; + } + + // Major vote, redo this iteration to place a second vote + if (Mayor.mayor != null && playerVoteArea2.TargetPlayerId == (sbyte)Mayor.mayor.PlayerId && !mayorFirstVoteDisplayed) { + mayorFirstVoteDisplayed = true; + j--; + } + } + } + } + + return false; + } + } + + + [HarmonyPatch] + class MeetingHudPopulateButtonsPatch { + static bool[] selections; + static SpriteRenderer[] renderers; + + [HarmonyPatch(typeof(MeetingHud), nameof(MeetingHud.VotingComplete))] + class MeetingHudVotingCompletedPatch { + static void Postfix(MeetingHud __instance, byte[] GNKPMAGJLNC, GameData.PlayerInfo IHDMFDEEDEL, bool DCHFIBODGIL) + { + // Reset swapper values + Swapper.playerId1 = Byte.MaxValue; + Swapper.playerId2 = Byte.MaxValue; + + // Lovers save next to be exiled, because RPC of ending game comes before RPC of exiled + Lovers.notAckedExiledIsLover = ((Lovers.lover1 != null && Lovers.lover1.PlayerId == IHDMFDEEDEL.PlayerId) || (Lovers.lover2 != null && Lovers.lover2.PlayerId == IHDMFDEEDEL.PlayerId)); + } + } + + + static void onClick(int i, MeetingHud __instance) + { + if (__instance.state == MeetingHud.VoteStates.Results) return; + if (__instance.playerStates[i].isDead) return; + + int selectedCount = selections.Where(b => b).Count(); + SpriteRenderer renderer = renderers[i]; + + if (selectedCount == 0) { + renderer.color = Color.green; + selections[i] = true; + } else if (selectedCount == 1) { + if (selections[i]) { + renderer.color = Color.red; + selections[i] = false; + } else { + selections[i] = true; + renderer.color = Color.green; + + PlayerVoteArea firstPlayer = null; + PlayerVoteArea secondPlayer = null; + for (int A = 0; A < selections.Length; A++) { + if (selections[A]) { + if (firstPlayer != null) { + secondPlayer = __instance.playerStates[A]; + break; + } else { + firstPlayer = __instance.playerStates[A]; + } + } + } + + if (firstPlayer != null && secondPlayer != null) { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.SwapperSwap, Hazel.SendOption.None, -1); + writer.Write((byte)firstPlayer.TargetPlayerId); + writer.Write((byte)secondPlayer.TargetPlayerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + + RPCProcedure.swapperSwap((byte)firstPlayer.TargetPlayerId, (byte)secondPlayer.TargetPlayerId); + } + } + } + } + + static void addSwapperSwapButtons(MeetingHud __instance) { + if (Swapper.swapper == null || PlayerControl.LocalPlayer != Swapper.swapper || Swapper.swapper.Data.IsDead) return; + + selections = new bool[__instance.playerStates.Length]; + renderers = new SpriteRenderer[__instance.playerStates.Length]; + + for (int i = 0; i < __instance.playerStates.Length; i++) + { + PlayerVoteArea playerVoteArea = __instance.playerStates[i]; + GameObject template = playerVoteArea.Buttons.transform.Find("CancelButton").gameObject; + GameObject checkbox = UnityEngine.Object.Instantiate(template); + checkbox.transform.SetParent(playerVoteArea.transform); + checkbox.transform.position = template.transform.position; + checkbox.transform.localPosition = new Vector3(0f, 0.03f, template.transform.localPosition.z); + SpriteRenderer renderer = checkbox.GetComponent(); + renderer.sprite = Swapper.getCheckSprite(); + renderer.color = Color.red; + + PassiveButton button = checkbox.GetComponent(); + button.OnClick.RemoveAllListeners(); + int copiedIndex = i; + button.OnClick.AddListener((UnityEngine.Events.UnityAction)(() => onClick(copiedIndex, __instance))); + + + + selections[i] = false; + renderers[i] = renderer; + } + } + + [HarmonyPatch(typeof(MeetingHud), nameof(MeetingHud.ServerStart))] + class MeetingServerStartPatch { + static void Postfix(MeetingHud __instance) + { + // Add swapper buttons + addSwapperSwapButtons(__instance); + } + } + + [HarmonyPatch(typeof(MeetingHud), nameof(MeetingHud.Deserialize))] + class MeetingDeserializePatch { + static void Postfix(MeetingHud __instance, MessageReader HFPCBBHJIPJ, bool CHDIOBMNLGH) + { + // Add swapper buttons + if (CHDIOBMNLGH) { + addSwapperSwapButtons(__instance); + } + } + } + } + + [HarmonyPatch(typeof(UnityEngine.Object), nameof(UnityEngine.Object.Destroy), new Type[] { typeof(UnityEngine.Object) })] + class MeetingExiledEndPatch + { + static void Prefix(UnityEngine.Object obj) + { + if (ExileController.Instance != null && obj == ExileController.Instance.gameObject) + { + // Reset custom button timers where necessary + CustomButton.MeetingEndedUpdate(); + + // Jester win condition + if (Jester.jester != null && ExileController.Instance.exiled != null && ExileController.Instance.exiled.PlayerId == Jester.jester.PlayerId) + { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.JesterWin, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(writer); + + RPCProcedure.jesterWin(); + } + + // Child win condition + if (Child.child != null && ExileController.Instance.exiled != null && ExileController.Instance.exiled.PlayerId == Child.child.PlayerId) { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ChildDied, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.childDied(); + } + } + } + } + + [HarmonyPatch(typeof(TranslationController), nameof(TranslationController.GetString), new Type[] { typeof(StringNames), typeof(Il2CppReferenceArray) })] + class MeetingExiledTextPatch + { + static void Postfix(ref string __result, StringNames DKEHCKOHMOH, Il2CppReferenceArray DKBJCINDDCD) + { + if (ExileController.Instance != null && ExileController.Instance.exiled != null) + { + // Exile role text for roles that are being assigned to crewmates + if (DKEHCKOHMOH == StringNames.ExileTextPN || DKEHCKOHMOH == StringNames.ExileTextSN) + { + if( Jester.jester != null && ExileController.Instance.exiled.Object.PlayerId == Jester.jester.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Jester."; + else if(Mayor.mayor != null && ExileController.Instance.exiled.Object.PlayerId == Mayor.mayor.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Mayor."; + else if(Engineer.engineer != null && ExileController.Instance.exiled.Object.PlayerId == Engineer.engineer.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Engineer."; + else if(Sheriff.sheriff != null && ExileController.Instance.exiled.Object.PlayerId == Sheriff.sheriff.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Sheriff."; + else if(Lighter.lighter != null && ExileController.Instance.exiled.Object.PlayerId == Lighter.lighter.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Lighter."; + else if(Detective.detective != null && ExileController.Instance.exiled.Object.PlayerId == Detective.detective.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Detective."; + else if(TimeMaster.timeMaster != null && ExileController.Instance.exiled.Object.PlayerId == TimeMaster.timeMaster.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Time Master."; + else if(Medic.medic != null && ExileController.Instance.exiled.Object.PlayerId == Medic.medic.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Medic."; + else if(Shifter.shifter != null && ExileController.Instance.exiled.Object.PlayerId == Shifter.shifter.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Shifter."; + else if(Swapper.swapper != null && ExileController.Instance.exiled.Object.PlayerId == Swapper.swapper.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Swapper."; + else if(Lovers.lover1 != null && ExileController.Instance.exiled.Object.PlayerId == Lovers.lover1.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Lover."; + else if(Lovers.lover2 != null && ExileController.Instance.exiled.Object.PlayerId == Lovers.lover2.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Lover."; + else if(Seer.seer != null && ExileController.Instance.exiled.Object.PlayerId == Seer.seer.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Seer."; + else if(Spy.spy != null && ExileController.Instance.exiled.Object.PlayerId == Spy.spy.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Spy."; + else if(Child.child != null && ExileController.Instance.exiled.Object.PlayerId == Child.child.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Child."; + else + __result = ExileController.Instance.exiled.PlayerName + " was not The Impostor."; + } + // Exile role text for roles that are being assigned to impostors + if (DKEHCKOHMOH == StringNames.ExileTextPP || DKEHCKOHMOH == StringNames.ExileTextSP) { + if(Godfather.godfather != null && ExileController.Instance.exiled.Object.PlayerId == Godfather.godfather.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Godfather."; + else if(Mafioso.mafioso != null && ExileController.Instance.exiled.Object.PlayerId == Mafioso.mafioso.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Mafioso."; + else if(Janitor.janitor != null && ExileController.Instance.exiled.Object.PlayerId == Janitor.janitor.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Janitor."; + else if(Morphling.morphling != null && ExileController.Instance.exiled.Object.PlayerId == Morphling.morphling.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Morphling."; + else if(Camouflager.camouflager != null && ExileController.Instance.exiled.Object.PlayerId == Camouflager.camouflager.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The Camouflager."; + else if(Lovers.lover1 != null && ExileController.Instance.exiled.Object.PlayerId == Lovers.lover1.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The ImpLover."; + else if(Lovers.lover2 != null && ExileController.Instance.exiled.Object.PlayerId == Lovers.lover2.PlayerId) + __result = ExileController.Instance.exiled.PlayerName + " was The ImpLover."; + } + + // Hide number of remaining impostors on Jester win + if (DKEHCKOHMOH == StringNames.ImpostorsRemainP || DKEHCKOHMOH == StringNames.ImpostorsRemainS) + { + if (Jester.jester != null && ExileController.Instance.exiled.Object.PlayerId == Jester.jester.PlayerId) + __result = ""; + } + } + } + } +} \ No newline at end of file diff --git a/Source Code/PlayerControlPatch.cs b/Source Code/PlayerControlPatch.cs new file mode 100644 index 0000000..5382fcf --- /dev/null +++ b/Source Code/PlayerControlPatch.cs @@ -0,0 +1,289 @@ +using HarmonyLib; +using Hazel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static BonusRoles.BonusRoles; +using static BonusRoles.GameHistory; +using UnityEngine; + +namespace BonusRoles { + [HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.FixedUpdate))] + public static class PlayerControlFixedUpdatePatch + { + public static void bendTimeUpdate() { + if (TimeMaster.isRewinding) { + if (localPlayerPositions.Count > 0) { + // Set position + var next = localPlayerPositions[0]; + PlayerControl.LocalPlayer.transform.position = next.Item1; + localPlayerPositions.RemoveAt(0); + if (localPlayerPositions.Count > 0) localPlayerPositions.RemoveAt(0); // Skip every second position to rewinde in half the time + + // Try reviving LOCAL player + if (TimeMaster.reviveDuringRewind && PlayerControl.LocalPlayer.Data.IsDead) { + DeadPlayer deadPlayer = deadPlayers.Where(x => x.player == PlayerControl.LocalPlayer).FirstOrDefault(); + if (deadPlayer != null && next.Item2 < deadPlayer.timeOfDeath) { + MessageWriter write = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte) CustomRPC.TimeMasterRevive, SendOption.None, -1); + write.Write(PlayerControl.LocalPlayer.PlayerId); + AmongUsClient.Instance.FinishRpcImmediately(write); + RPCProcedure.timeMasterRevive(PlayerControl.LocalPlayer.PlayerId); + } + } + } else { + TimeMaster.isRewinding = false; + PlayerControl.LocalPlayer.moveable = true; + HudManager.Instance.FullScreen.enabled = false; + } + } else { + while (localPlayerPositions.Count >= Mathf.Round(TimeMaster.rewindTime / Time.fixedDeltaTime)) localPlayerPositions.RemoveAt(localPlayerPositions.Count - 1); + localPlayerPositions.Insert(0, new Tuple(PlayerControl.LocalPlayer.transform.position, DateTime.UtcNow)); + } + } + + static PlayerControl setAnyRoleTarget() { + PlayerControl result = null; + float num = GameOptionsData.KillDistances[Mathf.Clamp(PlayerControl.GameOptions.KillDistance, 0, 2)]; + if (!ShipStatus.Instance) return result; + + Vector2 truePosition = PlayerControl.LocalPlayer.GetTruePosition(); + Il2CppSystem.Collections.Generic.List allPlayers = GameData.Instance.AllPlayers; + for (int i = 0; i < allPlayers.Count; i++) + { + GameData.PlayerInfo playerInfo = allPlayers[i]; + if (!playerInfo.Disconnected && playerInfo.PlayerId != PlayerControl.LocalPlayer.PlayerId && !playerInfo.IsDead) + { + PlayerControl @object = playerInfo.Object; + if (@object && !@object.inVent) + { + Vector2 vector = @object.GetTruePosition() - truePosition; + float magnitude = vector.magnitude; + if (magnitude <= num && !PhysicsHelpers.AnyNonTriggersBetween(truePosition, vector.normalized, magnitude, Constants.ShipAndObjectsMask)) + { + result = @object; + num = magnitude; + } + } + } + } + return result; + } + + static void medicSetTarget() { + if (Medic.medic == null || Medic.medic != PlayerControl.LocalPlayer) return; + Medic.currentTarget = setAnyRoleTarget(); + } + + static void shifterSetTarget() { + if (Shifter.shifter == null || Shifter.shifter != PlayerControl.LocalPlayer) return; + Shifter.currentTarget = setAnyRoleTarget(); + } + + + static void morphlingSetTarget() { + if (Morphling.morphling == null || Morphling.morphling != PlayerControl.LocalPlayer) return; + Morphling.currentTarget = setAnyRoleTarget(); + } + + static void sheriffSetTarget() { + if (Sheriff.sheriff == null || Sheriff.sheriff != PlayerControl.LocalPlayer) return; + Sheriff.currentTarget = setAnyRoleTarget(); + } + + static void seerSetTarget() { + if (Seer.seer == null || Seer.seer != PlayerControl.LocalPlayer) return; + Seer.currentTarget = setAnyRoleTarget(); + if (Seer.currentTarget != null && Seer.revealedPlayers.Any(p => p.Data.PlayerId == Seer.currentTarget.Data.PlayerId)) Seer.currentTarget = null; // Remove target if already revealed + + } + + static void detectiveSetFootPrints() { + if (Detective.detective == null || Detective.detective != PlayerControl.LocalPlayer) return; + + Detective.timer -= Time.fixedDeltaTime; + if (Detective.timer <= 0f) { + Detective.timer = Detective.footprintIntervall; + foreach (PlayerControl player in PlayerControl.AllPlayerControls) { + if (player != null && player != PlayerControl.LocalPlayer && !player.Data.IsDead) { + new Footprint(Detective.footprintDuration, Detective.anonymousFootprints, player); + } + } + } + + } + + public static void Postfix(PlayerControl __instance) { + if (AmongUsClient.Instance.GameState != InnerNet.InnerNetClient.GameStates.Started) return; + + if (PlayerControl.LocalPlayer == __instance) { + // Time Master + bendTimeUpdate(); + // Morphling + morphlingSetTarget(); + // Medic + medicSetTarget(); + // Shifter + shifterSetTarget(); + // Sheriff + sheriffSetTarget(); + // Seer + seerSetTarget(); + // Detective + detectiveSetFootPrints(); + } + } + } + + [HarmonyPatch(typeof(KillButtonManager), nameof(KillButtonManager.PerformKill))] + class PerformKillPatch + { + public static bool Prefix(KillButtonManager __instance) { + // Block imposter shielded kill + if (__instance.isActiveAndEnabled && __instance.CurrentTarget && !__instance.isCoolingDown && !PlayerControl.LocalPlayer.Data.IsDead && PlayerControl.LocalPlayer.CanMove) { + if (Medic.shielded != null && Medic.shielded == __instance.CurrentTarget) { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ShieldedMurderAttempt, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.shieldedMurderAttempt(); + return false; + } + } + return true; + } + } + + [HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.LocalPlayer.CmdReportDeadBody))] + class BodyReportPatch + { + static void Postfix(PlayerControl __instance, GameData.PlayerInfo PAIBDFDMIGK) + { + // Medic report + if (Medic.medic != null && Medic.medic == PlayerControl.LocalPlayer && __instance.PlayerId == Medic.medic.PlayerId) + { + DeadPlayer deadPlayer = deadPlayers?.Where(x => x.player?.PlayerId == PAIBDFDMIGK?.PlayerId)?.FirstOrDefault(); + + if (deadPlayer != null && deadPlayer.killerIfExisting != null) { + float timeSinceDeath = ((float)(DateTime.UtcNow - deadPlayer.timeOfDeath).TotalMilliseconds); + string msg = ""; + + if (timeSinceDeath < Medic.reportNameDuration * 1000) { + msg = $"Body Report: The killer appears to be {deadPlayer.killerIfExisting.name}! (Killed {Math.Round(timeSinceDeath / 1000)}s ago)"; + } else if (timeSinceDeath < Medic.reportColorDuration * 1000) { + var colors = new Dictionary() { + {0, "darker"}, + {1, "darker"}, + {2, "darker"}, + {3, "lighter"}, + {4, "lighter"}, + {5, "lighter"}, + {6, "darker"}, + {7, "lighter"}, + {8, "darker"}, + {9, "darker"}, + {10, "lighter"}, + {11, "lighter"}, + }; + var typeOfColor = colors[deadPlayer.killerIfExisting.Data.ColorId] ?? "unknown"; + msg = $"Body Report: The killer appears to be a {typeOfColor} color. (Killed {Math.Round(timeSinceDeath / 1000)}s ago)"; + } else { + msg = $"Body Report: The corpse is too old to gain information from. (Killed {Math.Round(timeSinceDeath / 1000)}s ago)"; + } + + if (!string.IsNullOrWhiteSpace(msg)) + { + if (AmongUsClient.Instance.AmClient && DestroyableSingleton.Instance) + { + DestroyableSingleton.Instance.Chat.AddChat(PlayerControl.LocalPlayer, msg); + } + if (msg.IndexOf("who", StringComparison.OrdinalIgnoreCase) >= 0) + { + DestroyableSingleton.Instance.SendWho(); + } + } + } + } + } + } + + [HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.MurderPlayer))] + public static class MurderPlayerPatch + { + public static void Prefix(PlayerControl __instance, PlayerControl PAIBDFDMIGK, out bool __state) + { + // __state denotes if the player performing the murder needs to be reset to crewmate + __state = false; + + // Allow Sheriff to kill "as crewmate" by assigning the impostor role + if (Sheriff.sheriff != null && __instance == Sheriff.sheriff) { + __instance.Data.IsImpostor = true; + __state = true; + } + // Allow Shifter to suicide + else if (Shifter.shifter != null && __instance == Shifter.shifter) { + __instance.Data.IsImpostor = true; + __state = true; + } + // Allow Lover which is no impostor to suicide + else if ((Lovers.lover1 != null && __instance == Lovers.lover1) || (Lovers.lover2 != null && __instance == Lovers.lover2)) { + if (!__instance.Data.IsImpostor) { + __instance.Data.IsImpostor = true; + __state = true; + } + } + } + + public static void Postfix(PlayerControl __instance, PlayerControl PAIBDFDMIGK, bool __state) + { + // Collect dead player info + DeadPlayer deadPlayer = new DeadPlayer(PAIBDFDMIGK, DateTime.UtcNow, DeathReason.Kill, __instance); + GameHistory.deadPlayers.Add(deadPlayer); + + // Reset killer to crewmate if __state + if (__state) __instance.Data.IsImpostor = false; + + // Lover suicide trigger on murder + if ((Lovers.lover1 != null && PAIBDFDMIGK == Lovers.lover1) || (Lovers.lover2 != null && PAIBDFDMIGK == Lovers.lover2)) { + PlayerControl otherLover = PAIBDFDMIGK == Lovers.lover1 ? Lovers.lover2 : Lovers.lover1; + if (PlayerControl.LocalPlayer == PAIBDFDMIGK && otherLover != null && !otherLover.Data.IsDead && Lovers.bothDie) { // Only the dead lover sends the rpc + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.LoverSuicide, Hazel.SendOption.None, -1); + writer.Write(otherLover.PlayerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.loverSuicide(otherLover.PlayerId); + } + } + + // Child died + if (Child.child != null && PAIBDFDMIGK == Child.child) { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ChildDied, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.childDied(); + } + } + } + + + + [HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.Exiled))] + public static class ExilePlayerPatch + { + public static void Postfix(PlayerControl __instance) + { + // Collect dead player info + DeadPlayer deadPlayer = new DeadPlayer(__instance, DateTime.UtcNow, DeathReason.Exile, null); + GameHistory.deadPlayers.Add(deadPlayer); + + // Lover suicide trigger on exile + if ((Lovers.lover1 != null && __instance == Lovers.lover1) || (Lovers.lover2 != null && __instance == Lovers.lover2)) { + PlayerControl otherLover = __instance == Lovers.lover1 ? Lovers.lover2 : Lovers.lover1; + if (PlayerControl.LocalPlayer == __instance && otherLover != null && !otherLover.Data.IsDead && Lovers.bothDie) { // Only the dead lover sends the rpc + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.LoverSuicide, Hazel.SendOption.None, -1); + writer.Write(otherLover.PlayerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.loverSuicide(otherLover.PlayerId); + } + } + + } + } +} diff --git a/Source Code/RPC.cs b/Source Code/RPC.cs new file mode 100644 index 0000000..ae51dad --- /dev/null +++ b/Source Code/RPC.cs @@ -0,0 +1,462 @@ +using HarmonyLib; +using Hazel; +using static BonusRoles.BonusRoles; +using static BonusRoles.HudManagerStartPatch; +using static BonusRoles.GameHistory; +using System.Collections.Generic; +using System.Collections; +using System.Linq; +using UnityEngine; + +namespace BonusRoles +{ + enum RoleId { + Jester = 0, + Mayor = 1, + Engineer = 2, + Sheriff = 3, + Lighter = 4, + Godfather = 5, + Mafioso = 6, + Janitor = 7, + Detective = 8, + TimeMaster = 9, + Medic = 10, + Shifter = 11, + Swapper = 12, + Lover1 = 13, + Lover2 = 14, + Seer = 15, + Morphling = 16, + Camouflager = 17, + Spy = 18, + Child = 19, + } + + enum CustomRPC + { + // Main Controls + + ResetVaribles = 50, + ForceEnd = 51, + SetRole = 52, + + // Role functionality + + JesterWin = 80, + EngineerFixLights = 81, + EngineerUsedRepair = 82, + JanitorClean = 83, + SheriffKill = 84, + TimeMasterRewindTime = 85, + MedicSetShielded = 86, + ShieldedMurderAttempt = 87, + TimeMasterRevive = 88, + ShifterShift = 89, + SwapperSwap = 90, + SeerReveal = 91, + MorphlingMorph = 92, + CamouflagerCamouflage = 93, + ChildDied = 94, + LoverSuicide = 95, + } + + public static class RPCProcedure { + + // Main Controls + + public static void resetVariables() { + clearAndReloadRoles(); + clearGameHistory(); + setCustomButtonCooldowns(); + } + + public static void forceEnd() { + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + { + if (!player.Data.IsImpostor) + { + player.RemoveInfected(); + player.Die(DeathReason.Exile); + player.Data.IsDead = true; + } + } + } + + public static void setRole(byte roleId, byte playerId) { + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + if (player.PlayerId == playerId) { + switch((RoleId)roleId) { + case RoleId.Jester: + Jester.jester = player; + break; + case RoleId.Mayor: + Mayor.mayor = player; + break; + case RoleId.Engineer: + Engineer.engineer = player; + break; + case RoleId.Sheriff: + Sheriff.sheriff = player; + break; + case RoleId.Lighter: + Lighter.lighter = player; + break; + case RoleId.Godfather: + Godfather.godfather = player; + break; + case RoleId.Mafioso: + Mafioso.mafioso = player; + break; + case RoleId.Janitor: + Janitor.janitor = player; + break; + case RoleId.Detective: + Detective.detective = player; + break; + case RoleId.TimeMaster: + TimeMaster.timeMaster = player; + break; + case RoleId.Medic: + Medic.medic = player; + break; + case RoleId.Shifter: + Shifter.shifter = player; + break; + case RoleId.Swapper: + Swapper.swapper = player; + break; + case RoleId.Lover1: + Lovers.lover1 = player; + break; + case RoleId.Lover2: + Lovers.lover2 = player; + break; + case RoleId.Seer: + Seer.seer = player; + break; + case RoleId.Morphling: + Morphling.morphling = player; + break; + case RoleId.Camouflager: + Camouflager.camouflager = player; + break; + case RoleId.Spy: + Spy.spy = player; + break; + case RoleId.Child: + Child.child = player; + break; + } + } + } + + // Role functionality + + public static void jesterWin() { + Jester.jester.Revive(); + Jester.jester.Data.IsDead = false; + Jester.jester.Data.IsImpostor = true; + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + { + if (player != Jester.jester) + { + player.RemoveInfected(); + player.Die(DeathReason.Exile); + player.Data.IsDead = true; + player.Data.IsImpostor = false; + } + } + } + + public static void engineerFixLights() { + SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast(); + switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; + } + + public static void engineerUsedRepair() { + Engineer.usedRepair = true; + } + + public static void janitorClean(byte playerId) { + DeadBody[] array = Object.FindObjectsOfType(); + for (int i = 0; i < array.Length; i++) { + if (GameData.Instance.GetPlayerById(array[i].ParentId).PlayerId == playerId) + Object.Destroy(array[i].gameObject); + } + } + + public static void sheriffKill(byte targetId) { + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + { + if (player.PlayerId == targetId) + { + Sheriff.sheriff.MurderPlayer(player); + return; + } + } + } + + public static void timeMasterRewindTime() { + TimeMaster.isRewinding = true; + if (MapBehaviour.Instance) + MapBehaviour.Instance.Close(); + if (Minigame.Instance) + Minigame.Instance.ForceClose(); + PlayerControl.LocalPlayer.moveable = false; + HudManager.Instance.FullScreen.color = new Color(0f, 0.5f, 0.8f, 0.3f); + HudManager.Instance.FullScreen.enabled = true; + } + + public static void medicSetShielded(byte shieldedId) { + Medic.usedShield = true; + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + if (player.PlayerId == shieldedId) + Medic.shielded = player; + } + + public static void shieldedMurderAttempt() { + if (Medic.shielded != null && Medic.shielded == PlayerControl.LocalPlayer && Medic.showAttemptToShielded && HudManager.Instance?.FullScreen != null) { + Color c = Palette.ImpostorRed; + HudManager.Instance.FullScreen.enabled = true; + Reactor.Coroutines.Start(Helpers.CoFlashAndDisable( + HudManager.Instance.FullScreen, + 0.5f, + new Color(c.r, c.g, c.b, 0f), + new Color(c.r, c.g, c.b, 0.75f) + )); + } + } + + public static void timeMasterRevive(byte playerId) { + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + if (player.PlayerId == playerId) { + player.Revive(); + var body = UnityEngine.Object.FindObjectsOfType().FirstOrDefault(b => b.ParentId == playerId); + DeadPlayer deadPlayerEntry = deadPlayers.Where(x => x.player.PlayerId == playerId).FirstOrDefault(); + if (body != null) UnityEngine.Object.Destroy(body.gameObject); + if (deadPlayerEntry != null) deadPlayers.Remove(deadPlayerEntry); + } + } + + public static void shifterShift(byte targetId) { + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + { + if (player.PlayerId == targetId && Shifter.shifter != null) + { + // Suicide when impostor or impostor variants + if (player.Data.IsImpostor) { + Shifter.shifter.MurderPlayer(Shifter.shifter); + return; + } + + PlayerControl oldShifter = Shifter.shifter; + // Switch tasks + var shifterSabotageTasks = oldShifter.myTasks; + oldShifter.myTasks = player.myTasks; + player.myTasks = shifterSabotageTasks; + + // Switch shield + if (Medic.shielded != null && Medic.shielded == player) { + Medic.shielded.myRend.material.SetFloat("_Outline", 0f); + Medic.shielded = oldShifter; + } else if (Medic.shielded != null && Medic.shielded == oldShifter) { + Medic.shielded.myRend.material.SetFloat("_Outline", 0f); + Medic.shielded = player; + } + + // Shift role + if (Jester.jester != null && Jester.jester == player) { + Jester.jester = oldShifter; + } else if (Mayor.mayor != null && Mayor.mayor == player) { + Mayor.mayor = oldShifter; + } else if (Engineer.engineer != null && Engineer.engineer == player) { + Engineer.engineer = oldShifter; + } else if (Sheriff.sheriff != null && Sheriff.sheriff == player) { + Sheriff.sheriff = oldShifter; + } else if (Lighter.lighter != null && Lighter.lighter == player) { + Lighter.lighter = oldShifter; + } else if (Detective.detective != null && Detective.detective == player) { + Detective.detective = oldShifter; + } else if (TimeMaster.timeMaster != null && TimeMaster.timeMaster == player) { + TimeMaster.timeMaster = oldShifter; + } else if (Medic.medic != null && Medic.medic == player) { + Medic.medic = oldShifter; + } else if (Swapper.swapper != null && Swapper.swapper == player) { + Swapper.swapper = oldShifter; + } else if (Lovers.lover1 != null && Lovers.lover1 == player) { + Lovers.lover1 = oldShifter; + } else if (Lovers.lover2 != null && Lovers.lover2 == player) { + Lovers.lover2 = oldShifter; + } else if (Seer.seer != null && Seer.seer == player) { + Seer.seer = oldShifter; + } else if (Spy.spy != null && Spy.spy == player) { + Spy.spy = oldShifter; + } else if (Child.child != null && Child.child == player) { + Child.child = oldShifter; + } else { // Crewmate + } + + Shifter.shifter = player; + + // Set cooldowns to max for both players + if (PlayerControl.LocalPlayer == Shifter.shifter || PlayerControl.LocalPlayer == oldShifter) + CustomButton.ResetAllCooldowns(); + } + } + } + + public static void swapperSwap(byte playerId1, byte playerId2) { + if (MeetingHud.Instance) { + Swapper.playerId1 = playerId1; + Swapper.playerId2 = playerId2; + } + } + + public static void seerReveal(byte playerId) { + if (Seer.seer == null) return; + + PlayerControl player = Helpers.playerById(playerId); + if (player != null && !Seer.revealedPlayers.Any(p => p.Data.PlayerId == playerId)) { + Seer.revealedPlayers.Add(player); + + if (PlayerControl.LocalPlayer == player && HudManager.Instance?.FullScreen != null) { + SeerInfo si = SeerInfo.getSeerInfoForPlayer(player); + bool showNotification = false; + if (Seer.playersWithNotification == 0 ) showNotification = true; + else if (Seer.playersWithNotification == 1 && si.isGood) showNotification = true; + else if (Seer.playersWithNotification == 2 && !si.isGood) showNotification = true; + else if (Seer.playersWithNotification == 3) showNotification = false; + + if (showNotification) { + HudManager.Instance.FullScreen.enabled = true; + Reactor.Coroutines.Start(Helpers.CoFlashAndDisable( + HudManager.Instance.FullScreen, + 0.5f, + new Color(42f / 255f, 187f / 255f, 245f / 255f, 0f), + new Color(42f / 255f, 187f / 255f, 245f / 255f, 0.75f) + )); + } + } + } + } + + public static void morphlingMorph(byte playerId) { + PlayerControl target = Helpers.playerById(playerId); + if (Morphling.morphling == null || target == null) return; + + Morphling.morphTimer = 10f; + Morphling.morphTarget = target; + } + + public static void camouflagerCamouflage() { + if (Camouflager.camouflager == null) return; + + Camouflager.camouflageTimer = 10f; + } + + public static void childDied() { + Child.child.Revive(); + Child.child.Data.IsDead = false; + Child.child.Data.IsImpostor = true; + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + { + if (player != null && player != Child.child) + { + player.RemoveInfected(); + player.Die(DeathReason.Exile); + player.Data.IsDead = true; + player.Data.IsImpostor = false; + } + } + } + + public static void loverSuicide(byte remainingLoverId) { + if (Lovers.lover1 != null && !Lovers.lover1.Data.IsDead && Lovers.lover1.PlayerId == remainingLoverId) { + Lovers.lover1.MurderPlayer(Lovers.lover1); + } else if (Lovers.lover2 != null && !Lovers.lover2.Data.IsDead && Lovers.lover2.PlayerId == remainingLoverId) { + Lovers.lover2.MurderPlayer(Lovers.lover2); + } + } + } + + [HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.HandleRpc))] + class RPCHandlerPatch + { + static void Postfix(byte ACCJCEHMKLN, MessageReader HFPCBBHJIPJ) + { + byte packetId = ACCJCEHMKLN; + MessageReader reader = HFPCBBHJIPJ; + switch (packetId) { + + // Main Controls + + case (byte)CustomRPC.ResetVaribles: + RPCProcedure.resetVariables(); + break; + case (byte)CustomRPC.ForceEnd: + RPCProcedure.forceEnd(); + break; + case (byte)CustomRPC.SetRole: + byte roleId = HFPCBBHJIPJ.ReadByte(); + byte playerId = HFPCBBHJIPJ.ReadByte(); + RPCProcedure.setRole(roleId, playerId); + break; + + + // Role functionality + + case (byte)CustomRPC.JesterWin: + RPCProcedure.jesterWin(); + break; + case (byte)CustomRPC.EngineerFixLights: + RPCProcedure.engineerFixLights(); + break; + case (byte)CustomRPC.EngineerUsedRepair: + RPCProcedure.engineerUsedRepair(); + break; + case (byte)CustomRPC.JanitorClean: + RPCProcedure.janitorClean(HFPCBBHJIPJ.ReadByte()); + break; + case (byte)CustomRPC.SheriffKill: + RPCProcedure.sheriffKill(HFPCBBHJIPJ.ReadByte()); + break; + case (byte)CustomRPC.TimeMasterRewindTime: + RPCProcedure.timeMasterRewindTime(); + break; + case (byte)CustomRPC.MedicSetShielded: + RPCProcedure.medicSetShielded(HFPCBBHJIPJ.ReadByte()); + break; + case (byte)CustomRPC.ShieldedMurderAttempt: + RPCProcedure.shieldedMurderAttempt(); + break; + case (byte)CustomRPC.TimeMasterRevive: + RPCProcedure.timeMasterRevive(HFPCBBHJIPJ.ReadByte()); + break; + case (byte)CustomRPC.ShifterShift: + RPCProcedure.shifterShift(HFPCBBHJIPJ.ReadByte()); + break; + case (byte)CustomRPC.SwapperSwap: + byte playerId1 = HFPCBBHJIPJ.ReadByte(); + byte playerId2 = HFPCBBHJIPJ.ReadByte(); + RPCProcedure.swapperSwap(playerId1, playerId2); + break; + case (byte)CustomRPC.SeerReveal: + RPCProcedure.seerReveal(HFPCBBHJIPJ.ReadByte()); + break; + case (byte)CustomRPC.MorphlingMorph: + RPCProcedure.morphlingMorph(HFPCBBHJIPJ.ReadByte()); + break; + case (byte)CustomRPC.CamouflagerCamouflage: + RPCProcedure.camouflagerCamouflage(); + break; + case (byte)CustomRPC.ChildDied: + RPCProcedure.childDied(); + break; + case (byte)CustomRPC.LoverSuicide: + RPCProcedure.loverSuicide(HFPCBBHJIPJ.ReadByte()); + break; + } + } + } +} diff --git a/Source Code/Resources/AdminTableIcon.png b/Source Code/Resources/AdminTableIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b2ee44fa414eac5040c7461a82aa8603f8ecb2 GIT binary patch literal 5158 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 UI@EEdD*ylh07*qoM6N<$f(@L}4FCWD literal 0 HcmV?d00001 diff --git a/Source Code/Resources/CamoButton.png b/Source Code/Resources/CamoButton.png new file mode 100644 index 0000000000000000000000000000000000000000..9933097ffaa954c669c15ab3d0a05a500593fc76 GIT binary patch literal 16845 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 literal 0 HcmV?d00001 diff --git a/Source Code/Resources/Footprint.png b/Source Code/Resources/Footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..2bcd1ac0793a0eacfb1085d31799f20cb5f7dcef GIT binary patch literal 2821 zcmV+g3;OhlP)EX>4Tx04R}tkv&MmKpe$iQ>9ue4rUN>$WWauh>AE$6^me@v=v%)FuC*#ni!H4 z7e~Rh;NZt%)xpJCR|i)?5c~jfb8}L3krMxx6k5c1aNLh~_a1le0HIN3n$4LokXvz#@`JL4txBDyYInj8>f#3u)Sq`}l`ke~MfRxhi1f zn8yY*$gUs!4}N!R6(=XWq(~g-esP?S5g@b+H0zG@ee5{R6Cn5uT)|5Tqat9cEGGtSBr65hASOnhB=$rDuz%3A7^?GaVTC`}m? z1T|1$hC<^dAV64zh23R$zx{Czx-Pps&wcK_kI!>C-DARr(h zARr(hARu{IxqpD96M$YoBXAgK0vgP$A<$b~B6>?YL()u1`z7s?v`x}hNwXw%lGG_^ zsyJlyku+PWbc>|U~^N!LnRnL|c{q$!fR zN~$OqLY|JOs5z2O&LMN6q;-mqe@MDqQgtiYSNV6Y%TvYyN%JKQDGN(o(sRHi5gyqJ zOfa+69mpFC%mqG?&@28Ecn#R&t@~?$fe~di0F%sYQK^rP3Q3D4HAU>XOC)`)9eGzt zdP}8=os!N^T8C-OgY$uH5uX_c+%4(Le%m}%()WP-fI%hN|M~!@CB4X}F=f>Ni-0je zRLgt~@G39?=vf9!=2l?5nY~%EgdB1F0gHjNfh;@t8i0{W5|Y-|Z7(npcmrt3Fd}PDo?P6Vi&5THtMxGuOCGr#G^Wc+us^sY|?T2ViD3MgM^#{ zOi%i|ib+UC#t5kZ`T~RFgrwV|vI9%|Gr+BWAwC2g^uKywBe2xW-i89GD861B~k6nN7e@NzVeyy}i-#X59sHdS{f7&cLNO-`!Kb6DMTlNMDll zMub4kDoK+i4a*^SqR*4cI`&F>MA9X(*AVXv91RQwy5{-pC}06FN786XgW4gZ3iv4H z;kk{Ap1@adVT5^w5@TL**8_8KKK?@S2jFMC?{GT=Oa|_VKyp@4kBdyc4lFaX$DXOC*Ur53z_XJcC&>ElgzcG^bo7sw7 zYsf{w$e_2>aV~JDq)+D}WDm}B8IV540ONBJG9P#`=&EQqa7;qXtQL3jD4;kvn9~mN z7H2?l(2x%yw*sq!u2RR-ej9vjLd@*n-Z0!0be0Mlf!_l+nc140hM_kOdjQV^BZB@C z!(3pqH<}+cv+a3V>Yfk-&I5i9TtK!H+|q=AmB8b`!)CT8s&)NAY0hvNpyVnjQU6M}qhD>i3;``YDMi zYa;O7px0P9%Nvx55VFVbAOZ@-jX)K&9X>cOj zUNd_Tm<_xe^ja_m00R>XDw)|`z`cGwX$<;}jP1bgq@#Sd1K+@9uY}s`(eO7jTbn2$ zzDU3_;7Y&HHwQiEjk=_ESx1p#W`}?qfhP&!-F)yiz6xKeo>@t~aD~jy&$vQcyeJm183xT_7zXYdwJDq6Jo$p-09vv86=|~ z_!h9x+heU~hkZD&ZVm1%`$f2L_glD1d(FU)+Li}QJ(wivBw#r%cPncnV-m19*KIzM z&I88cBC0O~PjplXqcUYO%=d~cCPFj=>+`u<$;@5?Udl&k+S!ID;L`91WOVH)yLwrj zfz!$6QR(KgBE%P+>5EH=$s!Jy+X(58tB{k`Iwwt}a9Fk?rO{F8*Ny&UH!J>d8sCM?MM9<~M8>*fUC%1%N`GBnrKL81KAV(xs)ghSUN3W6D^CtD2Jw`^ZrYtQDRDzGG&q zI^5lu?FOE~o!uw|!-;l(W6?&*tQfuQ1xceLv~_15GXEImR!&J*$C$e2l%ip{kHRi* zSqjWBv*i)n$`v45l-vmEByIQlnQ?ORJA~K+@MGogSmDYDvHH z9bmt2=OIbsC7lvO?o3Iw5eT`lt4P=9*b~oRjgF7I&A_%g0K}<-JYPJ^to{wihlp`QH!x zq1S*Sky0h;+mc@OH$?C8Q{!SuSNIZDi6I>F&wu)@!6j`Rsc+v1>@K8gTtGlTKt}L? XoLW(`8|8-e00000NkvXXu0mjf)!i|m literal 0 HcmV?d00001 diff --git a/Source Code/Resources/MorphButton.png b/Source Code/Resources/MorphButton.png new file mode 100644 index 0000000000000000000000000000000000000000..14b848801eff88ca6d469624ff568a34e0cf39bf GIT binary patch literal 17588 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⁢o+#SiC{0jkX68SA0>&XaNI+}r>4p-=;m@m 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 literal 0 HcmV?d00001 diff --git a/Source Code/Resources/RewindButton.png b/Source Code/Resources/RewindButton.png new file mode 100644 index 0000000000000000000000000000000000000000..adabbbdde44823040570a74df609a260e8d082ed GIT binary patch literal 17215 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 literal 0 HcmV?d00001 diff --git a/Source Code/Resources/SeerButton.png b/Source Code/Resources/SeerButton.png new file mode 100644 index 0000000000000000000000000000000000000000..993dc057f69be8c74f86de6f400916ce6311b728 GIT binary patch literal 17757 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 Q_{L;veBG$h;9kW40Jt=lm;e9( literal 0 HcmV?d00001 diff --git a/Source Code/Resources/ShiftButton.png b/Source Code/Resources/ShiftButton.png new file mode 100644 index 0000000000000000000000000000000000000000..c45047f7354966dce2d8c14d9345695386d7ceee GIT binary patch literal 19716 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 Y7G%%q8SBIVWmp_0h8Wbp*BoR12X{J1(EtDd literal 0 HcmV?d00001 diff --git a/Source Code/Resources/SwapperCheck.png b/Source Code/Resources/SwapperCheck.png new file mode 100644 index 0000000000000000000000000000000000000000..2feabac5985961f9b2993a20d22ffbc6f15f900a GIT binary patch literal 7597 zcmeHLc{r49+aENRK}jh~MRqY}F`LOq_OXXV=xLUF7{<()84M*$3nIyuL{B6wRI;}y zMQIg^5=x6iwl-Za$VQ&{GI1@Zufm$Np3E7@-S5x1OkyK z+grPXzjV<@S`z%`KF#ukK*YzQJiP_(ln4zjkHcWH01ZJT7tjENOa=rZd^nu#U*4r5 zxBan?&EAb<>7>4mTNr1z8efzeswJ~WZVkV?Akfv7)NGjlGJ|Y6`JTT`y;k2>Zq02E z7iNPJ|CV3N>*3lP$C=3`8`kaYH;JlDcqP`L9oRQ9IItw9;;s%C10~fhcoSv*KwbU$ zU9ry@Ed%y1b}HwG!}>hzCxjM9EDZX+%DcWU8sAdc|3yo#wxP5!dtB$u7m{k>{e`xa z5zF!d#uJ(tngerh*>mWsMf_=dzbXgfy7<`hJMV_q93OM)8*J4Z*VE@#4~gw)+E`o? z&D4ut`lZZrbHC4E-^WXA-Wj3voAXV9%dWm`8gX!vW)ksXT{i|Py{Tz8bF|e z^o8@TJ%SNKO1e_r4Hih;JZQfQCO=qm!t-?FwS0LvA9|F@M>YEavb_rf3NGpTx!fRVAal6a}*g?0#dv zE|$~xG1m_|Cv1D?=}YCq35_QOFFI~%`5c5wC=I_}pH}4oSsu^1LbbQp=&0?Ggrng! z8(S|OvAE`=Ici~Xyt~XHRa1tWcZ72bwVvkl5&7(vxb%4oszt`(*mkoAX{#13HTCqw z91n8$xL>M6-bwaw$bRu;os&`SdbCLm>&lfwC3^S|y`7FPj0j7xM_8Tw=EL>OINqh9 zc(KDn=Wi~H=()>2HyVjh8t|aC=N?}>4|~6@mfT?4>R#~zUek6=D=TW~p-0UK=>s|~ z$jWvJv90Wh)^6UKL)?vD-7dK7V&4<)$(0x`+;NP7m&t8Pa$#s(-DA}I{Id0jrJ^sHGrPMtxCOtx zU(8lqRPa%?`5-&~{=BWQmF5%9pQ6;hgnuh}d?fm6aRW%IdG&2Qxk|dJoCI!9sb*<6;LJ!@1!Kq1W7&?u4$HZ+DD3 z-zc-%vShCA-fycjc4%L@vW5#MOjLM>aYH-WFRfLW6Jyccowv}xsBtviGFf?)F!H2s zH2TcvxeBUE#ku|qVvqaSu2{C9;>=pq7;M#Tb8Ce?Imh(cl2wGMr#4MYY+2mr^C&DP zb&C!MU9YEj2h~%Sh))c_!SmmmhbCreZ=c8$b{~{gT*dPb|G10aN{I{Dk>V6|fM9L3 zXr=eaMlZDIQ|8mM!k|n9-QSDA3H36>cAV9Vp&(D4C_3X3JSWs>d7QTOwW9?oFe7W` zeS6fN!nZjIF%MqrUDwGdk+V&OdKOsnzVyb7ovUF`g4S7S#OcYRZail4KnV0S%k zs_rop`*No~t7CkfTK$mT!29Y&=HimoamlZ$bw|bauB>m#Fjh&|`pA^oEwuWd<(dDcV9kN#X!+D+t7Fm5@uJ1p@*NDiFYAlQc)qUDVWI(n*@@u+B(lt`!i- zw2$He9#Jlyw5VX3DP41wIm}E*1PMX_0YyU?!eaA@LXzebFA@ANnnq}9OhE*}Bu#H; zHw`Ne5759EV~mk-8zD0st!WO^Fyqk~M0ac3847Sj(hL*`xI_dZA|k>#!o--v3qYVu zO-&I+<8sO7-Os;^*VQYvuDO66FfTXDju4~MYgR3+f zAvigsKs27B=L_fvGC071`vCz6G!jXGBhhfQDPp!fxa#cuU7F3G@gnF?gpk5Tpp21- zkdU7w_yU{oANqbN!S@932?%$9&k5tv0Gn`tEzp{+l*3lpdoya8TAuhz-0Ug&`A0RJ)#|P6~#EL>1qtR0G1Uf$6xy`=`IK;gJ{1DckJC%EKngnm z0Q>DsvHdmA{6!*D0W5&U(r|Djfk1;}uqIeI6-mXzu_#jphCs#9@D%*d?0gPG5JBMq zs{_Cs0OJf6*HoM}^k?$V;Aeb9ARtOEBpL-rnt+!l3Qa_t5YYt9>1fYH|G%?60E;xC zU}zLL3Pr`jF=#p!PQVbba3q#W#o!rOB%MB8T;HAdpV%G-O~iiRo*6=P1NkeMW}+7B z>`a^;ZZlB}CXz*U<`Kr_vX}tx=QQ}MEdCGNEcuxd{CDEBVbju99Bw4oqyh!55$wNJ z{|n$WgA+AXv0v!Kn>bKw0Od>lZ0e;$}A0#Tp%FTQ4q>%XW0r2ehs zANlvUyMDXtA9>&(fq!S$Z+HD85BwwW@9g@IxeNB=L;+xfkF^otc|lKas19LNrd=z4mnifIr%6#U|q`UiX``EFeVBYb3N z>4y(wc5d^?Bh&uPcSiFbf6RYu+Dk}%_Uo%%G52&!I?uu|O=`W%(S%q{Bup+rVW+YE zS7?sptvL)a4)le1fOzsy1rrEU5t}P9DIPBVd1x{r4j;EiA>J=-&_=qR)hpNgwVroy zfp?JQ^A$qp`4jjS36|If@oI_adNrTQ18J>K0uRV==a(r4;vIABBa<1+yJA;C)Z!M$ zTKSacq@hp@asT=iy@wbociktBujy6lMfF}#xcsfOa<#dY*Xy~x74>={-a(FM9^DLi zxqtaUs)FUEXtVu>+F|5R`--B2%s%VDxw0zzYZ1^9$!y47y#nPUhgrLBFHcMgC2<#z zHOn*yi0`=Bq2uhhCH=~TIX5aRX3G+xyl}2?*@RTfyd@^Gn^u;|5#~)Oj4ktRNNI{a zv9@?9Z%>9`SJC|v<$k;252M-l3~5GrDP zS#K%qLQIQSS8&`WD`_d+u^x`ZNy+BZyLZG&#oqR4Yd~|3TeYd5i14D$UzJ{YZ<}Dy z=$d74FMdHI!Fa%w{70G~x5kf1tt6ja?H&`a+@wv?8EA9pmpM{hFvudi>dLKcz~%X4 zvJ#Hk*4CNCvXj^JQ9I_Ji&cljG~duRJhqT(+B7IurXsBF9QV0lSmo3K1i$>J3Da|71HDW@G%@`gQ8&YuT=8L+IST>2}7K_0o^yay5yy zSKxm)iF%;@t4v3zb=!6ypS*p_i|s#U6cyySRQk6Cv;sFZSGv@t7>F>uIOS%?U6U>N$4lTTQ~1g3e>7?SCg(@@4Pt4 zka>96SFUN{xBhfG+n0eLh&awk&jFWxZYE z<56YE1u;LeM2-K6J!j)iDGuwu@Ce-cHg09yZeV$~QY=5tROVt$+mfx?sKKQs>&3cZ zeioaX*M*Ab;~sqIhJFc0!;8MuB`w&;~X;o?uJXgo@WLE8_CCEp|81fIlx^%4Zh+2|cl(rgCn%)i+Ttox$4G^ZLj+gmyfNpE{_*+)vWk|4M6kXglqm4mX71Hn+@o+aetz6m^caKfS!@ zHhM&C1TX8fUEy+KQ9|t2da0W)GQt=tar&L?&|ASU>j0OsLvp^_J#+o$8dW}yloxW* z@V-GA?;FPCKT7SmC+CLk(;0Xrll<`8Ej>z({!ZSem1qIQhzBE9v%bx7#D&gZ#GCsK6NL;Tx#SR18&_)9)D;5$*)eUHcWr?Bcm!*&SB7{ zV#)H5HHpmuMh3E0@5D*Vx6xD-Y38kBEhF1-k#gSohs*C1aW&bbGbvf4p5)!0We8r2 zV!yac5cO7OWpR9_y3dPmMx3g5m-P`AHVdxN7t$-Q$>8E!pbDyB=*i6-%EdvNR3Er zQMXji<;CYH4_hxE3s&yhtt@^(a*K23WL1;utCzwi@lv}x6&wFp$wjs9o7k=twRaNQ z0h#CWoJA|{exy3b2eKJjyYKW{<-U}ht}p1;6XxfVQZee(p}eSpPsKL%o08IdvlV-c zJPo8`?c&sTD1>9m<;!vO+tB7^c5;cvaNnR;x#HZ$Ii~iNqmLW}CJmcEuX=Os$y(XUeM_267*m7aBFTt(X*MpGpi{(iHlui>dleYJTd%IT`mn SY`}*I2-(KP`lRK?`2PVD#@TQH literal 0 HcmV?d00001 diff --git a/Source Code/RoleAssignmentPatch.cs b/Source Code/RoleAssignmentPatch.cs new file mode 100644 index 0000000..77df16d --- /dev/null +++ b/Source Code/RoleAssignmentPatch.cs @@ -0,0 +1,91 @@ +using HarmonyLib; +using Hazel; +using System.Collections.Generic; +using System.Linq; +using UnhollowerBaseLib; +using System; +using static BonusRoles.BonusRoles; + +namespace BonusRoles +{ + [HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.RpcSetInfected))] + class SetInfectedPatch + { + private static void setRoleToRandomPlayer(byte roleId, List playerList) { + var index = rnd.Next(0, playerList.Count); + byte playerId = playerList[index].PlayerId; + playerList.RemoveAt(index); + + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.SetRole, Hazel.SendOption.None, -1); + writer.Write(roleId); + writer.Write(playerId); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.setRole(roleId, playerId); + } + + public static void Postfix(Il2CppReferenceArray FMAOEJEHPAO) + { + MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ResetVaribles, Hazel.SendOption.None, -1); + AmongUsClient.Instance.FinishRpcImmediately(writer); + RPCProcedure.resetVariables(); + + List crewmates = PlayerControl.AllPlayerControls.ToArray().ToList(); + crewmates.RemoveAll(x => x.Data.IsImpostor); + List impostors = PlayerControl.AllPlayerControls.ToArray().ToList(); + impostors.RemoveAll(x => !x.Data.IsImpostor); + + // Special roles impostors can be converted to + if (impostors.Count >= 3 && (rnd.Next(1, 101) <= BonusRolesPlugin.mafiaSpawnChance.GetValue())) { + setRoleToRandomPlayer((byte)RoleId.Godfather, impostors); + setRoleToRandomPlayer((byte)RoleId.Janitor, impostors); + setRoleToRandomPlayer((byte)RoleId.Mafioso, impostors); + } + + if (impostors.Count >= 1 && (rnd.Next(1, 101) <= BonusRolesPlugin.morphlingSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Morphling, impostors); + + if (impostors.Count >= 1 && (rnd.Next(1, 101) <= BonusRolesPlugin.camouflagerSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Camouflager, impostors); + + // Special roles that involve crewmates and impostors + if (rnd.Next(1, 101) <= BonusRolesPlugin.loversSpawnChance.GetValue()) + { + if (impostors.Count > 0 && crewmates.Count > 0 && rnd.Next(1, 101) <= 33) { + setRoleToRandomPlayer((byte)RoleId.Lover1, impostors); + setRoleToRandomPlayer((byte)RoleId.Lover2, crewmates); + } else if (crewmates.Count >= 2) { + setRoleToRandomPlayer((byte)RoleId.Lover1, crewmates); + setRoleToRandomPlayer((byte)RoleId.Lover2, crewmates); + } + } + + // Special roles crewmates can be converted to + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.jesterSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Jester, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.mayorSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Mayor, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.engineerSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Engineer, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.sheriffSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Sheriff, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.lighterSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Lighter, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.detectiveSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Detective, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.timeMasterSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.TimeMaster, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.medicSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Medic, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.shifterSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Shifter, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.swapperSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Swapper, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.seerSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Seer, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.spySpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Spy, crewmates); + if (crewmates.Count > 0 && (rnd.Next(1, 101) <= BonusRolesPlugin.childSpawnChance.GetValue())) + setRoleToRandomPlayer((byte)RoleId.Child, crewmates); + } + } +} diff --git a/Source Code/ShipStatusPatch.cs b/Source Code/ShipStatusPatch.cs new file mode 100644 index 0000000..6636cc2 --- /dev/null +++ b/Source Code/ShipStatusPatch.cs @@ -0,0 +1,15 @@ + +using HarmonyLib; +using static BonusRoles.BonusRoles; + +namespace BonusRoles { + + [HarmonyPatch(typeof(ShipStatus), nameof(ShipStatus.CalculateLightRadius))] + public class ShipStatusPatch { + public static void Postfix(ref float __result, ShipStatus __instance, [HarmonyArgument(0)] GameData.PlayerInfo PlayerData) { + if (Lighter.lighter != null && Lighter.lighter.PlayerId == PlayerData.PlayerId) { + __result = __instance.MaxLightRadius * Lighter.lighterVision; + } + } + } +} \ No newline at end of file diff --git a/Source Code/UpdatePatch.cs b/Source Code/UpdatePatch.cs new file mode 100644 index 0000000..23f8274 --- /dev/null +++ b/Source Code/UpdatePatch.cs @@ -0,0 +1,334 @@ +using HarmonyLib; +using System; +using System.IO; +using System.Net.Http; +using UnityEngine; +using static BonusRoles.BonusRoles; +using Reactor.Extensions; +using System.Collections.Generic; +using System.Linq; + +namespace BonusRoles +{ + [HarmonyPatch(typeof(HudManager), nameof(HudManager.Update))] + class HudManagerUpdatePatch + { + static void resetNameTagsAndColors() { + Dictionary playersById = Helpers.allPlayersById(); + + foreach (PlayerControl player in PlayerControl.AllPlayerControls) { + player.nameText.Text = player.Data.PlayerName; + if (PlayerControl.LocalPlayer.Data.IsImpostor && player.Data.IsImpostor) { + player.nameText.Color = Palette.ImpostorRed; + } else { + player.nameText.Color = Color.white; + } + } + if (MeetingHud.Instance != null) + foreach (PlayerVoteArea player in MeetingHud.Instance.playerStates) { + PlayerControl playerControl = playersById.ContainsKey((byte)player.TargetPlayerId) ? playersById[(byte)player.TargetPlayerId] : null; + if (playerControl != null) { + player.NameText.Text = playerControl.Data.PlayerName; + if (PlayerControl.LocalPlayer.Data.IsImpostor && playerControl.Data.IsImpostor) { + player.NameText.Color = Palette.ImpostorRed; + } else { + player.NameText.Color = Color.white; + } + } + } + + if (PlayerControl.LocalPlayer.Data.IsImpostor) { + List impostors = PlayerControl.AllPlayerControls.ToArray().ToList(); + impostors.RemoveAll(x => !x.Data.IsImpostor); + foreach (PlayerControl player in impostors) + player.nameText.Color = Palette.ImpostorRed; + if (MeetingHud.Instance != null) + foreach (PlayerVoteArea player in MeetingHud.Instance.playerStates) { + PlayerControl playerControl = Helpers.playerById((byte)player.TargetPlayerId); + if (playerControl != null && playerControl.Data.IsImpostor) + player.NameText.Color = Palette.ImpostorRed; + } + } + + } + + static void setPlayerNameColor(PlayerControl p, Color color) { + p.nameText.Color = color; + if (MeetingHud.Instance != null) + foreach (PlayerVoteArea player in MeetingHud.Instance.playerStates) + if (player.NameText != null && p.PlayerId == player.TargetPlayerId) + player.NameText.Color = color; + } + + static void setNameColors() { + if (Jester.jester != null && Jester.jester == PlayerControl.LocalPlayer) + setPlayerNameColor(Jester.jester, Jester.color); + else if (Mayor.mayor != null && Mayor.mayor == PlayerControl.LocalPlayer) + setPlayerNameColor(Mayor.mayor, Mayor.color); + else if (Engineer.engineer != null && Engineer.engineer == PlayerControl.LocalPlayer) + setPlayerNameColor(Engineer.engineer, Engineer.color); + else if (Sheriff.sheriff != null && Sheriff.sheriff == PlayerControl.LocalPlayer) + setPlayerNameColor(Sheriff.sheriff, Sheriff.color); + else if (Lighter.lighter != null && Lighter.lighter == PlayerControl.LocalPlayer) + setPlayerNameColor(Lighter.lighter, Lighter.color); + else if (Detective.detective != null && Detective.detective == PlayerControl.LocalPlayer) + setPlayerNameColor(Detective.detective, Detective.color); + else if (TimeMaster.timeMaster != null && TimeMaster.timeMaster == PlayerControl.LocalPlayer) + setPlayerNameColor(TimeMaster.timeMaster, TimeMaster.color); + else if (Medic.medic != null && Medic.medic == PlayerControl.LocalPlayer) + setPlayerNameColor(Medic.medic, Medic.color); + else if (Shifter.shifter != null && Shifter.shifter == PlayerControl.LocalPlayer) + setPlayerNameColor(Shifter.shifter, Shifter.color); + else if (Swapper.swapper != null && Swapper.swapper == PlayerControl.LocalPlayer) + setPlayerNameColor(Swapper.swapper, Swapper.color); + else if (Lovers.lover1 != null && Lovers.lover2 != null && (Lovers.lover1 == PlayerControl.LocalPlayer || Lovers.lover2 == PlayerControl.LocalPlayer)) { + setPlayerNameColor(Lovers.lover1, Lovers.color); + setPlayerNameColor(Lovers.lover2, Lovers.color); + } + else if (Seer.seer != null && Seer.seer == PlayerControl.LocalPlayer) + setPlayerNameColor(Seer.seer, Seer.color); + else if (Spy.spy != null && Spy.spy == PlayerControl.LocalPlayer) + setPlayerNameColor(Spy.spy, Spy.color); + + // Crewmate roles with no changes: Child + // Impostor roles with no changes: Morphling, Camouflager, Godfather, Janitor and Mafioso + } + + static void setMafiaNameTags() { + if (PlayerControl.LocalPlayer != null && PlayerControl.LocalPlayer.Data.IsImpostor) { + foreach (PlayerControl player in PlayerControl.AllPlayerControls) + if (Godfather.godfather != null && Godfather.godfather == player) + player.nameText.Text = player.Data.PlayerName + " (G)"; + else if (Mafioso.mafioso != null && Mafioso.mafioso == player) + player.nameText.Text = player.Data.PlayerName + " (M)"; + else if (Janitor.janitor != null && Janitor.janitor == player) + player.nameText.Text = player.Data.PlayerName + " (J)"; + if (MeetingHud.Instance != null) + foreach (PlayerVoteArea player in MeetingHud.Instance.playerStates) + if (Godfather.godfather != null && Godfather.godfather.PlayerId == player.TargetPlayerId) + player.NameText.Text = Godfather.godfather.Data.PlayerName + " (G)"; + else if (Mafioso.mafioso != null && Mafioso.mafioso.PlayerId == player.TargetPlayerId) + player.NameText.Text = Mafioso.mafioso.Data.PlayerName + " (M)"; + else if (Janitor.janitor != null && Janitor.janitor.PlayerId == player.TargetPlayerId) + player.NameText.Text = Janitor.janitor.Data.PlayerName + " (J)"; + } + } + + static void updateShielded() { + if (Medic.shielded == null) return; + + if(Medic.showShielded == 0) // Everyone + { + Medic.shielded.myRend.material.SetFloat("_Outline", 1f); + Medic.shielded.myRend.material.SetColor("_OutlineColor", Medic.shieldedColor); + } + else if (Medic.showShielded == 1 && PlayerControl.LocalPlayer == Medic.shielded) // Shielded + Medic + { + Medic.shielded.myRend.material.SetFloat("_Outline", 1f); + Medic.shielded.myRend.material.SetColor("_OutlineColor", Medic.shieldedColor); + } + else if(PlayerControl.LocalPlayer == Medic.medic) // Medic + { + Medic.shielded.myRend.material.SetFloat("_Outline", 1f); + Medic.shielded.myRend.material.SetColor("_OutlineColor", Medic.shieldedColor); + } + + // Break shield + if (Medic.shielded.Data.IsDead || Medic.medic == null || Medic.medic.Data.IsDead) { + Medic.shielded.myRend.material.SetFloat("_Outline", 0f); + Medic.shielded = null; + } + } + + static void jesterClearTasks() { + if (Jester.jester == null) return; + + var toRemove = new List(); + foreach (PlayerTask task in Jester.jester.myTasks) + if (task.TaskType != TaskTypes.FixComms && task.TaskType != TaskTypes.FixLights && task.TaskType != TaskTypes.ResetReactor && task.TaskType != TaskTypes.ResetSeismic && task.TaskType != TaskTypes.RestoreOxy) + toRemove.Add(task); + foreach (PlayerTask task in toRemove) + Jester.jester.RemoveTask(task); + } + + static void mafiosoDeactivateKillButtonIfNecessary(HudManager __instance) { + if (Mafioso.mafioso == null || Mafioso.mafioso != PlayerControl.LocalPlayer) return; + + if (!PlayerControl.LocalPlayer.Data.IsDead && __instance.UseButton.isActiveAndEnabled && Godfather.godfather != null && Godfather.godfather.Data.IsDead) { + __instance.KillButton.gameObject.SetActive(true); + __instance.KillButton.renderer.enabled = true; + __instance.KillButton.isActive = true; + __instance.KillButton.enabled = true; + } else { + __instance.KillButton.gameObject.SetActive(false); + __instance.KillButton.renderer.enabled = false; + __instance.KillButton.isActive = false; + __instance.KillButton.enabled = false; + } + } + + static void janitorDeactivateKillButton(HudManager __instance) { + if (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer) { + __instance.KillButton.gameObject.SetActive(false); + __instance.KillButton.renderer.enabled = false; + __instance.KillButton.isActive = false; + __instance.KillButton.enabled = false; + } + } + + static void shifterClearTasks() { + if (Shifter.shifter == null) return; + + var toRemove = new List(); + foreach (PlayerTask task in Shifter.shifter.myTasks) + if (task.TaskType != TaskTypes.FixComms && task.TaskType != TaskTypes.FixLights && task.TaskType != TaskTypes.ResetReactor && task.TaskType != TaskTypes.ResetSeismic && task.TaskType != TaskTypes.RestoreOxy) + toRemove.Add(task); + foreach (PlayerTask task in toRemove) + Shifter.shifter.RemoveTask(task); + } + + static void seerUpdate() { + if (Seer.seer == null || Seer.seer != PlayerControl.LocalPlayer) return; + + // Update revealed players + foreach (PlayerControl p in Seer.revealedPlayers) { + // Update color and name regarding settings and given info + string result = p.Data.PlayerName; + SeerInfo si = SeerInfo.getSeerInfoForPlayer(p); + if (Seer.kindOfInfo == 0) + result = p.Data.PlayerName + " (" + si.roleName + ")"; + else if (Seer.kindOfInfo == 1) { + si.color = si.isGood ? new Color(250f / 255f, 217f / 255f, 52f / 255f, 1) : new Color (51f / 255f, 61f / 255f, 54f / 255f, 1); + } + + // Set color and name + p.nameText.Color = si.color; + p.nameText.Text = result; + if (MeetingHud.Instance != null) { + foreach (PlayerVoteArea player in MeetingHud.Instance.playerStates) { + if (p.PlayerId == player.TargetPlayerId) { + player.NameText.Text = result; + player.NameText.Color = si.color; + break; + } + } + } + } + } + + static void camouflageAndMorphActions() { + float oldCamouflageTimer = Camouflager.camouflageTimer; + float oldMorphTimer = Morphling.morphTimer; + + Camouflager.camouflageTimer -= Time.deltaTime; + Morphling.morphTimer -= Time.deltaTime; + + // Morphling player size not done here + + // Set morphling morphed look + if (Morphling.morphTimer > 0f && Camouflager.camouflageTimer <= 0f) { + if (Morphling.morphling != null && Morphling.morphTarget != null) { + if (Seer.seer == null || Seer.seer != PlayerControl.LocalPlayer) + Morphling.morphling.nameText.Text = Morphling.morphTarget.Data.PlayerName; + Morphling.morphling.myRend.material.SetColor("_BackColor", Palette.ShadowColors[Morphling.morphTarget.Data.ColorId]); + Morphling.morphling.myRend.material.SetColor("_BodyColor", Palette.PlayerColors[Morphling.morphTarget.Data.ColorId]); + Morphling.morphling.HatRenderer.SetHat(Morphling.morphTarget.Data.HatId, Morphling.morphTarget.Data.ColorId); + Morphling.morphling.nameText.transform.localPosition = new Vector3(0f, (Morphling.morphTarget.Data.HatId == 0U) ? 0.7f : 1.05f, -0.5f); + + if (Morphling.morphling.MyPhysics.Skin.skin.ProdId != DestroyableSingleton.Instance.AllSkins[(int)Morphling.morphTarget.Data.SkinId].ProdId) { + Helpers.setSkinWithAnim(Morphling.morphling.MyPhysics, Morphling.morphTarget.Data.SkinId); + } + if (Morphling.morphling.CurrentPet == null || Morphling.morphling.CurrentPet.ProdId != DestroyableSingleton.Instance.AllPets[(int)Morphling.morphTarget.Data.PetId].ProdId) { + if (Morphling.morphling.CurrentPet) UnityEngine.Object.Destroy(Morphling.morphling.CurrentPet.gameObject); + Morphling.morphling.CurrentPet = UnityEngine.Object.Instantiate(DestroyableSingleton.Instance.AllPets[(int)Morphling.morphTarget.Data.PetId]); + Morphling.morphling.CurrentPet.transform.position = Morphling.morphling.transform.position; + Morphling.morphling.CurrentPet.Source = Morphling.morphling; + Morphling.morphling.CurrentPet.Visible = Morphling.morphling.Visible; + PlayerControl.SetPlayerMaterialColors(Morphling.morphTarget.Data.ColorId, Morphling.morphling.CurrentPet.rend); + } else if (Morphling.morphling.CurrentPet) { + PlayerControl.SetPlayerMaterialColors(Morphling.morphTarget.Data.ColorId, Morphling.morphling.CurrentPet.rend); + } + } + } + + // Set camouflaged look (overrides morphling morphed look if existent) + if (Camouflager.camouflageTimer > 0f) { + foreach (PlayerControl p in PlayerControl.AllPlayerControls) { + if (Seer.seer == null || Seer.seer != PlayerControl.LocalPlayer) + p.nameText.Text = ""; + p.myRend.material.SetColor("_BackColor", Color.grey); + p.myRend.material.SetColor("_BodyColor", Color.grey); + p.HatRenderer.SetHat(0, 0); + Helpers.setSkinWithAnim(p.MyPhysics, 0); + if (p.CurrentPet) UnityEngine.Object.Destroy(p.CurrentPet.gameObject); + } + } + + // Everyone but morphling reset + if (oldCamouflageTimer > 0f && Camouflager.camouflageTimer <= 0f) { + foreach (PlayerControl p in PlayerControl.AllPlayerControls) { + if (Morphling.morphling == null || Morphling.morphling != p) { + if (Seer.seer == null || Seer.seer != PlayerControl.LocalPlayer) + p.SetName(p.Data.PlayerName); + p.SetHat(p.Data.HatId, (int)p.Data.ColorId); + Helpers.setSkinWithAnim(p.MyPhysics, p.Data.SkinId); + p.SetPet(p.Data.PetId); + p.CurrentPet.Visible = p.Visible; + p.SetColor(p.Data.ColorId); + } + } + } + + // Morphling reset + if ((oldMorphTimer > 0f || oldCamouflageTimer > 0f) && Camouflager.camouflageTimer <= 0f && Morphling.morphTimer <= 0f && Morphling.morphling != null) { + Morphling.morphTarget = null; + if (Seer.seer == null || Seer.seer != PlayerControl.LocalPlayer) + Morphling.morphling.SetName(Morphling.morphling.Data.PlayerName); + Morphling.morphling.SetHat(Morphling.morphling.Data.HatId, (int)Morphling.morphling.Data.ColorId); + Helpers.setSkinWithAnim(Morphling.morphling.MyPhysics, Morphling.morphling.Data.SkinId); + Morphling.morphling.SetPet(Morphling.morphling.Data.PetId); + Morphling.morphling.CurrentPet.Visible = Morphling.morphling.Visible; + Morphling.morphling.SetColor(Morphling.morphling.Data.ColorId); + } + } + + public static void updatePlayerSizes() { + foreach (PlayerControl p in PlayerControl.AllPlayerControls) { + if (p == null) continue; + + if (Child.child != null && Child.child == p) + p.transform.localScale = new Vector3(0.35f, 0.35f, 1f); + else if (Morphling.morphling != null && Morphling.morphling == p && Morphling.morphTarget != null && Morphling.morphTarget == Child.child && Morphling.morphTimer > 0f) + p.transform.localScale = new Vector3(0.35f, 0.35f, 1f); + else + p.transform.localScale = new Vector3(0.7f, 0.7f, 1f); + } + } + + static void Postfix(HudManager __instance) + { + if (AmongUsClient.Instance.GameState != InnerNet.InnerNetClient.GameStates.Started) return; + + CustomButton.HudUpdate(); + resetNameTagsAndColors(); + setNameColors(); + updateShielded(); + + // Mafia + setMafiaNameTags(); + // Jester + jesterClearTasks(); + // Mafioso + mafiosoDeactivateKillButtonIfNecessary(__instance); + // Janitor + janitorDeactivateKillButton(__instance); + // Shifter + shifterClearTasks(); + // Seer update + seerUpdate(); + + camouflageAndMorphActions(); + updatePlayerSizes(); + } + } +} \ No newline at end of file diff --git a/Source Code/UsablesPatch.cs b/Source Code/UsablesPatch.cs new file mode 100644 index 0000000..8dea16b --- /dev/null +++ b/Source Code/UsablesPatch.cs @@ -0,0 +1,244 @@ +using HarmonyLib; +using System; +using System.IO; +using System.Net.Http; +using UnityEngine; +using System.Linq; +using static BonusRoles.BonusRoles; +using static BonusRoles.GameHistory; +using Reactor.Extensions; +using System.Collections.Generic; + +namespace BonusRoles +{ + + [HarmonyPatch(typeof(Vent), "CanUse")] + public static class VentPatch + { + public static bool Prefix(Vent __instance, ref float __result, [HarmonyArgument(0)] GameData.PlayerInfo pc, [HarmonyArgument(1)] out bool canUse, [HarmonyArgument(2)] out bool couldUse) + { + float num = float.MaxValue; + PlayerControl @object = pc.Object; + + + bool roleCouldUse = false; + if (Engineer.engineer != null && Engineer.engineer == @object) + roleCouldUse = true; + else if (pc.IsImpostor) { + if (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer) + roleCouldUse = false; + else if (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.Data.IsDead) + roleCouldUse = false; + else + roleCouldUse = true; + } + + couldUse = ((@object.inVent || roleCouldUse) && !pc.IsDead && (@object.CanMove || @object.inVent)); + canUse = couldUse; + if (canUse) + { + Vector2 truePosition = @object.GetTruePosition(); + Vector3 position = __instance.transform.position; + num = Vector2.Distance(truePosition, position); + canUse &= (num <= __instance.UsableDistance && !PhysicsHelpers.AnythingBetween(truePosition, position, Constants.ShipOnlyMask, false)); + } + __result = num; + return false; + } + } + + [HarmonyPatch(typeof(UseButtonManager), nameof(UseButtonManager.SetTarget))] + class UseButtonSetTargetPatch { + static void Postfix(UseButtonManager __instance) { + if (__instance.Field_3 != null) return; + + // Mafia sabotage button render patch + bool blockSabotageJanitor = (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer); + bool blockSabotageMafioso = (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.Data.IsDead); + if (blockSabotageJanitor || blockSabotageMafioso) { + // __instance.UseButton.sprite = __instance.UseImage; + __instance.UseButton.color = new Color(1f, 1f, 1f, 0.3f); + } + + } + } + + [HarmonyPatch(typeof(UseButtonManager), nameof(UseButtonManager.DoClick))] + class UseButtonDoClickPatch { + static bool Prefix(UseButtonManager __instance) { + if (__instance.Field_3 != null) return true; + + // Mafia sabotage button click patch + bool blockSabotageJanitor = (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer); + bool blockSabotageMafioso = (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.Data.IsDead); + if (blockSabotageJanitor || blockSabotageMafioso) return false; + + return true; + } + } + + [HarmonyPatch(typeof(EmergencyMinigame), nameof(EmergencyMinigame.Update))] + class EmergencyMinigameUpdatePatch { + static void Postfix(EmergencyMinigame __instance) { + // Swapper deactivate emergency button + if (Swapper.swapper != null && Swapper.swapper == PlayerControl.LocalPlayer) { + __instance.StatusText.Text = "The Swapper can't start an emergency meeting"; + __instance.NumberText.Text = string.Empty; + __instance.ClosedLid.gameObject.SetActive(true); + __instance.OpenLid.gameObject.SetActive(false); + __instance.ButtonActive = false; + } + } + } + + [HarmonyPatch(typeof(TuneRadioMinigame), nameof(TuneRadioMinigame.Begin))] + class CommsMinigameBeginPatch { + static void Postfix(TuneRadioMinigame __instance) { + // Block Swapper from fixing comms. Still looking for a better way to do this, but deleting the task doesn't seem like a viable option since then the camera, admin table, ... work while comms are out + if (Swapper.swapper != null && Swapper.swapper == PlayerControl.LocalPlayer) { + __instance.Close(); + } + } + } + + [HarmonyPatch(typeof(SwitchMinigame), nameof(SwitchMinigame.Begin))] + class LightsMinigameBeginPatch { + static void Postfix(SwitchMinigame __instance) { + // Block Swapper from fixing lights. One could also just delete the PlayerTask, but I wanted to do it the same way as with coms for now. + if (Swapper.swapper != null && Swapper.swapper == PlayerControl.LocalPlayer) { + __instance.Close(); + } + } + } + + [HarmonyPatch(typeof(VitalsMinigame), nameof(VitalsMinigame.Update))] + class VitalsMinigamePatch { + static void Postfix(VitalsMinigame __instance) { + // Spy show time since death + if (Spy.spy == null || Spy.spy != PlayerControl.LocalPlayer) return; + for (int k = 0; k < __instance.vitals.Length; k++) + { + VitalsPanel vitalsPanel = __instance.vitals[k]; + GameData.PlayerInfo playerInfo = GameData.Instance.AllPlayers[k]; + + if (vitalsPanel.IsDead) { + DeadPlayer deadPlayer = deadPlayers?.Where(x => x.player?.PlayerId == playerInfo?.PlayerId)?.FirstOrDefault(); + if (deadPlayer != null && deadPlayer.timeOfDeath != null) { + float timeSinceDeath = ((float)(DateTime.UtcNow - deadPlayer.timeOfDeath).TotalMilliseconds); + vitalsPanel.Text.Text = Math.Round(timeSinceDeath / 1000) + "s"; + } + } + } + } + } + + [HarmonyPatch] + class AdminPanelPatch { + static Dictionary> players = new Dictionary>(); + + [HarmonyPatch(typeof(MapCountOverlay), nameof(MapCountOverlay.Update))] + class MapCountOverlayUpdatePatch { + static bool Prefix(MapCountOverlay __instance) { + // Spy save colors for each room on the admin panel + if (Spy.spy == null || Spy.spy != PlayerControl.LocalPlayer) return true; + + __instance.timer += Time.deltaTime; + if (__instance.timer < 0.1f) + { + return false; + } + __instance.timer = 0f; + players = new Dictionary>(); + bool commsActive = false; + foreach (PlayerTask task in PlayerControl.LocalPlayer.myTasks) + if (task.TaskType == TaskTypes.FixComms) commsActive = true; + + + if (!__instance.isSab && commsActive) + { + __instance.isSab = true; + __instance.BackgroundColor.SetColor(Palette.DisabledGrey); + __instance.SabotageText.gameObject.SetActive(true); + return false; + } + if (__instance.isSab && !commsActive) + { + __instance.isSab = false; + __instance.BackgroundColor.SetColor(Color.green); + __instance.SabotageText.gameObject.SetActive(false); + } + + for (int i = 0; i < __instance.CountAreas.Length; i++) + { + CounterArea counterArea = __instance.CountAreas[i]; + List roomColors = new List(); + players.Add(counterArea.RoomType, roomColors); + + if (!commsActive) + { + PlainShipRoom plainShipRoom = ShipStatus.Instance.FastRooms[counterArea.RoomType]; + + if (plainShipRoom != null && plainShipRoom.roomArea) + { + int num = plainShipRoom.roomArea.OverlapCollider(__instance.filter, __instance.buffer); + int num2 = num; + for (int j = 0; j < num; j++) + { + Collider2D collider2D = __instance.buffer[j]; + if (!(collider2D.tag == "DeadBody")) + { + PlayerControl component = collider2D.GetComponent(); + if (!component || component.Data == null || component.Data.Disconnected || component.Data.IsDead) + { + num2--; + } else { + roomColors.Add(Palette.PlayerColors[component.Data.ColorId]); + } + } else { + DeadBody component = collider2D.GetComponent(); + if (component) { + GameData.PlayerInfo playerInfo = GameData.Instance.GetPlayerById(component.ParentId); + if (playerInfo != null) + roomColors.Add(Palette.PlayerColors[playerInfo.ColorId]); + } + } + } + counterArea.UpdateCount(num2); + } + else + { + Debug.LogWarning("Couldn't find counter for:" + counterArea.RoomType); + } + } + else + { + counterArea.UpdateCount(0); + } + } + return false; + } + } + + [HarmonyPatch(typeof(CounterArea), nameof(CounterArea.UpdateCount))] + class CounterAreaUpdateCountPatch { + static void Postfix(CounterArea __instance) { + // Spy display saved colors on the admin panel + if (Spy.spy == null || Spy.spy != PlayerControl.LocalPlayer) return; + + if (players.ContainsKey(__instance.RoomType)) { + List colors = players[__instance.RoomType]; + + for (int i = 0; i < __instance.myIcons.Count; i++) { + PoolableBehavior icon = __instance.myIcons[i]; + SpriteRenderer renderer = icon.GetComponent(); + + if (renderer != null && colors.Count > i && Spy.getAdminTableIconSprite() != null) { + renderer.sprite = Spy.getAdminTableIconSprite(); + renderer.color = colors[i]; + } + } + } + } + } + } +} \ No newline at end of file -- 2.39.5