public override void ReportBody(PlayerControl Reporter, DeadPlayer Body) { if (!ShowReports) { return; } if (!IsLocalPlayer()) { return; } if (Reporter.PlayerId != Player.PlayerId) { return; } var ReportMessage = BodyReport.ParseBodyReport(new BodyReport { Killer = PlayerTools.GetPlayerById(Body.KillerId), Reporter = Reporter, KillAge = (float)(DateTime.UtcNow - Body.KillTime).TotalMilliseconds, DeathReason = Body.DeathReason }); if (!string.IsNullOrWhiteSpace(ReportMessage)) { HudManager.Instance.Chat.AddSimpleChat(ReportMessage); if (ReportMessage.IndexOf("who", StringComparison.OrdinalIgnoreCase) >= 0) { DestroyableSingleton <Telemetry> .Instance.SendWho(); } } }
public void RespawnTick(TriggerArgs args) { if (m_deadPlayers.Count > 0) { for (int i = m_deadPlayers.Count - 1; i >= 0; i--) { // traverse list backwards for easy removal of elements in list DeadPlayer deadPlayer = m_deadPlayers[i]; if (deadPlayer.Timestamp + USER_RESPAWN_DELAY_MS < Game.TotalElapsedGameTime) { // time to respawn this user // remove entry from list over deadPlayers m_deadPlayers.RemoveAt(i); // remove old body (if any) if (deadPlayer.DeadBody != null) { if (GIB_CORPSES) { deadPlayer.DeadBody.Gib(); } else { (deadPlayer.DeadBody).Remove(); } } // respawn user IPlayer ply = deadPlayer.User.GetPlayer(); if (((ply == null) || (ply.IsDead))) { SpawnUser(deadPlayer.User, deadPlayer.Team); } } } } }
static void Postfix(VitalsMinigame __instance) { // Hacker show time since death if (Hacker.hacker != null && Hacker.hacker == PlayerControl.LocalPlayer && Hacker.hackerTimer > 0) { for (int k = 0; k < __instance.vitals.Length; k++) { VitalsPanel vitalsPanel = __instance.vitals[k]; GameData.PlayerInfo player = GameData.Instance.AllPlayers[k]; // Hacker update if (vitalsPanel.IsDead) { DeadPlayer deadPlayer = deadPlayers?.Where(x => x.player?.PlayerId == player?.PlayerId)?.FirstOrDefault(); if (deadPlayer != null && deadPlayer.timeOfDeath != null && k < hackerTexts.Count && hackerTexts[k] != null) { float timeSinceDeath = ((float)(DateTime.UtcNow - deadPlayer.timeOfDeath).TotalMilliseconds); hackerTexts[k].gameObject.SetActive(true); hackerTexts[k].text = Math.Round(timeSinceDeath / 1000) + "s"; } } } } else { foreach (TMPro.TextMeshPro text in hackerTexts) { if (text != null && text.gameObject != null) { text.gameObject.SetActive(false); } } } }
private static void AddDeathReason(DeadPlayer deadPlayer, string reasons) { var deathReasons = reasons.Split(";"); var detail = deathReasons[PopeyesRolesModPlugin.Random.Next(0, deathReasons.Length)]; deadPlayer.DeathDetails.Add(detail); }
public void playerDied(KeyCode _tag, Color _col, GameObject lastCollision) { GameObject wc = GameObject.Find("WinnerChecker"); WinnerChecker wcscript = wc.GetComponent <WinnerChecker>(); if (lastCollision != null && lastCollision.tag == "deadplayer" && wcscript.getNumPlayersActive() > 1) { KeyCode rpk; Color rpc; DeadPlayer rpscript = lastCollision.GetComponent <DeadPlayer>(); rpscript.getInfo(out rpk, out rpc); DeadPlayerInfo respawnPlayerInfo = new DeadPlayerInfo(rpk, rpc); if (!mDeadPlayers.Contains(respawnPlayerInfo)) { obstaclePrefabs.Add(deadPlayer); } else { mDeadPlayers.Remove(respawnPlayerInfo); GameObject ps = GameObject.Find("PlayerSpawner"); PlayerSpawner psscript = ps.GetComponent <PlayerSpawner>(); psscript.respawnPlayer(rpk, rpc); } mDeadPlayers.Add(new DeadPlayerInfo(_tag, _col)); } else { mDeadPlayers.Add(new DeadPlayerInfo(_tag, _col)); obstaclePrefabs.Add(deadPlayer); } }
public static void Postfix(PlayerControl __instance) { // Collect dead player info DeadPlayer deadPlayer = new DeadPlayer(__instance, DateTime.UtcNow, DeathReason.Exile, null); GameHistory.deadPlayers.Add(deadPlayer); }
public static void Postfix(PlayerControl __instance, [HarmonyArgument(0)] PlayerControl target) { var murderer = __instance; if (!murderer.HasPlayerRole(Role.Impostor) && !murderer.HasPlayerRole(Role.ShapeShifter)) { murderer.Data.IsImpostor = false; } if (PlayerControl.LocalPlayer.HasPlayerRole(Role.Detective)) { var playerData = PlayerControl.LocalPlayer.GetPlayerData(); var deadPlayer = new DeadPlayer { Player = target, Murderer = murderer }; playerData.DeadPlayers.Add(deadPlayer); if (murderer.PlayerId == target.PlayerId) { // suicide var deathReasons = Properties.Resources.SuicideDeath; AddDeathReason(deadPlayer, deathReasons); } else { // normal murder if (murderer.GetComponent <MorphBehaviour>()) { var deathReasons = Properties.Resources.ShapeShifterDeath; AddDeathReason(deadPlayer, deathReasons); } else if (murderer.HasPlayerRole(Role.Hunter)) { var deathReasons = Properties.Resources.HunterDeath; AddDeathReason(deadPlayer, deathReasons); } else if (murderer.Data.IsImpostor) { var deathReasons = Properties.Resources.ImpostorDeath; AddDeathReason(deadPlayer, deathReasons); } } } if (target.HasPlayerRole(Role.Detective)) { PlayerDataManager.Instance.ShieldedPlayer = null; foreach (var player in PlayerControl.AllPlayerControls) { var shield = player.GetComponent <ShieldBehaviour>(); if (shield) { shield.Stop(); } } } }
// TODO: Move Functionality to Sheriff-Class and only call from here public static void Postfix(PlayerControl __instance, [HarmonyArgument(0)] GameData.PlayerInfo target) { if (__instance == null || LocalPlayer == null || DeadPlayers.Count <= 0) { return; } if (!(LocalRole is Sheriff sheriff)) { return; } DeadPlayer deadPlayer = DeadPlayers.FirstOrDefault(x => target != null && x.Victim?.PlayerId == target.PlayerId); if (deadPlayer == null) { return; } if (__instance.PlayerId != sheriff.Owner.PlayerId) { return; } List <string> hints = deadPlayer.hintMessages.ToList(); var hintAmount = (int)(Main.OptionSheriffMaxHintAmount - (int)(deadPlayer.KillAge / 1000F / Main.OptionSheriffHintDecreaseInterval)); if (hintAmount < Main.OptionSheriffMinHintAmount) { hintAmount = (int)Main.OptionSheriffMinHintAmount; } for (var i = 0; i < hintAmount; i++) { string hint = hints[Rng.Next(hints.Count)]; hints.Remove(hint); if (string.IsNullOrWhiteSpace(hint)) { return; } if (AmongUsClient.Instance.AmClient) { HudManager.Instance?.Chat.AddChat(LocalPlayer, $"{deadPlayer.Victim.Data.PlayerName}: {hint}"); } if (hint.IndexOf("who", StringComparison.OrdinalIgnoreCase) >= 0) { Telemetry.Instance?.SendWho(); } } }
//Utility function to end the game and display the Score private void ENDGAME() { //Play an ending sound DeadPlayer.Play(); timer.Stop(); UpdatePaintTimer.Stop(); MessageBox.Show("You Lose! Your score is " + Score.ToString(), "Game Over", MessageBoxButton.OK); this.Close(); }
private void death() { DeadPlayer dead = Instantiate(DeadPlayer, transform.position, transform.rotation).GetComponent <DeadPlayer>(); dead.fallGravity = controller.fallGravity; dead.setVelocity(rb2d.velocity); transform.position = respawnPoint.transform.position; rb2d.velocity = Vector3.zero; StartCoroutine("respawn"); }
public static void Postfix(PlayerControl __instance, [HarmonyArgument(0)] PlayerControl target) { // Collect dead player info DeadPlayer deadPlayer = new DeadPlayer(target, DateTime.UtcNow, DeathReason.Kill, __instance); GameHistory.deadPlayers.Add(deadPlayer); // Reset killer to crewmate if resetToCrewmate if (resetToCrewmate) { __instance.Data.IsImpostor = false; } if (resetToDead) { __instance.Data.IsDead = true; } }
void PropagateDeadPlayer(NetworkPlayer np) { //DeadPlayer deadP = new DeadPlayer(GetPlayerObjectFromNP(np)); //if(!m_deadPlayers.Contains(deadP)) //m_deadPlayers.Add(deadP); string name = GetNameFromNetworkPlayer(np); Debug.Log("Recieved notification that player: " + np + ", aka '" + name + "' has died."); DeadPlayer deadP = new DeadPlayer(GetPlayerObjectFromNP(np)); m_deadPlayers.Add(deadP); if (GetPlayerFromNetworkPlayer(np) != null) { Destroy(GetPlayerFromNetworkPlayer(np)); } }
private bool spawnObstacle() { if (obstaclePrefabs.Count == 0) { return(false); } mTimeSinceLastObstacle += Time.deltaTime; mSequenceTimer += Time.deltaTime; if (mSequenceTimer > obstacleTypeTimer * mObstacleSequenceTypes && mObstacleSequenceTypes < obstacleSequences.Count) { mSequenceTimer = 0; mObstacleSequenceTypes++; } if (mRng.Next(0, 100) < obsPercChance && mTimeSinceLastObstacle > obstacleTimeLimit) { int itemType = mRng.Next(0, obstaclePrefabs.Count); if (obstaclePrefabs[itemType] == deadPlayer) { GameObject newItem = (GameObject)Instantiate(obstaclePrefabs[itemType]); int chosenDeadPlayer = mRng.Next(0, mDeadPlayers.Count); DeadPlayer deadScript = newItem.GetComponent <DeadPlayer>(); deadScript.setInfo(mDeadPlayers[chosenDeadPlayer].name, mDeadPlayers[chosenDeadPlayer].colour); newItem.transform.position = new Vector2(Camera.main.transform.position.x + spawnAheadDistance, deadPlayer.transform.position.y); mSpawnedItems.Add(newItem); } else { List <GameObject> newObstacles = generateObstacleSequence(); mSpawnedItems.AddRange(newObstacles); } mTimeSinceLastObstacle = 0; return(true); } return(false); }
//handle the murder after it's ran public static void Postfix(PlayerControl __instance, PlayerControl PAIBDFDMIGK) { var deadBody = new DeadPlayer { PlayerId = PAIBDFDMIGK.PlayerId, KillerId = __instance.PlayerId, KillTime = DateTime.UtcNow, DeathReason = DeathReason.Kill }; if (__instance.isPlayerRole(Role.Officer)) { __instance.Data.IsImpostor = false; } if (__instance.PlayerId == PAIBDFDMIGK.PlayerId) { deadBody.DeathReason = (DeathReason)3; } killedPlayers.Add(deadBody); }
private void explode(Vector2 top, Vector2 bottom) { audio.PlayOneShot(explosion); var hit = Physics2D.CircleCastAll(transform.position, 5, Vector2.zero, 0, explosionLayers); foreach (var wall in hit) // I WANNA PUKE; { wall.transform.GetComponent <Rigidbody2D>().bodyType = RigidbodyType2D.Dynamic; } DeadPlayer legsHalf = Instantiate(legs, transform.position, transform.rotation).GetComponent <DeadPlayer>(); legsHalf.fallGravity = controller.fallGravity; legsHalf.setVelocity(bottom); DeadPlayer torsoHalf = Instantiate(torso, transform.position, transform.rotation).GetComponent <DeadPlayer>(); torsoHalf.fallGravity = controller.fallGravity; torsoHalf.setVelocity(top); transform.position = respawnPoint.transform.position; rb2d.velocity = Vector3.zero; StartCoroutine("respawn"); }
private static void MurderPlayer( PlayerVoteArea voteArea, PlayerControl player, bool checkLover = true ) { var hudManager = DestroyableSingleton <HudManager> .Instance; if (checkLover) { SoundManager.Instance.PlaySound(player.KillSfx, false, 0.8f); hudManager.KillOverlay.ShowKillAnimation(player.Data, player.Data); } var amOwner = player.AmOwner; if (amOwner) { hudManager.ShadowQuad.gameObject.SetActive(false); player.nameText.GetComponent <MeshRenderer>().material.SetInt("_Mask", 0); player.RpcSetScanner(false); ImportantTextTask importantTextTask = new GameObject("_Player").AddComponent <ImportantTextTask>(); importantTextTask.transform.SetParent(AmongUsClient.Instance.transform, false); if (!PlayerControl.GameOptions.GhostsDoTasks) { for (int i = 0; i < player.myTasks.Count; i++) { PlayerTask playerTask = player.myTasks.ToArray()[i]; playerTask.OnRemove(); Object.Destroy(playerTask.gameObject); } player.myTasks.Clear(); importantTextTask.Text = DestroyableSingleton <TranslationController> .Instance.GetString( StringNames.GhostIgnoreTasks, new UnhollowerBaseLib.Il2CppReferenceArray <Il2CppSystem.Object>(0) ); } else { importantTextTask.Text = DestroyableSingleton <TranslationController> .Instance.GetString( StringNames.GhostDoTasks, new UnhollowerBaseLib.Il2CppReferenceArray <Il2CppSystem.Object>(0)); } player.myTasks.Insert(0, importantTextTask); if (player.Is(RoleEnum.Swapper)) { var buttons = Role.GetRole <Swapper>(player).Buttons; foreach (var button in buttons) { button.SetActive(false); button.GetComponent <PassiveButton>().OnClick = new Button.ButtonClickedEvent(); } } } player.Die(DeathReason.Kill); if (checkLover && player.isLover() && CustomGameOptions.BothLoversDie) { MurderPlayer(Role.GetRole <Lover>(player).OtherLover.Player, false); } var meetingHud = MeetingHud.Instance; if (amOwner) { meetingHud.SetForegroundForDead(); } var deadPlayer = new DeadPlayer { PlayerId = player.PlayerId, KillerId = player.PlayerId, KillTime = System.DateTime.UtcNow, }; Murder.KilledPlayers.Add(deadPlayer); if (voteArea == null) { return; } if (voteArea.DidVote) { voteArea.UnsetVote(); } voteArea.AmDead = true; voteArea.Overlay.gameObject.SetActive(true); voteArea.Overlay.color = Color.white; voteArea.XMark.gameObject.SetActive(true); voteArea.XMark.transform.localScale = Vector3.one; voteArea.Buttons.SetActive(false); var amHost = AmongUsClient.Instance.AmHost; foreach (var playerVoteArea in meetingHud.playerStates) { if (playerVoteArea.VotedFor != player.PlayerId) { continue; } playerVoteArea.UnsetVote(); var voteAreaPlayer = Utils.PlayerById(playerVoteArea.TargetPlayerId); if (!voteAreaPlayer.AmOwner) { continue; } meetingHud.ClearVote(); } if (!amHost) { return; } foreach (var role in Role.GetRoles(RoleEnum.Mayor)) { var mayor = (Mayor)role; if (role.Player.PlayerId == player.PlayerId) { mayor.ExtraVotes.Clear(); } else { var votesRegained = mayor.ExtraVotes.RemoveAll(x => x == player.PlayerId); if (mayor.Player == PlayerControl.LocalPlayer) { mayor.VoteBank += votesRegained; } var writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.AddMayorVoteBank, SendOption.Reliable, -1); writer.Write(mayor.Player.PlayerId); writer.Write(votesRegained); AmongUsClient.Instance.FinishRpcImmediately(writer); } } meetingHud.CheckForEndVoting(); }
public virtual void ReportBody(PlayerControl Reporter, DeadPlayer Body) { }
public virtual void PostMurderPlayer(PlayerControl Killer, PlayerControl Target, DeadPlayer Body) { }
public override void PostMurderPlayer(PlayerControl Killer, PlayerControl Target, DeadPlayer Body) { if (Player == null) { return; } if (Killer == Player) { Killer.Data.IsImpostor = false; } Body.DeathReason = (DeathReason)4; }
public async Task LoadObjectsTask() { string curSceneName = SceneManager.GetActiveScene().name.ToLower(); while (!curSceneName.Contains("menu") && !curSceneName.Contains("new")) { await Task.Delay(4000); if (SceneManager.sceneLoaded != null) { Main.gameController = GameObject.FindObjectOfType <GameController>(); await Task.Delay(150); Main.levelController = GameObject.FindObjectOfType <LevelController>(); await Task.Delay(150); Main.levelSelectionManager = GameObject.FindObjectOfType <LevelSelectionManager>(); await Task.Delay(150); Main.walkieTalkie = GameObject.FindObjectOfType <WalkieTalkie>(); await Task.Delay(150); Main.handCamera = GameObject.FindObjectOfType <HandCamera>(); await Task.Delay(150); Main.inventoryManager = GameObject.FindObjectOfType <InventoryManager>(); await Task.Delay(150); Main.liftButton = GameObject.FindObjectOfType <LiftButton>(); await Task.Delay(150); Main.contract = GameObject.FindObjectOfType <Contract>(); await Task.Delay(150); Main.pCMenu = GameObject.FindObjectOfType <PCMenu>(); await Task.Delay(150); Main.exitLevel = GameObject.FindObjectOfType <ExitLevel>(); await Task.Delay(150); Main.ghostAI = GameObject.FindObjectOfType <GhostAI>(); await Task.Delay(150); Main.lightSwitch = GameObject.FindObjectOfType <LightSwitch>(); await Task.Delay(150); Main.light = GameObject.FindObjectOfType <Light>(); await Task.Delay(150); Main.dNAEvidences = Enumerable.ToList <DNAEvidence>(GameObject.FindObjectsOfType <DNAEvidence>()); await Task.Delay(150); Main.contracts = Enumerable.ToList <Contract>(GameObject.FindObjectsOfType <Contract>()); await Task.Delay(150); Main.items = Enumerable.ToList <InventoryItem>(GameObject.FindObjectsOfType <InventoryItem>()); await Task.Delay(150); Main.players = Enumerable.ToList <Player>(GameObject.FindObjectsOfType <Player>()); await Task.Delay(150); Main.photonView = GameObject.FindObjectOfType <PhotonView>(); await Task.Delay(150); Main.ghostInfo = GameObject.FindObjectOfType <GhostInfo>(); await Task.Delay(150); Main.deadPlayer = GameObject.FindObjectOfType <DeadPlayer>(); await Task.Delay(150); Main.player = GameObject.FindObjectOfType <Player>(); await Task.Delay(150); Main.rigidbody = GameObject.FindObjectOfType <Rigidbody>(); await Task.Delay(150); Main.itemSpawner = GameObject.FindObjectOfType <ItemSpawner>(); await Task.Delay(150); Main.ghostInteraction = GameObject.FindObjectOfType <GhostInteraction>(); await Task.Delay(150); //Main.baseController = GameObject.FindObjectOfType<BaseController>(); await Task.Delay(150); Main.ouijaBoard = GameObject.FindObjectOfType <OuijaBoard>(); await Task.Delay(150); Main.ouijaBoards = Enumerable.ToList <OuijaBoard>(GameObject.FindObjectsOfType <OuijaBoard>()); await Task.Delay(150); Main.keys = Enumerable.ToList <Key>(GameObject.FindObjectsOfType <Key>()); await Task.Delay(150); Main.ghosts = Enumerable.ToList <GhostAI>(GameObject.FindObjectsOfType <GhostAI>()); await Task.Delay(150); Main.serverManager = GameObject.FindObjectOfType <ServerManager>(); await Task.Delay(150); Main.torches = Enumerable.ToList <Torch>(GameObject.FindObjectsOfType <Torch>()); await Task.Delay(150); Main.ghostAudio = GameObject.FindObjectOfType <GhostAudio>(); await Task.Delay(150); Main.fuseBox = GameObject.FindObjectOfType <FuseBox>(); await Task.Delay(150); Main.doors = Enumerable.ToList <Door>(GameObject.FindObjectsOfType <Door>()); await Task.Delay(150); Main.lightSwitches = Enumerable.ToList <LightSwitch>(GameObject.FindObjectsOfType <LightSwitch>()); } } }
public static void MurderPlayer(PlayerControl killer, PlayerControl target) { GameData.PlayerInfo data = target.Data; if (data != null && !data.IsDead) { if (killer == PlayerControl.LocalPlayer) { SoundManager.Instance.PlaySound(PlayerControl.LocalPlayer.KillSfx, false, 0.8f); } target.gameObject.layer = LayerMask.NameToLayer("Ghost"); if (target.AmOwner) { try { if (Minigame.Instance) { Minigame.Instance.Close(); Minigame.Instance.Close(); } if (MapBehaviour.Instance) { MapBehaviour.Instance.Close(); MapBehaviour.Instance.Close(); } } catch { } DestroyableSingleton <HudManager> .Instance.KillOverlay.ShowOne(killer.Data, data); DestroyableSingleton <HudManager> .Instance.ShadowQuad.gameObject.SetActive(false); target.nameText.GetComponent <MeshRenderer>().material.SetInt("_Mask", 0); target.RpcSetScanner(false); ImportantTextTask importantTextTask = new GameObject("_Player").AddComponent <ImportantTextTask>(); importantTextTask.transform.SetParent(AmongUsClient.Instance.transform, false); if (!PlayerControl.GameOptions.GhostsDoTasks) { for (int i = 0; i < target.myTasks.Count; i++) { PlayerTask playerTask = target.myTasks.ToArray()[i]; playerTask.OnRemove(); UnityEngine.Object.Destroy(playerTask.gameObject); } target.myTasks.Clear(); importantTextTask.Text = DestroyableSingleton <TranslationController> .Instance.GetString( StringNames.GhostIgnoreTasks, new UnhollowerBaseLib.Il2CppReferenceArray <Il2CppSystem.Object>(0)); } else { importantTextTask.Text = DestroyableSingleton <TranslationController> .Instance.GetString( StringNames.GhostDoTasks, new UnhollowerBaseLib.Il2CppReferenceArray <Il2CppSystem.Object>(0)); } target.myTasks.Insert(0, importantTextTask); } killer.MyPhysics.StartCoroutine(killer.KillAnimations.Random <KillAnimation>() .CoPerformKill(killer, target)); var deadBody = new DeadPlayer { PlayerId = target.PlayerId, KillerId = killer.PlayerId, KillTime = DateTime.UtcNow, }; Murder.KilledPlayers.Add(deadBody); if (!killer.Is(RoleEnum.Glitch) && !killer.Is(RoleEnum.Arsonist)) { ChildMod.Murder.CheckChild(target); } if (target.Is(ModifierEnum.Diseased) && killer.Is(RoleEnum.Glitch)) { var glitch = Roles.Role.GetRole <Roles.Glitch>(killer); glitch.LastKill = DateTime.UtcNow.AddSeconds(2 * CustomGameOptions.GlitchKillCooldown); glitch.Player.SetKillTimer(CustomGameOptions.GlitchKillCooldown * 3); } } }
public IEnumerator LoadObjectsTask() { yield return(new WaitForSeconds(0.15f)); Main.missionManager = GameObject.FindObjectOfType <MissionManager>(); yield return(new WaitForSeconds(0.15f));; Main.gameController = GameObject.FindObjectOfType <GameController>(); yield return(new WaitForSeconds(0.15f)); Main.levelController = GameObject.FindObjectOfType <LevelController>(); yield return(new WaitForSeconds(0.15f));; Main.levelSelectionManager = GameObject.FindObjectOfType <LevelSelectionManager>(); yield return(new WaitForSeconds(0.15f)); Main.walkieTalkie = GameObject.FindObjectOfType <WalkieTalkie>(); yield return(new WaitForSeconds(0.15f)); Main.handCamera = GameObject.FindObjectOfType <HandCamera>(); yield return(new WaitForSeconds(0.15f)); Main.inventoryManager = GameObject.FindObjectOfType <InventoryManager>(); yield return(new WaitForSeconds(0.15f)); Main.liftButton = GameObject.FindObjectOfType <LiftButton>(); yield return(new WaitForSeconds(0.15f)); Main.contract = GameObject.FindObjectOfType <Contract>(); yield return(new WaitForSeconds(0.15f)); Main.pCMenu = GameObject.FindObjectOfType <PCMenu>(); yield return(new WaitForSeconds(0.15f)); Main.exitLevel = GameObject.FindObjectOfType <ExitLevel>(); yield return(new WaitForSeconds(0.15f)); Main.ghostAI = UnityEngine.Object.FindObjectOfType <GhostAI>(); yield return(new WaitForSeconds(0.15f)); Main.lightSwitch = GameObject.FindObjectOfType <LightSwitch>(); yield return(new WaitForSeconds(0.15f)); Main.light = GameObject.FindObjectOfType <Light>(); yield return(new WaitForSeconds(0.15f)); Main.dNAEvidences = Enumerable.ToList <DNAEvidence>(GameObject.FindObjectsOfType <DNAEvidence>()); yield return(new WaitForSeconds(0.15f)); Main.contracts = Enumerable.ToList <Contract>(GameObject.FindObjectsOfType <Contract>()); yield return(new WaitForSeconds(0.15f)); Main.items = Enumerable.ToList <InventoryItem>(GameObject.FindObjectsOfType <InventoryItem>()); yield return(new WaitForSeconds(0.15f)); Main.players = Enumerable.ToList <Player>(GameObject.FindObjectsOfType <Player>()); yield return(new WaitForSeconds(0.15f)); if (Main.levelController != null) { Main.photonView = (Main.ghostAI.field_Public_PhotonView_0 ?? null); yield return(new WaitForSeconds(0.15f)); } Main.ghostInfo = GameObject.FindObjectOfType <GhostInfo>(); yield return(new WaitForSeconds(0.15f)); Main.deadPlayer = GameObject.FindObjectOfType <DeadPlayer>(); yield return(new WaitForSeconds(0.15f)); Main.player = GameObject.FindObjectOfType <Player>(); yield return(new WaitForSeconds(0.15f)); Main.rigidbody = GameObject.FindObjectOfType <Rigidbody>(); yield return(new WaitForSeconds(0.15f)); Main.itemSpawner = GameObject.FindObjectOfType <ItemSpawner>(); yield return(new WaitForSeconds(0.15f)); Main.ghostInteraction = GameObject.FindObjectOfType <GhostInteraction>(); yield return(new WaitForSeconds(0.15f)); //Main.baseController = GameObject.FindObjectOfType<BaseController>(); yield return(new WaitForSeconds(0.15f)); Main.ouijaBoard = GameObject.FindObjectOfType <OuijaBoard>(); yield return(new WaitForSeconds(0.15f)); Main.ouijaBoards = Enumerable.ToList <OuijaBoard>(GameObject.FindObjectsOfType <OuijaBoard>()); yield return(new WaitForSeconds(0.15f)); Main.keys = Enumerable.ToList <Key>(GameObject.FindObjectsOfType <Key>()); yield return(new WaitForSeconds(0.15f)); Main.ghosts = Enumerable.ToList <GhostAI>(GameObject.FindObjectsOfType <GhostAI>()); yield return(new WaitForSeconds(0.15f)); Main.serverManager = GameObject.FindObjectOfType <ServerManager>(); yield return(new WaitForSeconds(0.15f)); Main.torches = Enumerable.ToList <Torch>(GameObject.FindObjectsOfType <Torch>()); yield return(new WaitForSeconds(0.15f)); Main.ghostAudio = GameObject.FindObjectOfType <GhostAudio>(); yield return(new WaitForSeconds(0.15f)); Main.fuseBox = GameObject.FindObjectOfType <FuseBox>(); yield return(new WaitForSeconds(0.15f)); Main.doors = Enumerable.ToList <Door>(GameObject.FindObjectsOfType <Door>()); yield return(new WaitForSeconds(0.15f)); Main.lightSwitches = Enumerable.ToList <LightSwitch>(GameObject.FindObjectsOfType <LightSwitch>()); if (UnityEngine.Object.FindObjectOfType <Player>() != null) { Main.player = (UnityEngine.Object.FindObjectOfType <Player>() ?? null); yield return(new WaitForSeconds(0.15f)); Main.playerAnim = (Main.player.field_Public_Animator_0 ?? null); yield return(new WaitForSeconds(0.15f)); if (Main.playerAnim != null) { Main.boneTransform = (Main.playerAnim.GetBoneTransform((HumanBodyBones)10) ?? null); yield return(new WaitForSeconds(0.15f)); if (Main.boneTransform != null) { Main.light = (Main.boneTransform.GetComponent <Light>() ?? null); yield return(new WaitForSeconds(0.15f)); } } } yield return(null); yield break; }