Beispiel #1
0
    private void Start()
    {
        _hexMap = GameObject.FindObjectOfType <HexMap>();
        _selectionController = GameObject.FindObjectOfType <SelectionController>();
        turnPulse            = TacticalTurnPulse.Setup;

        movePulses = new List <TacticalTurnPulse>()
        {
            TacticalTurnPulse.FirstMove,
            TacticalTurnPulse.SecondMove,
            TacticalTurnPulse.ThirdMove
        };

        GeneratePlayers(numPlayers);
        AdvanceTurnPulse();
    }
Beispiel #2
0
    public void AdvanceTurnPulse()
    {
        if (turnPulse == TacticalTurnPulse.EndTurn)
        {
            turnPulse = TacticalTurnPulse.StartTurn;
        }
        else
        {
            //Increment the turn pulse.
            // TODO Check for units waiting orders.
            turnPulse = turnPulse += 1;
        }

        Debug.Log(string.Format("Advancing Turn Pulse To {0}", turnPulse));

        if (turnPulse == TacticalTurnPulse.StartTurn)
        {
            _initiativeOrder = DetermineInitiativeOrder();
            // TODO RefreshTurnMoveRatings();
            // TODO RefreshUnitShields();
            // TODO SetMoveControlsActive();
        }

        //We do moves when we advance TO a move pulse.
        if (movePulses.Contains(turnPulse))
        {
            Debug.Log("Refreshing Pulse Move Points.");
            RefreshPulseMovePoints();

            Debug.Log("Completing Queued Moves.");
            StartCoroutine(DoAllQueuedUnitMoves());
        }

        if (turnPulse == TacticalTurnPulse.Firing)
        {
            // Need to do combat here!
            // TODO SetFireControlsActive();
        }

        if (turnPulse == TacticalTurnPulse.EndTurn)
        {
            // Go to next player
            _selectionController.SelectedUnit = null;
            // hexMap.AdvanceToNextPlayer();
        }
    }