Example #1
0
    // -----------------------------------------------------------------------------
    public bool OnPlayerAttackSelected(int moveId)
    {
        if (m_playerPokemon.m_ppCurrent[moveId] == 0)
        {
            return(false);
        }

        m_playerAction = new CAttackAction(moveId);
        GoToState(EBattleStates.eOrderOfActionSelection);

        return(true);
    }
Example #2
0
    // -----------------------------------------------------------------------------
    void GoToState(EBattleStates state)
    {
        if (m_battleState != state)
        {
            m_battleState = state;
            switch (state)
            {
            case EBattleStates.eSelection:
            {
                // Run AI during player selection
                SelectNextAIAction();
            }
            break;

            case EBattleStates.eOrderOfActionSelection:
            {
                SelectOrderOfActions();
                GoToState(EBattleStates.eAtkPhase1);
            }
            break;

            case EBattleStates.eAtkPhase1:
            {
                ResolveAttackPhase(EBattleStates.eAtkPhase1);
            }
            break;

            case EBattleStates.eAtkPhase2:
            {
                ResolveAttackPhase(EBattleStates.eAtkPhase2);
            }
            break;

            case EBattleStates.eEndTurn:
            {
                m_playerAction     = null;
                m_AiAction         = null;
                m_isPlayerInPhase1 = false;

                GoToState(EBattleStates.eSelection);
            }
            break;

            default:
                break;
            }
        }
    }
Example #3
0
    // -----------------------------------------------------------------------------
    void Reset()
    {
        m_playerAttacking = false;
        m_playerPokeValues.Reset();
        m_oppPokeValues.Reset();
        m_lastAttackInfo.Reset();
        m_battleValues.Reset();

        m_playerPokemon      = null;
        m_opponentPokemon    = null;
        m_battleState        = EBattleStates.eNone;
        m_blockedByAnimation = false;

        m_isPlayerInPhase1 = false;
        m_playerAction     = null;
        m_AiAction         = null;
    }
Example #4
0
    // -----------------------------------------------------------------------------
    // --------------------------      AI      -------------------------------------
    // -----------------------------------------------------------------------------
    void SelectNextAIAction()
    {
        //TODO - for now, select attack at random

        // 1/ count number of attack available
        int numberAttack = 0;

        for (int i = 0; i < 4; i++)
        {
            if (m_opponentPokemon.m_moveSet[i] != -1)
            {
                numberAttack++;
            }
        }

        // 2/ select one at random
        int randAttackIndex = Random.Range(0, numberAttack);

        // 3/ push action
        m_AiAction = new CAttackAction(m_opponentPokemon.m_moveSet[randAttackIndex]);
    }
Example #5
0
 // -----------------------------------------------------------------------------
 public void RunFromFight()
 {
     m_playerAction = new CRunAction();
     GoToState(EBattleStates.eOrderOfActionSelection);
 }