Skip to content
This repository was archived by the owner on Oct 19, 2022. It is now read-only.

tor 4.1.5 #91

Open
wants to merge 62 commits into
base: 1.2.0-tor
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
7d30ebd
Version 3.4.5
dwd0tcom Apr 9, 2022
70139e3
Merge pull request #333 from Eisbison/v-3-4-5
dwd0tcom Apr 9, 2022
b75ad7b
Version 4.0.0
dwd0tcom Apr 29, 2022
a5de718
Merge pull request #338 from Eisbison/v-4-0-0
dwd0tcom Apr 29, 2022
32f2e08
version 4.1.0
May 1, 2022
6ccba0f
Update README.md
Mallaris May 1, 2022
322de56
Merge pull request #342 from Eisbison/Version_4.1.0
Mallaris May 1, 2022
93121a9
Update to version 4.1.1
May 2, 2022
3d06deb
Update README.md
Mallaris May 2, 2022
c623255
Merge pull request #344 from Eisbison/4.1.1
Mallaris May 2, 2022
0b47cc8
Version 4.1.2
dwd0tcom May 17, 2022
a8b6a74
Merge pull request #351 from Eisbison/v-4-1-2
dwd0tcom May 17, 2022
c8eda67
Update to v4.1.3
May 18, 2022
18114eb
Update README.md
Mallaris May 18, 2022
1f8c2f3
update
May 24, 2022
a40b895
Merge pull request #356 from Eisbison/update
Mallaris May 24, 2022
5b89ee0
update
Jun 23, 2022
598aa73
Update README.md
Mallaris Jun 23, 2022
f87e7b8
Merge pull request #376 from Eisbison/v4.1.5
Mallaris Jun 23, 2022
5829cb3
Update 4.1.6
Jul 11, 2022
d6c5c2f
Update FUNDING.yml
dwd0tcom Aug 1, 2022
af4b339
List 7.12 as compatible in the readme
miniduikboot Aug 8, 2022
639cca8
Merge pull request #395 from miniduikboot/fix/7.12
Mallaris Aug 8, 2022
1814a69
Update v4.1.7
Aug 25, 2022
8243ded
Update to v4.2.0
Oct 26, 2022
625d192
Update README.md
Mallaris Oct 26, 2022
2fc4d59
Update README.md
Mallaris Oct 26, 2022
aa8f436
update to v4.2.1
Jan 8, 2023
a57e132
Update v4.2.1 (with fixed merge issues)
gendelo3 Jan 9, 2023
fe30e14
Update 4.3.0
Mallaris Mar 3, 2023
373cee9
Fix merge issues. v4.3.0
gendelo3 Mar 4, 2023
cf99a88
Update build.yml
gendelo3 Mar 4, 2023
d693bbc
Fix typos and errors in Readme
gendelo3 Mar 11, 2023
af353e8
Update 4.3.1
gendelo3 Mar 31, 2023
7f76a00
Update v4.3.2
gendelo3 May 20, 2023
d253174
Update v4.3.2
gendelo3 May 20, 2023
6206f94
Update v4.3.2
gendelo3 May 20, 2023
a77e6bd
.
Mallaris May 21, 2023
607b4c3
Update v4.3.3
gendelo3 Jul 16, 2023
6f1489b
update
Mallaris Jul 16, 2023
cdb5ed5
Update nuget.config / fix build for 4.3.3
gendelo3 Jul 16, 2023
2bd94e2
Update to v4.3.4
gendelo3 Aug 19, 2023
f6cfa07
Update to v4.4.0
gendelo3 Sep 20, 2023
4565333
Update to v4.4.1
gendelo3 Sep 21, 2023
39c3e3d
Update to v4.4.2
gendelo3 Sep 29, 2023
b0fef3b
Update v4.5.0
gendelo3 Dec 15, 2023
9d65875
Update v4.5.1
gendelo3 Dec 17, 2023
8c55511
Preparation for update v4.5.2
gendelo3 Mar 11, 2024
9c36355
Preparation vor Update v4.5.3
gendelo3 May 15, 2024
834b891
Update build.yml
gendelo3 Aug 1, 2024
8e63bff
Update v4.6.0
gendelo3 Aug 1, 2024
d811d0b
Update README.md
K3ndoo Jan 16, 2025
4fdae9b
files for Update V4.7.0
gendelo3 Jan 18, 2025
21f54f9
Merge branch 'main' of github.com:TheOtherRolesAU/TheOtherRoles
gendelo3 Jan 18, 2025
ce449e0
Deleting unused files from resources
gendelo3 Jan 18, 2025
ac00d01
Update README.md
K3ndoo Jan 21, 2025
1b0868f
Update README.md
K3ndoo Jan 21, 2025
a5126c5
Update README.md
K3ndoo Jan 21, 2025
5443351
Update README.md
K3ndoo Feb 18, 2025
61a70ef
Update to v4.8.0
gendelo3 Feb 23, 2025
bc45a3a
Update README.md
gendelo3 Mar 5, 2025
b782da4
Update README.md
gendelo3 Mar 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update v4.3.2
  • Loading branch information
