예제 #1
0
    public IEnumerator loadNextLevel()
    {
        GameObject.Find("BlackPanel1").GetComponent <GraphicColorLerp>().startColorChange();
        LevelNumber.setSkipIntro(false);
        yield return(new WaitForSeconds(1.5f));

        LevelNumber.setLevel(levelNum + 1);
        SceneManager.LoadScene("Campaign");
    }
    private IEnumerator loadLevel()
    {
        levelTransition = true;
        LevelNumber.setLevel(levelIndex);
        blackPanel.gameObject.GetComponent <Image>().enabled = true;
        blackPanel.startColorChange();
        yield return(new WaitForSeconds(1.5f));

        SceneManager.LoadScene("Campaign");
    }
예제 #3
0
 public void updateLevelInUI(string levelPack, int levelNumber)
 {
     number.setLevel(levelNumber);
     packName.setLevelPack(levelPack);
 }
예제 #4
0
    // Update is called once per frame
    void Update()
    {
        if (bombUsed)
        {
            bombCooldown -= Time.deltaTime;

            if (bombCooldown <= 0)
            {
                bombUsed     = false;
                bombCooldown = setBombCooldown;
            }
        }
        if (debug)
        {
            if (Input.GetKeyDown(KeyCode.L))
            {
                LevelNumber.setLevel(levelNum + 1);
                SceneManager.LoadScene("Campaign");
            }
            if (Input.GetKeyDown(KeyCode.K))
            {
                LevelNumber.setLevel(levelNum - 1);
                SceneManager.LoadScene("Campaign");
            }
        }
        switch (gameState)
        {
        case (GameState.beforeGame):
            runPreGame();      //level tutorial logic is in here.  Also handles levels without tutorials
            if (preventPauseTimer > 0)
            {
                preventPauseTimer -= Time.deltaTime;
            }
            else if (Input.GetKeyDown(KeyCode.Escape))
            {
                gameState = GameState.paused;
                pauseCanvas.SetActive(true);
                dangerPlaying = shipDangerAudio.isPlaying;
                if (dangerPlaying)
                {
                    shipDangerAudio.Pause();
                }
                eventSystem.SetSelectedGameObject(GameObject.Find("ResumeButton"));                                       //set default button
                GameObject.Find("ResumeButton").GetComponent <Button>().OnSelect(new BaseEventData(EventSystem.current)); //force highlight button
                Time.timeScale = 0;
            }
            break;

        case (GameState.duringGame):
            if (survival)
            {
                StartCoroutine(advanceDropTimer());
            }
            if (timeRemaining > 0)
            {
                timeRemaining -= Time.deltaTime;
            }
            else
            {
                timeRemaining = 0f;             //Ensure values sent to progress bar
                                                //and progress text do not exceed 100%
            }
            if (preventPauseTimer > 1.5)        //survival has a shorter transition
            {
                preventPauseTimer -= Time.deltaTime;
            }
            else if (Input.GetKeyDown(KeyCode.Escape))
            {
                gameState = GameState.paused;
                pauseCanvas.SetActive(true);
                dangerPlaying = shipDangerAudio.isPlaying;
                if (dangerPlaying)
                {
                    shipDangerAudio.Pause();
                }
                eventSystem.SetSelectedGameObject(GameObject.Find("ResumeButton"));                                       //set default button
                GameObject.Find("ResumeButton").GetComponent <Button>().OnSelect(new BaseEventData(EventSystem.current)); //force highlight button
                Time.timeScale = 0;
            }
            if (chargeText != null)
            {
                chargeText.setPercent(1 - (timeRemaining / totalDuration));         //update progress bar
            }
            if (chargeBar != null)
            {
                chargeBar.setProgress(1 - (timeRemaining / totalDuration));         //update text in progress bar
            }
            if (pointsText != null)
            {
                pointsText.text = pointsAsString(points);                           //display points
            }
            if (multiplierText != null)
            {
                multiplierText.text  = multiplier.ToString("n1") + " x";
                multiplierText.color = HelperFunctions.colorInterpolation(Color.red, Color.white, (multiplier - 1) / 9);
            }
            if ((Input.GetKeyDown(KeyCode.LeftShift) || Input.GetKeyDown(KeyCode.RightShift)) && !bombUsed)
            {
                dropBomb();
            }
            if (playerIsDead)
            {
                HelperFunctions.playSound(ref shipAudio, shipDeath);

                lowHealthText.enabled   = false;
                shipDangerAudio.enabled = false;
                gameIsOver = true;
                for (int i = 0; i < currentSettings.enabledUI.Length; i++)
                {
                    currentSettings.enabledUI[i].SetActive(false);
                }
                settingsList[levelNum].SetActive(false);                //turn off enemySpawner
                GameObject[] turrets = GameObject.FindGameObjectsWithTag("Turret");
                for (int i = 0; i < turrets.Length; i++)
                {
                    turrets[i].GetComponent <Turret>().inputDisabled = true;       //disable player input
                    turrets[i].GetComponent <Turret>().fadeTurret();               //fade turrets to transparent
                    turrets[i].transform.Find("TargettingLine").gameObject.SetActive(false);
                }
                GameObject ship = GameObject.FindWithTag("Player");
                ship.transform.Find("Ship").GetComponent <ColorLerp>().startColorChange();
                ship.GetComponent <ParticleSystem>().Play();
                Instantiate(Resources.Load("ClearExplosion"), ship.transform.position, Quaternion.identity);
                deathCanvas.SetActive(true);
                if (survival)
                {
                    gameState = GameState.survivalDeathState;                                                                  //change state to game over screen
                    eventSystem.SetSelectedGameObject(GameObject.Find("RestartButton"));
                    GameObject.Find("RestartButton").GetComponent <Button>().OnSelect(new BaseEventData(EventSystem.current)); //force highlight button
                    setHighScore(points);
                }
                else
                {
                    gameState = GameState.campaignDeathState;                                                                  //change state to campaign game over screen
                    eventSystem.SetSelectedGameObject(GameObject.Find("RestartButton"));
                    GameObject.Find("RestartButton").GetComponent <Button>().OnSelect(new BaseEventData(EventSystem.current)); //force highlight button
                }
            }

            if (!survival && timeRemaining <= 0)                        //survival game mode never leaves this state
            {
                lowHealthText.enabled   = false;
                shipDangerAudio.enabled = false;
                gameIsOver = true;
                for (int i = 0; i < currentSettings.enabledUI.Length; i++)
                {
                    currentSettings.enabledUI[i].SetActive(false);
                }
                chargeBar.setProgress(1);
                dropFTLBomb();                                          //kill all enemies
                settingsList[levelNum].SetActive(false);                //turn off enemySpawner
                jumpTimer = 0;                                          //set jump timer to zero for next state
                gameState = GameState.transition;                       //State Transition
                GameObject[] turrets = GameObject.FindGameObjectsWithTag("Turret");
                for (int i = 0; i < turrets.Length; i++)
                {
                    turrets[i].GetComponent <Turret>().inputDisabled = true;  //disable player input
                    turrets[i].GetComponent <Turret>().fadeTurret();          //fade turrets to transparent
                    turrets[i].transform.Find("TargettingLine").gameObject.SetActive(false);
                    //disable targetting lines
                }
            }
            break;

        case (GameState.transition):

            if (delayBeforeJump > 0)
            {
                delayBeforeJump -= Time.deltaTime;                      //delay before FTL jump
            }
            else
            {
                if (jumpTimer == 0)
                {
                    chargeText.enabled = false;                         //disable automatic color/text changes
                    chargeBar.enabled  = false;                         //disable automatic color/text changes
                    ftlJump.startAllStars();                            //start FTL jump
                    chargeText.GetComponent <Text>().text = "Jumping...";
                }
                if (jumpTimer < jumpDuration)
                {
                    jumpTimer += Time.deltaTime;
                    //Decrease progress bar during jump
                    if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.Space))
                    {
                        jumpTimer = jumpDuration;
                    }
                }
                else
                {
                    gameState = GameState.transitionOver;               //State Transition
                    levelCompletionCanvas.SetActive(true);
                    if (levelNum < 7)
                    {
                        eventSystem.SetSelectedGameObject(GameObject.Find("ContinueButton"));                                       //set default button
                        GameObject.Find("ContinueButton").GetComponent <Button>().OnSelect(new BaseEventData(EventSystem.current)); //force highlight button
                    }
                    else
                    {
                        eventSystem.SetSelectedGameObject(GameObject.Find("MainMenuButton"));                                       //set default button
                        GameObject.Find("ContinueButton").SetActive(false);
                        GameObject.Find("MainMenuButton").GetComponent <Button>().OnSelect(new BaseEventData(EventSystem.current)); //force highlight button
                        GameObject.Find("MainMenuButton").GetComponent <RectTransform>().anchorMin = new Vector2(0.3f, 0);
                        GameObject.Find("MainMenuButton").GetComponent <RectTransform>().anchorMax = new Vector2(0.7f, 0.5f);
                    }
                    if (levelNum >= settingsList.Count)
                    {
                        GameObject.Find("ContinueButton").GetComponent <Button>().interactable = false;         //if on last level, grey out continueButton
                    }
                }
            }

            break;

        case (GameState.transitionOver):

            //display GUI
            break;

        case (GameState.campaignDeathState):

            break;

        case (GameState.survivalDeathState):
            dropTimer = 0.0f;
            break;

        case (GameState.paused):
            GameObject[] turretList = GameObject.FindGameObjectsWithTag("Turret");
            for (int i = 0; i < turretList.Length; ++i)
            {
                turretList[i].GetComponent <Turret>().inputDisabled = true;
            }
            if (Input.GetKeyDown(KeyCode.Escape))
            {
                resumeButton();
            }

            break;
        }
    }