public static void Prefix(PlayerControl __instance) { if (AmongUsClient.Instance.GameState != InnerNet.InnerNetClient.GameStates.Started) { return; } //Recorder.LogInfo("PlayerControlFixedUpdatePatch"); // プレイヤー一覧取得 List <Player> players = new List <Player>(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { Player p = new Player(); p.x = player.transform.position.x; p.y = player.transform.position.y; p.z = player.transform.position.z; p.isDead = player.Data.IsDead; p.colorId = player.Data.ColorId; p.playerId = player.Data.PlayerId; p.name = player.name; List <RoleInfo> roles = RoleInfo.getRoleInfoForPlayer(player); foreach (RoleInfo rol in roles) { if (p.role.Length != 0) { p.role += ", "; } p.role += rol.name; } players.Add(p); } Recorder.GetInstance().players = players; // サボタージュ状況取得 CustomField cf = new CustomField(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.Data.IsDead == false) { foreach (PlayerTask task in player.myTasks) { if (task.TaskType == TaskTypes.FixComms) { cf.commsActive = true; } else if (task.TaskType == TaskTypes.RestoreOxy) { cf.oxyActive = true; } else if (task.TaskType == TaskTypes.ResetSeismic) { cf.reactorActive = true; } else if (task.TaskType == TaskTypes.ResetReactor) { cf.reactorActive = true; } else if (task.TaskType == TaskTypes.StopCharles) { cf.reactorActive = true; } else if (task.TaskType == TaskTypes.FixLights) { cf.lightsActive = true; } } } } Recorder.GetInstance().cf = cf; }
public static void Postfix() { Recorder.LogInfo("MeetingHudAwakePatch"); Task.Run(() => Recorder.EndDay()); }
public static void Prefix(PlayerControl __instance) { Recorder.LogInfo("PlayerControlExiledPatch"); Recorder.GetInstance().exiledPlayers.Add(__instance.PlayerId); }
public static void Postfix() { Recorder.LogInfo("MeetingHudClosePatch"); Task.Run(() => Recorder.NewDay()); }