示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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;
        }
示例#4
0
        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;
            }
        }