// Start is called before the first frame update
 void Start()
 {
     if (!m_canvasManager)
     {
         m_canvasManager = GameObject.Find("Canvas").GetComponent <LevelCanvasManager>();
     }
 }
    void MinionSkillSelectedHandler(MinionType t)
    {
        if (_runnerCount == 3 && _doveCount == 0)
        {
            LevelCanvasManager.StopHoldDownMoveAnim();
            var m = _minionManager.GetMinion(MinionType.Runner);
            m.SetWalk(true);
        }

        if (_doveCount == 1)
        {
            LevelCanvasManager.StopHoldDownMoveAnim();
            var m = _minionManager.GetMinion(MinionType.Dove);
            m.SetWalk(true);
            LevelCanvasManager.SetMinionSkillButton(LevelCanvasManager.GetSpecificMinionSaleBtn(m.minionType).GetComponent <Button>()
                                                    , m.skillType, false, MinionSkillManager);
        }

        if (_tankCount == 1)
        {
            LevelCanvasManager.StopHoldDownMoveAnim();
            var m       = _minionManager.GetMinion(MinionType.Tank);
            var minions = MinionManager.GetMinions(GetAllMinions);

            foreach (var item in minions)
            {
                item.SetWalk(true);
            }

            LevelCanvasManager.SetMinionSkillButton(LevelCanvasManager.GetSpecificMinionSaleBtn(m.minionType).GetComponent <Button>()
                                                    , m.skillType, false, MinionSkillManager);
        }
    }
    public override bool BuildMinion(MinionType t)
    {
        var result = base.BuildMinion(t);

        if (t == MinionType.Runner)
        {
            _runnerCount++;
            if (!tankTutoStarted)
            {
                ExecuteTutorialStep(gameObject);
            }
            else
            {
                ExecuteTutorialStep(null);
            }
        }
        else if (t == MinionType.Dove)
        {
            _doveCount++;
            if (_doveCount == 1)
            {
                _lvlCanvasManager.StopTapAnimation();
            }
        }
        else if (t == MinionType.Tank)
        {
            _tankCount++;
            _livesRemoved = 0;
            if (_tankCount == 1)
            {
                LevelCanvasManager.StopTapAnimation();
            }
        }

        if (tankTutoStarted && t != MinionType.Tank)
        {
            //ExecuteTutorialStep (MinionManager.GetMinion(t).gameObject);

            if (t == MinionType.Dove)
            {
                _spawnedAfterTank++;
            }
            else if (t == MinionType.Runner)
            {
                _spawnedAfterTank++;
            }

            if (_spawnedAfterTank == 2)
            {
                Time.timeScale = 1;
                _stopTutorial  = true;
            }
        }

        return(result);
    }
    void Awake()
    {
        currentPlayerTurn = 0;

        gameWon = false;

        /*
         * 1. This is semi-hardcoded. I don't like it, but well...
         * 2. Row height changes only when row is done; therefore,
         *   the x loop (row filler) has to be nested inside the y loop
         * 3. This creates the rows FROM LEFT TO RIGHT, BOTTOM TO TOP
         * 4. This method uses a flattened array, so the index is incremented
         *   every loop, from 0 to 41
         */

        int index = 0;

        for (int y = 0; y < 6; ++y)
        {
            for (int x = 0; x < 7; ++x)
            {
                Vector3 detectorPosition = new Vector3(-2.75f + (float)x, 1.0f + (float)y, 0.0f);
                m_detectors[index] = new GameObject();
                m_detectors[index].transform.position = this.gameObject.transform.position + detectorPosition;
                m_detectors[index].transform.rotation = this.gameObject.transform.rotation;
                m_detectors[index].transform.parent   = this.gameObject.transform;
                index++;
            }
        }

        m_iMinSlot  = 0;
        m_iMaxSlot  = 6;
        m_vTopSlots = new Vector3[7];
        for (int i = 0; i < m_vTopSlots.Length; ++i)
        {
            Vector3 topSlot = new Vector3(-2.75f + (float)i, 8.0f, 0.0f);
            m_vTopSlots[i] = this.gameObject.transform.position + topSlot;
        }

        for (int i = 0; i < m_players.Length; ++i)
        {
            m_players[i] = GameObject.Instantiate(m_playerPrefab[i], this.gameObject.transform);
            //m_players[i].transform.parent = this.gameObject.transform;
            m_Behaviours[i] = m_players[i].GetComponent <PlayerBehaviour>();
            m_Behaviours[i].SetTurn(false);
            m_Behaviours[i].SetPlayerId(i);
            m_Behaviours[i].SetPlayerSlot(i * 6);
            m_Behaviours[i].transform.position = GetSlotPosition(i * 6);
        }

        m_canvasManager = GameObject.Find("Canvas").GetComponent <LevelCanvasManager>();
    }
Exemple #5
0
    public void LeveInitFinished(MinionManager minionMan, TowerManager towerMan, LevelCanvasManager lvlCanvas)
    {
        _minionManager    = minionMan;
        _towerManager     = towerMan;
        _lvlCanvasManager = lvlCanvas;

        if (!_isEnableForThisLevel)
        {
            return;
        }

        _startSystem = true;
        _minionManager.OnNewMinionSpawned   += NewMinionSpawnHandler;
        _minionManager.OnMinionWalkFinished += MinionWalkFinishedHandler;
    }
    protected virtual void InitLevelCanvas()
    {
        if (_lvlCanvasManager == null)
        {
            _lvlCanvasManager = FindObjectOfType <LevelCanvasManager>();
        }

        _lvlCanvasManager.level = this;

        _lvlCanvasManager.BuildMinionSlots(availableMinions, levelID, _minionSkillManager);

        _lvlCanvasManager.UpdateLevelTimer(levelTime, levelTime);
        _lvlCanvasManager.UpdateLevelLives(LivesRemoved, objetives[objetives.Length - 1]);
        UpdatePoints(0);
    }
 void Start()
 {
     _canvas = GetComponentInParent <LevelCanvasManager>();
 }