Esempio n. 1
0
 void BeginNewGame()
 {
     playerHealth = startingPlayerHealth;
     enemies.Clear();
     nonEnemies.Clear();
     board.Clear();
     activeScenario = scenario.Begin();
 }
Esempio n. 2
0
    // métodos padrões
    void Awake()
    {
        playerHealth = startingPlayerHealth;
        board.Initialize(boardSize, tileContentFactory);
        board.ShowGrid = true;

        scenario       = new GameScenarioCompiler(enemyFactory);
        activeScenario = scenario.Begin();
    }
Esempio n. 3
0
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            HandleTouch();
        }
        else if (Input.GetMouseButtonDown(1))
        {
            HandleAlternativeTouch();
        }

        if (Input.GetKeyDown(KeyCode.V))
        {
            board.ShowPaths = !board.ShowPaths;
        }

        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            selectedTowerType = TowerType.Laser;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            selectedTowerType = TowerType.Mortar;
        }

        if (Input.GetKeyDown(KeyCode.Space))
        {
            // "espaço" pausa o jogo
            Time.timeScale = Time.timeScale > pausedTimeScale ? pausedTimeScale : 1f;
        }
        else if (Time.timeScale > pausedTimeScale)
        {
            Time.timeScale = playSpeed;
        }

        if (Input.GetKeyDown(KeyCode.B))
        {
            // "b" começa um novo jogo
            playerHealth = startingPlayerHealth;
            BeginNewGame();
        }
        if (startingPlayerHealth == 0 && !activeScenario.Progress() &&
            enemies.IsEmpty)
        {
            // modo invencivel
            playerHealth = startingPlayerHealth;
            enemies.Clear();
            activeScenario = scenario.Begin();
        }
        else if (playerHealth <= 0 && startingPlayerHealth > 0)
        {
            // sem vida = fim de jogo
            Debug.Log("Derrota!");
            BeginNewGame();
        }
        else if (!activeScenario.Progress() && enemies.IsEmpty)
        {
            // cenário acabou e não existem inimigos = vitória
            Debug.Log("Vitoria!");
            BeginNewGame();
            activeScenario.Progress();
        }

        activeScenario.Progress();

        enemies.GameUpdate();
        Physics.SyncTransforms();
        board.GameUpdate();
        nonEnemies.GameUpdate();
    }