gendelo3 committed May 20, 2023
commit 7f76a001d568372a1ce5c7cd0756f6771c187edb
28 changes: 27 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ The [Role Assignment](#role-assignment) sections explains how the roles are bein
# Releases
| Among Us - Version| Mod Version | Link |
|----------|-------------|-----------------|
| 2023.03.28s| v4.3.2| [Download](https://github.com/Eisbison/TheOtherRoles/releases/download/v4.3.2/TheOtherRoles.zip)
| 2023.03.28s| v4.3.1| [Download](https://github.com/Eisbison/TheOtherRoles/releases/download/v4.3.1/TheOtherRoles.zip)
| 2023.02.28s| v4.3.0| [Download](https://github.com/Eisbison/TheOtherRoles/releases/download/v4.3.0/TheOtherRoles.zip)
| 2022.12.14s| v4.2.1| [Download](https://github.com/Eisbison/TheOtherRoles/releases/download/v4.2.1/TheOtherRoles.zip)
Expand Down Expand Up @@ -121,9 +122,21 @@ The [Role Assignment](#role-assignment) sections explains how the roles are bein
# Changelog
<details>
<summary>Click to show the Changelog</summary>

**Version 4.3.2**
- Added new option to Thief: Can Guess To Steal Role
- Added new option to Guesser Mode: Force Thief Guesser
- Added the death reason to the additional infos for ghosts.
- Added the possibility to copy and paste the settings for the current preset to / from the clipboard (buttons)
- Added a feature to the swapper: The swap resets if one of the target players is guessed or disconnects
- Fixed the Security Guard Mobile Cams and the Hacker Vitals Panel when playing on LevelImposter maps (don't rename the panels for now, please)
- Fixed several bugs in Vanilla Hide'n'Seek
- Fixed an issue where Crewmate "Fill" did not work correcty if min neutrals was set bigger than max neutrals
- Fixed a bug where the colorblind-text of the ninja remained visible when using the ninja-ability
- Fixed a bug where the bomb could explode in a meeting due to desync and bad timing
- Fixed a bug where the host Eraser could guess erased players

**Version 4.3.1**
- Update to Among Us 2023.3.28
- Added new options (Information mode - Chat/Map/Both, Roles - Evil Killing / Evil) to the snitch and fixed bugs affecting the snitch
- Changed the maximum amount per modifier to 15 (where applicable)
- Changed the colorblind text and player name to be behind certain objects again (rock on Polus etc.)
Expand Down Expand Up @@ -1340,6 +1353,11 @@ If the Thief tries to kill any non-killing role (Crewmate or Neutral), they die
- If the option "Thief Can Kill Sheriff" is On, the Thief has tasks which will ONLY begin to count, if they kill
the Sheriff. While the Thief hasn't fired, their tasks do not count towards the taskwin.
- If the option "Thief Can Kill Sheriff" is Off, the Thief will not have tasks.
<<<<<<< HEAD
=======
- If the Thief kills the witch, already witched players stay witched (except for the Thief).
- If the Thief can guess to steal the role, guessing the witch will either save all targets or none of the targets (depending on the setting for Witch: Voting The Witch Saves All The Targets)
>>>>>>> dev/main

### Game Options
| Name | Description |
Expand All @@ -1349,6 +1367,10 @@ the Sheriff. While the Thief hasn't fired, their tasks do not count towards the
| Thief Can Kill Sheriff | -
| Thief Has Impostor Vision | -
| Thief Can Use Vents | -
<<<<<<< HEAD
=======
| Thief Can Guess To Steal Role | -
>>>>>>> dev/main
-----------------------

## Mayor
Expand Down Expand Up @@ -1992,6 +2014,10 @@ Players can additionally have a modifier, if enabled (e.g. Medic Guesser Mini).
| Number of Neutral Guessers | -
| Number of Impostor Guessers | -
| Force Jackal Guesser | If set to "On", the first neutral role who will be Guesser is the Jackal.
<<<<<<< HEAD
=======
| Force Thief Guesser | If set to "On", the first (or second if Force Jackal Guesser) neutral role who will be Guesser is the Thief.
>>>>>>> dev/main
| Guessers Can Have A Modifier | -
| Guesser Number Of Shots | -
| Guesser Can Shoot Multiple Times Per Meeting | -
Expand Down
8 changes: 4 additions & 4 deletions TheOtherRoles/Buttons.cs
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ public static void createButtonsPostfix(HudManager __instance) {
medicShieldButton = new CustomButton(
() => {
medicShieldButton.Timer = 0f;

MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(CachedPlayer.LocalPlayer.PlayerControl.NetId, Medic.setShieldAfterMeeting ? (byte)CustomRPC.SetFutureShielded : (byte)CustomRPC.MedicSetShielded, Hazel.SendOption.Reliable, -1);
writer.Write(Medic.currentTarget.PlayerId);
AmongUsClient.Instance.FinishRpcImmediately(writer);
Expand All @@ -474,7 +474,7 @@ public static void createButtonsPostfix(HudManager __instance) {
Medic.meetingAfterShielding = false;

SoundEffectsManager.play("medicShield");
},
},
() => { return Medic.medic != null && Medic.medic == CachedPlayer.LocalPlayer.PlayerControl && !CachedPlayer.LocalPlayer.Data.IsDead; },
() => { return !Medic.usedShield && Medic.currentTarget && CachedPlayer.LocalPlayer.PlayerControl.CanMove; },
() => {},
Expand Down Expand Up @@ -650,7 +650,7 @@ public static void createButtonsPostfix(HudManager __instance) {
() => {
if (GameOptionsManager.Instance.currentNormalGameOptions.MapId != 1) {
if (Hacker.vitals == null) {
var e = UnityEngine.Object.FindObjectsOfType<SystemConsole>().FirstOrDefault(x => x.gameObject.name.Contains("panel_vitals"));
var e = UnityEngine.Object.FindObjectsOfType<SystemConsole>().FirstOrDefault(x => x.gameObject.name.Contains("panel_vitals") || x.gameObject.name.Contains("Vitals"));
if (e == null || Camera.main == null) return;
Hacker.vitals = UnityEngine.Object.Instantiate(e.MinigamePrefab, Camera.main.transform, false);
}
Expand Down Expand Up @@ -1262,7 +1262,7 @@ public static void createButtonsPostfix(HudManager __instance) {
if (GameOptionsManager.Instance.currentNormalGameOptions.MapId != 1) {
if (SecurityGuard.minigame == null) {
byte mapId = GameOptionsManager.Instance.currentNormalGameOptions.MapId;
var e = UnityEngine.Object.FindObjectsOfType<SystemConsole>().FirstOrDefault(x => x.gameObject.name.Contains("Surv_Panel"));
var e = UnityEngine.Object.FindObjectsOfType<SystemConsole>().FirstOrDefault(x => x.gameObject.name.Contains("Surv_Panel") || x.name.Contains("Cam"));
if (mapId == 0 || mapId == 3) e = UnityEngine.Object.FindObjectsOfType<SystemConsole>().FirstOrDefault(x => x.gameObject.name.Contains("SurvConsole"));
else if (mapId == 4) e = UnityEngine.Object.FindObjectsOfType<SystemConsole>().FirstOrDefault(x => x.gameObject.name.Contains("task_cams"));
if (e == null || Camera.main == null) return;
Expand Down
4 changes: 4 additions & 0 deletions TheOtherRoles/CustomOptionHolder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ public class CustomOptionHolder {
public static CustomOption thiefHasImpVision;
public static CustomOption thiefCanUseVents;
public static CustomOption thiefCanKillSheriff;
public static CustomOption thiefCanStealWithGuess;


public static CustomOption trapperSpawnRate;
Expand Down Expand Up @@ -322,6 +323,7 @@ public class CustomOptionHolder {
public static CustomOption guesserGamemodeNeutralNumber;
public static CustomOption guesserGamemodeImpNumber;
public static CustomOption guesserForceJackalGuesser;
public static CustomOption guesserForceThiefGuesser;
public static CustomOption guesserGamemodeHaveModifier;
public static CustomOption guesserGamemodeNumberOfShots;
public static CustomOption guesserGamemodeHasMultipleShotsPerMeeting;
Expand Down Expand Up @@ -613,6 +615,7 @@ public static void Load() {
thiefCanKillSheriff = CustomOption.Create(402, Types.Neutral, "Thief Can Kill Sheriff", true, thiefSpawnRate);
thiefHasImpVision = CustomOption.Create(403, Types.Neutral, "Thief Has Impostor Vision", true, thiefSpawnRate);
thiefCanUseVents = CustomOption.Create(404, Types.Neutral, "Thief Can Use Vents", true, thiefSpawnRate);
thiefCanStealWithGuess = CustomOption.Create(405, Types.Neutral, "Thief Can Guess To Steal A Role (If Guesser)", false, thiefSpawnRate);

trapperSpawnRate = CustomOption.Create(410, Types.Crewmate, cs(Trapper.color, "Trapper"), rates, null, true);
trapperCooldown = CustomOption.Create(420, Types.Crewmate, "Trapper Cooldown", 30f, 5f, 120f, 5f, trapperSpawnRate);
Expand Down Expand Up @@ -675,6 +678,7 @@ public static void Load() {
guesserGamemodeNeutralNumber = CustomOption.Create(2002, Types.Guesser, cs(Guesser.color, "Number of Neutral Guessers"), 15f, 1f, 15f, 1f, null, true);
guesserGamemodeImpNumber = CustomOption.Create(2003, Types.Guesser, cs(Guesser.color, "Number of Impostor Guessers"), 15f, 1f, 15f, 1f, null, true);
guesserForceJackalGuesser = CustomOption.Create(2007, Types.Guesser, "Force Jackal Guesser", false, null, true);
guesserForceThiefGuesser = CustomOption.Create(2011, Types.Guesser, "Force Thief Guesser", false, null, true);
guesserGamemodeHaveModifier = CustomOption.Create(2004, Types.Guesser, "Guessers Can Have A Modifier", true, null);
guesserGamemodeNumberOfShots = CustomOption.Create(2005, Types.Guesser, "Guesser Number Of Shots", 3f, 1f, 15f, 1f, null);
guesserGamemodeHasMultipleShotsPerMeeting = CustomOption.Create(2006, Types.Guesser, "Guesser Can Shoot Multiple Times Per Meeting", false, null);
Expand Down
31 changes: 29 additions & 2 deletions TheOtherRoles/GameHistory.cs
Original file line number Diff line number Diff line change
@@ -1,23 +1,37 @@
using System.Collections.Generic;
using System;
using UnityEngine;
using System.Linq;

namespace TheOtherRoles {
public class DeadPlayer
{
public enum CustomDeathReason {
Exile,
Kill,
Disconnect,
Guess,
Shift,
LawyerSuicide,
LoverSuicide, // not necessary
WitchExile,
Bomb
};

public PlayerControl player;
public DateTime timeOfDeath;
public DeathReason deathReason;
public CustomDeathReason deathReason;
public PlayerControl killerIfExisting;
public bool wasCleaned;

public DeadPlayer(PlayerControl player, DateTime timeOfDeath, DeathReason deathReason, PlayerControl killerIfExisting) {
public DeadPlayer(PlayerControl player, DateTime timeOfDeath, CustomDeathReason deathReason, PlayerControl killerIfExisting) {
this.player = player;
this.timeOfDeath = timeOfDeath;
this.deathReason = deathReason;
this.killerIfExisting = killerIfExisting;
this.wasCleaned = false;
}

}

static class GameHistory {
Expand All @@ -28,5 +42,18 @@ public static void clearGameHistory() {
localPlayerPositions = new List<Tuple<Vector3, bool>>();
deadPlayers = new List<DeadPlayer>();
}

public static void overrideDeathReasonAndKiller(PlayerControl player, DeadPlayer.CustomDeathReason deathReason, PlayerControl killer = null) {
var target = deadPlayers.FirstOrDefault(x => x.player.PlayerId == player.PlayerId);
if (target != null) {
target.deathReason = deathReason;
if (killer != null) {
target.killerIfExisting = killer;
}
} else if (player != null) { // Create dead player if needed:
var dp = new DeadPlayer(player, DateTime.UtcNow, deathReason, killer);
deadPlayers.Add(dp);
}
}
}
}
7 changes: 5 additions & 2 deletions TheOtherRoles/Helpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
using System.Net;
using TheOtherRoles.CustomGameModes;
using Reactor.Utilities.Extensions;
using AmongUs.GameOptions;

namespace TheOtherRoles {

Expand Down Expand Up @@ -205,7 +206,7 @@ public static bool canBeErased(this PlayerControl player) {
}

public static bool shouldShowGhostInfo() {
return CachedPlayer.LocalPlayer.PlayerControl != null && CachedPlayer.LocalPlayer.PlayerControl.Data.IsDead && TORMapOptions.ghostsSeeInformation;
return CachedPlayer.LocalPlayer.PlayerControl != null && CachedPlayer.LocalPlayer.PlayerControl.Data.IsDead && TORMapOptions.ghostsSeeInformation || AmongUsClient.Instance.GameState == InnerNet.InnerNetClient.GameStates.Ended;
}

public static void clearAllTasks(this PlayerControl player) {
Expand Down Expand Up @@ -378,6 +379,8 @@ public static MurderAttemptResult checkMuderAttempt(PlayerControl killer, Player
if (killer == null || killer.Data == null || (killer.Data.IsDead && !ignoreIfKillerIsDead) || killer.Data.Disconnected) return MurderAttemptResult.SuppressKill; // Allow non Impostor kills compared to vanilla code
if (target == null || target.Data == null || target.Data.IsDead || target.Data.Disconnected) return MurderAttemptResult.SuppressKill; // Allow killing players in vents compared to vanilla code

if (GameOptionsManager.Instance.currentGameOptions.GameMode == GameModes.HideNSeek) return MurderAttemptResult.PerformKill;

// Handle first kill attempt
if (TORMapOptions.shieldFirstKill && TORMapOptions.firstKillPlayer == target) return MurderAttemptResult.SuppressKill;

Expand Down Expand Up @@ -417,7 +420,7 @@ public static MurderAttemptResult checkMuderAttempt(PlayerControl killer, Player
}

// Thief if hit crew only kill if setting says so, but also kill the thief.
else if (killer == Thief.thief && !target.Data.Role.IsImpostor && !new List<RoleInfo> {RoleInfo.jackal, Thief.canKillSheriff ? RoleInfo.sheriff : null, RoleInfo.sidekick }.Contains(targetRole)) {
else if (Thief.isFailedThiefKill(target, killer, targetRole)) {
Thief.suicideFlag = true;
return MurderAttemptResult.SuppressKill;
}
Expand Down
2 changes: 1 addition & 1 deletion TheOtherRoles/Main.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ namespace TheOtherRoles
public class TheOtherRolesPlugin : BasePlugin
{
public const string Id = "me.eisbison.theotherroles";
public const string VersionString = "4.3.1";
public const string VersionString = "4.3.2";
public static uint betaDays = 0; // amount of days for the build to be usable (0 for infinite!)

public static Version Version = Version.Parse(VersionString);
Expand Down
Loading