Beispiel #1
0
    public void OnPlayerDied(PlayerGameplay player)
    {
        uint?stocks  = player.GetRemainingStocks();
        int  arrayId = (int)(player.playerEnum);

        if (null != stocks && null != PlayerArray[arrayId].Player)
        {
            PlayerArray[arrayId].UiPercentage.text = 0.ToString("D3") + "%";
            if (3 < stocks)
            {
                PlayerArray[arrayId].UiTextStockX.text = ((int)(stocks)).ToString("D2");
            }
            else if (2 < stocks)             // 3+ -> 3 = only panel 3 images
            {
                PlayerArray[arrayId].UiPanelStockX.SetActive(false);
                PlayerArray[arrayId].UiPanelStock3.SetActive(true);
            }
            else if (1 < stocks)             // 3 -> 2 = only panel 3 images
            {
                PlayerArray[arrayId].UiPanelStock3.GetComponent <StockDisplay>().Image3.enabled = false;
            }
            else if (0 < stocks)             // 2 -> 1, can be 3/2
            {
                if (PlayerArray[arrayId].UiPanelStock3.activeInHierarchy)
                {
                    PlayerArray[arrayId].UiPanelStock3.GetComponent <StockDisplay>().Image2.enabled = false;
                }
                else
                {
                    PlayerArray[arrayId].UiPanelStock2.GetComponent <StockDisplay>().Image2.enabled = false;
                }
            }
            else
            {
                bFinished = true;
                foreach (PlayerUI playerUI in PlayerArray)
                {
                    if (null != playerUI.Player)
                    {
                        playerUI.UiPanelStock3.SetActive(false);
                        playerUI.UiPanelStock2.SetActive(false);
                        playerUI.UiPanelStock1.SetActive(false);
                    }
                }
            }

            if (!bFinished)
            {
                Transform newPose = Spawner.GetSpawnLocation();
                PlayerArray[arrayId].Player.SetNextSpawnLocation(newPose);
            }
        }
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        //
        // Inputs
        if (Input.GetKeyUp(KeyCode.Escape))
        {
            if (EInGameState.paused == eInGameState)
            {
                eInGameState = EInGameState.playing;
            }
            else
            {
                eInGameState = EInGameState.paused;
            }
        }

        switch (eInGameState)
        {
        case EInGameState.countdown:
        {
            eInGameState = EInGameState.playing;
            break;
        }

        case EInGameState.playing:
        {
            //
            // Check time
            if (EInGameEndRules.time == Rules || EInGameEndRules.stock_and_time == Rules)
            {
                fRemainingTime = Mathf.Max(fRemainingTime - Time.deltaTime, 0.0f);

                int iMinutesNb = (int)(fRemainingTime / 60);
                int iSecondsNb = (int)(fRemainingTime - iMinutesNb * 60.0f);
                UiTime.text = iMinutesNb.ToString("D2") + ":" + iSecondsNb.ToString("D2");

                if (fRemainingTime == 0.0f)
                {
                    bFinished |= true;
                }
            }

            if (bFinished)
            {
                eInGameState = EInGameState.finished;
            }
            break;
        }

        case EInGameState.paused:
        {
            break;
        }

        case EInGameState.finished:
        {
            UiPanelVictory.SetActive(true);
            if (0 == Player1.GetRemainingStocks())
            {
                UiTextWinner.text = "P2";
            }
            else if (0 == Player2.GetRemainingStocks())
            {
                UiTextWinner.text = "P1";
            }
            else
            {
                if (Player1.GetRemainingStocks() == Player2.GetRemainingStocks())
                {
                    if (Player1.GetPercentage() > Player2.GetPercentage())
                    {
                        UiTextWinner.text = "P2";
                    }
                    else
                    {
                        UiTextWinner.text = "P1";
                    }
                }
                else
                {
                    if (Player1.GetRemainingStocks() > Player2.GetRemainingStocks())
                    {
                        UiTextWinner.text = "P1";
                    }
                    else
                    {
                        UiTextWinner.text = "P2";
                    }
                }
            }
            break;
        }
        }
    }
Beispiel #3
0
    // Update is called once per frame
    void Update()
    {
        //
        // Inputs
        if (Input.GetKeyUp(KeyCode.Escape))
        {
            if (EInGameState.paused == eInGameState)
            {
                eInGameState = EInGameState.playing;
            }
            else
            {
                eInGameState = EInGameState.paused;

                //
                // Disable spawning
                spawnerManager.DisableSpawning();
            }
        }

        if (Debug.isDebugBuild)
        {
            if (Input.GetKey(KeyCode.R))
            { // Go on victory screen
                eInGameState   = EInGameState.finished;
                fRemainingTime = 0.0f;
            }
        }

        switch (eInGameState)
        {
        case EInGameState.countdown:
        {
            eInGameState = EInGameState.playing;

            //
            // Enable spawning
            spawnerManager.EnableSpawning();

            break;
        }

        case EInGameState.playing:
        {
            //
            // Check time
            if (EInGameEndRules.time == Rules || EInGameEndRules.stock_and_time == Rules)
            {
                fRemainingTime = Mathf.Max(fRemainingTime - Time.deltaTime, 0.0f);

                int iMinutesNb = (int)(fRemainingTime / 60);
                int iSecondsNb = (int)(fRemainingTime - iMinutesNb * 60.0f);
                UiTime.text = iMinutesNb.ToString("D2") + ":" + iSecondsNb.ToString("D2");

                if (fRemainingTime == 0.0f)
                {
                    bFinished |= true;
                }
            }

            if (bFinished)
            {
                eInGameState   = EInGameState.finished;
                fRemainingTime = 0.0f;

                //
                // Disable spawning
                spawnerManager.DisableSpawning();
            }
            break;
        }

        case EInGameState.paused:
        {
            break;
        }

        case EInGameState.finished:
        {
            if (fRemainingTime == 0.0f)
            {
                UiPanelVictory.SetActive(true);
                if (0 == Player1.GetRemainingStocks())
                {
                    UiTextWinner.text = "P2";
                }
                else if (0 == Player2.GetRemainingStocks())
                {
                    UiTextWinner.text = "P1";
                }
                else
                {
                    if (Player1.GetRemainingStocks() == Player2.GetRemainingStocks())
                    {
                        if (Player1.GetPercentage() > Player2.GetPercentage())
                        {
                            UiTextWinner.text = "P2";
                        }
                        else
                        {
                            UiTextWinner.text = "P1";
                        }
                    }
                    else
                    {
                        if (Player1.GetRemainingStocks() > Player2.GetRemainingStocks())
                        {
                            UiTextWinner.text = "P1";
                        }
                        else
                        {
                            UiTextWinner.text = "P2";
                        }
                    }
                }
            }

            fRemainingTime += Time.deltaTime;

            if (fRemainingTime >= 2.0f && (Input.GetKeyUp(KeyCode.Keypad0) || Input.GetKeyUp(KeyCode.Space)))
            {     // Return to champ select
                SceneManager.LoadScene("ChampSelect", LoadSceneMode.Single);
            }
            break;
        }
        }
    }