private static void Prefix(CardBarHandler __instance, ref CardBar[] ___cardBars) { CardBarHandler.instance = __instance; ___cardBars = __instance.GetComponentsInChildren <CardBar>(); var bar3 = Object.Instantiate(___cardBars[0], CardBarHandler.instance.transform); Color redColor = PlayerSkinBank.GetPlayerSkinColors(2).backgroundColor; redColor.a = 0.5f; bar3.transform.GetChild(0).GetChild(0).gameObject.GetComponent <ProceduralImage>().color = redColor; bar3.transform.GetChild(0).GetChild(0).gameObject.name = "CardRed"; bar3.name = "Bar3"; bar3.transform.position = ___cardBars[0].transform.position + Vector3.down * 4f; bar3.GetComponentInParent <CardBar>(); var bar4 = Object.Instantiate(___cardBars[1], CardBarHandler.instance.transform); Color greenColor = PlayerSkinBank.GetPlayerSkinColors(3).backgroundColor; greenColor.a = 0.5f; bar4.transform.GetChild(0).GetChild(0).gameObject.GetComponent <ProceduralImage>().color = greenColor; bar3.transform.GetChild(0).GetChild(0).gameObject.name = "CardGreen"; bar4.name = "Bar4"; bar4.transform.position = ___cardBars[1].transform.position + Vector3.down * 4f; bar4.GetComponentInParent <CardBar>(); ___cardBars.AddToArray(bar3); ___cardBars.AddToArray(bar4); }
private static bool Prefix(Player player) { if (PhotonNetwork.OfflineMode) { UnityEngine.Debug.Log("OFFLINE MODE"); PlayerAssigner.instance.maxPlayers = NetworkConnectionHandlerPatch.PlayersNeededToStart; return(false); } else if (PhotonNetwork.CurrentRoom != null) { UnityEngine.Debug.Log("ONLINE MODE"); PlayerAssigner.instance.maxPlayers = PhotonNetwork.CurrentRoom.MaxPlayers; } int count = PlayerManager.instance.players.Count; UnityEngine.Debug.Log("PlayerJoined count " + count); UnityEngine.Debug.Log("PlayerJoined maxPlayers " + PlayerAssigner.instance.maxPlayers); if (!PhotonNetwork.OfflineMode) { if (player.data.view.IsMine) { if (PlayerAssigner.instance.maxPlayers - count == 3) { UIHandler.instance.ShowJoinGameText("ADD THREE MORE PLAYERS TO START", PlayerSkinBank.GetPlayerSkinColors(1).winText); } if (PlayerAssigner.instance.maxPlayers - count == 2) { UIHandler.instance.ShowJoinGameText("ADD TWO MORE PLAYERS TO START", PlayerSkinBank.GetPlayerSkinColors(1).winText); } if (PlayerAssigner.instance.maxPlayers - count == 1) { UIHandler.instance.ShowJoinGameText("ADD ONE MORE PLAYER TO START", PlayerSkinBank.GetPlayerSkinColors(1).winText); } } else { UIHandler.instance.ShowJoinGameText("PRESS JUMP\n TO JOIN", PlayerSkinBank.GetPlayerSkinColors(1).winText); } } player.data.isPlaying = false; if (count >= PlayerAssigner.instance.maxPlayers) { GM_ArmsRace.instance.StartGame(); } return(false); }
private static IEnumerator DoStartGame() { var instance = GM_ArmsRace.instance; var waitForSyncUp = AccessTools.Method(typeof(GM_ArmsRace), "WaitForSyncUp"); var setPlayersVisible = AccessTools.Method(typeof(PlayerManager), "SetPlayersVisible"); GameManager.instance.battleOngoing = false; UIHandler.instance.ShowJoinGameText("LETS GOO!", PlayerSkinBank.GetPlayerSkinColors(1).winText); yield return(new WaitForSeconds(0.25f)); UIHandler.instance.HideJoinGameText(); PlayerManager.instance.SetPlayersSimulated(false); // PlayerManager.instance.SetPlayersVisible(false); setPlayersVisible.Invoke(PlayerManager.instance, new object[] { false }); MapManager.instance.LoadNextLevel(); TimeHandler.instance.DoSpeedUp(); for (int d = 0; d < PlayerManager.instance.players.Count; d++) { for (int i = 0; i < PlayerManager.instance.players.Count; i++) { if (PlayerManager.instance.players[d].playerID == PlayerManager.instance.players[i].playerID) { NetworkConnectionHandler.instance.NetworkRestart(); } } } yield return(new WaitForSecondsRealtime(1f)); if (instance.pickPhase) { for (int i = 0; i < PlayerManager.instance.players.Count; i++) { Player player = PlayerManager.instance.players[i]; yield return(instance.StartCoroutine((IEnumerator)waitForSyncUp.Invoke(instance, null))); CardChoiceVisuals.instance.Show(i, true); if (player.GetComponent <PlayerAPI>().enabled) { yield return(AIPick(player)); } else { yield return(CardChoice.instance.DoPick(1, player.playerID, PickerType.Team)); } yield return(new WaitForSecondsRealtime(0.3f)); } yield return(instance.StartCoroutine((IEnumerator)waitForSyncUp.Invoke(instance, null))); CardChoiceVisuals.instance.Hide(); } MapManager.instance.CallInNewMapAndMovePlayers(MapManager.instance.currentLevelID); TimeHandler.instance.DoSpeedUp(); TimeHandler.instance.StartGame(); GameManager.instance.battleOngoing = true; UIHandler.instance.ShowRoundCounterSmall(instance.p1Rounds, instance.p2Rounds, instance.p1Points, instance.p2Points); // PlayerManager.instance.SetPlayersVisible(true); setPlayersVisible.Invoke(PlayerManager.instance, new object[] { true }); yield break; }
private static void Postfix() { var roundCounterSmall = (RoundCounter)AccessTools.Field(typeof(UIHandler), "roundCounterSmall").GetValue(UIHandler.instance); if (roundCounterSmall.transform.Find("P3") == null && PlayerManager.instance.players.Count >= 3) { GameObject childObject = Object.Instantiate(GameObject.Find("P1"), roundCounterSmall.gameObject.transform); childObject.name = "P3"; childObject.transform.position = GameObject.Find("P1").transform.position + Vector3.down * 2.15f; Object.Destroy(childObject.GetComponent <Populate>()); var children = childObject.GetComponentsInChildren <ProceduralImage>(); foreach (var child in children) { child.GetComponent <ProceduralImage>().color = new Color(0.3387f, 0.3696f, 0.4057f); } if (PlayerManager.instance.players.Count == 4) { GameObject childObject2 = Object.Instantiate(GameObject.Find("P2"), roundCounterSmall.gameObject.transform); childObject2.name = "P4"; childObject2.transform.position = GameObject.Find("P2").transform.position + Vector3.down * 2.15f; Object.Destroy(childObject2.GetComponent <Populate>()); var children2 = childObject2.GetComponentsInChildren <ProceduralImage>(); foreach (var child in children2) { child.GetComponent <ProceduralImage>().color = new Color(0.3387f, 0.3696f, 0.4057f); } } } var instance = PointVisualizer.instance; if (GM_ArmsRacePatch.winningTeamID == 2) { // Red Color for (int i = 1; i <= 3; i++) { instance.orangeBall.GetChild(i).GetComponent <ProceduralImage>().color = new Color(0.8627f, 0.0784f, 0.2353f); } instance.text.color = PlayerSkinBank.GetPlayerSkinColors(2).winText; if (GM_ArmsRacePatch.p3Points == 1) { instance.orangeFill.fillAmount = 0.5f; HalfRed(); foreach (var child in roundCounterSmall.transform.Find("P3").GetComponentsInChildren <ProceduralImage>()) { if (child.GetComponent <ProceduralImage>().color == new Color(0.3387f, 0.3696f, 0.4057f)) { child.GetComponent <ProceduralImage>().color = PlayerSkinBank.GetPlayerSkinColors(2).winText; break; } } return; } instance.orangeFill.fillAmount = 1f; RoundRed(); foreach (var child in roundCounterSmall.transform.Find("P3").GetComponentsInChildren <ProceduralImage>()) { if (child.transform.localScale == new Vector3(0.3f, 0.3f, 0.3f) && child.GetComponent <ProceduralImage>().color != new Color(0.3387f, 0.3696f, 0.4057f)) { child.transform.localScale = new Vector3(1, 1, 1); break; } } return; } else if (GM_ArmsRacePatch.winningTeamID == 3) { // Green color for (int i = 1; i <= 3; i++) { instance.blueBall.GetChild(i).GetComponent <ProceduralImage>().color = new Color(0.1961f, 0.8039f, 0.1961f); } instance.text.color = PlayerSkinBank.GetPlayerSkinColors(3).winText; if (GM_ArmsRacePatch.p4Points == 1) { instance.blueFill.fillAmount = 0.5f; HalfGreen(); foreach (var child in roundCounterSmall.transform.Find("P4").GetComponentsInChildren <ProceduralImage>()) { if (child.GetComponent <ProceduralImage>().color == new Color(0.3387f, 0.3696f, 0.4057f)) { child.GetComponent <ProceduralImage>().color = PlayerSkinBank.GetPlayerSkinColors(3).winText; break; } } return; } instance.blueFill.fillAmount = 1f; RoundGreen(); foreach (var child in roundCounterSmall.transform.Find("P4").GetComponentsInChildren <ProceduralImage>()) { if (child.transform.localScale == new Vector3(0.3f, 0.3f, 0.3f) && child.GetComponent <ProceduralImage>().color != new Color(0.3387f, 0.3696f, 0.4057f)) { child.transform.localScale = new Vector3(1, 1, 1); break; } } return; } }