public System.Collections.IEnumerator CoInvisPlayer(PlayerControl target) { DateTime now = DateTime.UtcNow; ImportantTextTask durationText = new ImportantTextTask(); if (target.AmOwner) { durationText = TaskInfoHandler.Instance.AddNewItem(1, $"{TaskInfoHandler.Instance.GetRoleHexColor(target)}Invisibility Cloak: {Config.InvisCloakDuration}s remaining</color></color>"); } while (true) { if (target.AmOwner) { durationText.Text = $"{TaskInfoHandler.Instance.GetRoleHexColor(target)}Invisibility Cloak: {Math.Ceiling(Config.InvisCloakDuration - (float) (DateTime.UtcNow - now).TotalSeconds)}s remaining</color></color>"; GetLocalModdedPlayer().Role?.ResetCooldowns(); } target.Visible = false; if (MeetingHud.Instance || AmongUsClient.Instance.GameState != InnerNetClient.GameStates.Started || now.AddSeconds(Config.InvisCloakDuration) < DateTime.UtcNow || ModdedPlayerById(target.PlayerId).ControllerOverride != null) { target.Visible = true; TaskInfoHandler.Instance.RemoveItem(durationText); yield break; } yield return(null); } }
public System.Collections.IEnumerator CoBlindPlayer(PlayerControl target) { DateTime now = DateTime.UtcNow; float num = 0f; target.MyPhysics.body.velocity = new Vector2(0, 0); ImportantTextTask durationText = new ImportantTextTask(); if (target.AmOwner) { durationText = TaskInfoHandler.Instance.AddNewItem(1, $"{TaskInfoHandler.Instance.GetRoleHexColor(target)}You are blinded and frozen! {Config.CrucioDuration}s remaining</color></color>"); } while (true) { if (target.AmOwner) { durationText.Text = $"{TaskInfoHandler.Instance.GetRoleHexColor(target)}You are blinded and frozen! {Math.Ceiling(Config.CrucioDuration - (float) (DateTime.UtcNow - now).TotalSeconds)}s remaining</color></color>"; target.myLight.LightRadius = Mathf.Lerp(ShipStatus.Instance.MinLightRadius, ShipStatus.Instance.MaxLightRadius, num) * PlayerControl.GameOptions.CrewLightMod; target.moveable = false; } if (MeetingHud.Instance || AmongUsClient.Instance.GameState != InnerNetClient.GameStates.Started || now.AddSeconds(Config.CrucioDuration) < DateTime.UtcNow || ModdedPlayerById(target.PlayerId).ControllerOverride != null) { target.moveable = true; TaskInfoHandler.Instance.RemoveItem(durationText); yield break; } yield return(null); } }
public System.Collections.IEnumerator CoDefensiveDuelist(PlayerControl player) { DateTime now = DateTime.UtcNow; Vector3 startingPosition = player.transform.position; ModdedPlayerById(player.PlayerId).Immortal = true; ImportantTextTask durationText = new ImportantTextTask(); if (player.AmOwner) { durationText = TaskInfoHandler.Instance.AddNewItem(1, $"{TaskInfoHandler.Instance.GetRoleHexColor(player)}Defensive Duelist: {Config.DefensiveDuelistDuration}s remaining</color></color>"); } while (true) { if (MeetingHud.Instance || AmongUsClient.Instance.GameState != InnerNetClient.GameStates.Started || now.AddSeconds(Config.DefensiveDuelistDuration) < DateTime.UtcNow || ModdedPlayerById(player.PlayerId).ControllerOverride != null) { ModdedPlayerById(player.PlayerId).Immortal = false; TaskInfoHandler.Instance.RemoveItem(durationText); yield break; } if (player.AmOwner) { player.transform.position = startingPosition; player.MyPhysics.body.velocity = new Vector2(0, 0); durationText.Text = $"{TaskInfoHandler.Instance.GetRoleHexColor(player)}Defensive Duelist: {Math.Ceiling(Config.DefensiveDuelistDuration - (float) (DateTime.UtcNow - now).TotalSeconds)}s remaining</color></color>"; GetLocalModdedPlayer().Role?.ResetCooldowns(); } yield return(null); } }
public static void GenTaskText(this ImportantTextTask task, PlayerControl __instance) { var role = __instance.Data.IsImpostor ? "Loving [FF0000FF]Impostor[FF80D5FF]" : "Lover"; var lover = __instance.OtherLover(); task.Text = $"[FF80D5FF]Role: {role}\nStay alive with your love {lover.name} \nand win together[]"; }
public static bool Prefix(ImportantTextTask __instance, StringBuilder DOJIEDCICAJ) { if (IsCultistUsed && CultistMod.IsCultist(PlayerControl.LocalPlayer.PlayerId)) { DOJIEDCICAJ.AppendLine("[6414C8FF]" + __instance.Text + "[]"); return(false); } return(true); }
public ImportantTextTask AddNewItem(int index, string text) { GameObject roleTextObj = new GameObject(); ImportantTextTask textTask = roleTextObj.AddComponent <ImportantTextTask>(); textTask.transform.SetParent(PlayerControl.LocalPlayer.transform, false); textTask.Text = text; textTask.Index = 0; PlayerControl.LocalPlayer.myTasks.Insert(index, textTask); AllInfo.Add(textTask); return(textTask); }
public System.Collections.IEnumerator CoActivateHourglass(PlayerControl player) { DateTime now = DateTime.UtcNow; Vector2 startPosition = player.transform.position; ImportantTextTask durationText = new ImportantTextTask(); ModdedPlayerById(player.PlayerId).CanSeeAllRolesOveridden = true; if (player.AmOwner) { durationText = TaskInfoHandler.Instance.AddNewItem(1, $"{TaskInfoHandler.Instance.GetRoleHexColor(player)}Time Turner will activate in {Config.HourglassTimer}s</color></color>"); } while (true) { if (player.AmOwner) { durationText.Text = $"{TaskInfoHandler.Instance.GetRoleHexColor(player)}Time Turner will activate in {Math.Ceiling(Config.HourglassTimer - (float) (DateTime.UtcNow - now).TotalSeconds)}s</color></color>"; GetLocalModdedPlayer().Role?.ResetCooldowns(); } if (MeetingHud.Instance || AmongUsClient.Instance.GameState != InnerNetClient.GameStates.Started || now.AddSeconds(Config.HourglassTimer) < DateTime.UtcNow) { TaskInfoHandler.Instance.RemoveItem(durationText); if (ModdedPlayerById(player.PlayerId).KilledByCurse) { yield break; } if (player.Data.IsDead) { RpcRevivePlayer(player); } if (MeetingHud.Instance) { yield break; } RpcTeleportPlayer(player, startPosition); ModdedPlayerById(player.PlayerId).CanSeeAllRolesOveridden = false; yield break; } yield return(null); } }
public System.Collections.IEnumerator CoControlPlayer(PlayerControl controller, PlayerControl target) { DateTime now = DateTime.UtcNow; ControlKillUsed = false; Instance.ModdedPlayerById(target.PlayerId).ControllerOverride = Instance.ModdedPlayerById(controller.PlayerId); ((Bellatrix)Instance.ModdedPlayerById(controller.PlayerId).Role).MindControlledPlayer = Instance.ModdedPlayerById(target.PlayerId); ImportantTextTask durationText = new ImportantTextTask(); if (controller.AmOwner) { Camera.main.GetComponent <FollowerCamera>().Target = target; Camera.main.GetComponent <FollowerCamera>().shakeAmount = 0; durationText = TaskInfoHandler.Instance.AddNewItem(1, $"{TaskInfoHandler.Instance.GetRoleHexColor(controller)}You are mind-controlling \"{target.Data.PlayerName}\"! {Config.ImperioDuration}s remaining</color></color>"); } target.moveable = true; controller.moveable = true; if (target.AmOwner || controller.AmOwner) { PlayerControl.LocalPlayer.MyPhysics.body.velocity = new Vector2(0, 0); } while (true) { if (target.Data.IsDead || MeetingHud.Instance || AmongUsClient.Instance.GameState != InnerNetClient.GameStates.Started || now.AddSeconds(Config.ImperioDuration) < DateTime.UtcNow) { if (target.AmOwner) { target.moveable = true; } else if (controller.AmOwner) { TaskInfoHandler.Instance.RemoveItem(durationText); controller.moveable = true; Camera.main.GetComponent <FollowerCamera>().Target = controller; controller.myLight.transform.position = controller.transform.position; PlayerControl.LocalPlayer.SetKillTimer(PlayerControl.GameOptions.KillCooldown); } Instance.ModdedPlayerById(target.PlayerId).ControllerOverride = null; ((Bellatrix)Instance.ModdedPlayerById(controller.PlayerId).Role).MindControlledPlayer = null; yield break; } if (controller.AmOwner || target.AmOwner) { if (Minigame.Instance) { Minigame.Instance.Close(); } PlayerControl.LocalPlayer.moveable = false; if (controller.AmOwner) { durationText.Text = $"{TaskInfoHandler.Instance.GetRoleHexColor(controller)}You are mind-controlling \"{target.Data.PlayerName}\"! {Math.Ceiling(Config.ImperioDuration - (float) (DateTime.UtcNow - now).TotalSeconds)}s remaining</color></color>"; controller.myLight.transform.position = target.transform.position; HudManager.Instance.KillButton.SetCoolDown(0f, PlayerControl.GameOptions.KillCooldown); if (ControlKillUsed) { HudManager.Instance.KillButton.SetTarget(null); } else { HudManager.Instance.KillButton.SetTarget(target.FindClosestTarget()); } } } yield return(null); } }
public void RemoveItem(ImportantTextTask item) { item.Destroy(); PlayerControl.LocalPlayer.myTasks.Remove(item); }