// Update is called once per frame
    void Update()
    {
        switch (currentPlayerState)
        {
        case PlayerState.Idle:
            break;

        case PlayerState.Attack:
            playerAttackHandler.OnPlayerAttack(playerDatas[0].Atk);
            turnHandler.OnTurnEnd((int)CombatSystemController.Turn.Player);
            currentPlayerState = PlayerState.Idle;
            break;

        case PlayerState.Defense:
            if (turnHandler.GetCurrentTurn() == (int)CombatSystemController.Turn.Player)
            {
                reset();
            }
            break;

        case PlayerState.Hurt:
            if (Time.time - beginHurtTime > HURT_TIME)
            {
                playerGuis[0].IsDamageShown = false;
                currentPlayerState          = isDefending ? PlayerState.Defense : PlayerState.Idle;
            }
            break;

        case PlayerState.Die:
            combatSystemController.OnCombatEnd((int)CombatSystemController.Force.Player);
            break;
        }
    }
Пример #2
0
    private void nextCommand()
    {
        int attackChance = ((float)enemyData.Hp / DEMO_HP > 0.3f) ? 95 : 70;
        int random       = Random.Range(0, 100);

        if (random < attackChance)
        {
            currentEnemyState = EnemyState.Attack;
        }
        else
        {
            currentEnemyState = EnemyState.Defense;
            isDefending       = true;
            turnHandler.OnTurnEnd((int)CombatSystemController.Turn.Enemy);
        }

        /*
         * currentEnemyState = EnemyState.Defense;
         * isDefending = true;
         * turnHandler.OnTurnEnd((int)CombatSystemController.Turn.Enemy);
         */
    }
Пример #3
0
    // Update is called once per frame
    void Update()
    {
        switch (currentEnemyState)
        {
        case EnemyState.Idle:
            idleMovement();
            if (turnHandler.GetCurrentTurn() == (int)WifiP2pController.Turn.Player2)
            {
                nextCommand();
            }
            break;

        case EnemyState.Attack:
            enemyAttackHandler.OnEnemyAttack(enemyData.Atk);
            turnHandler.OnTurnEnd((int)WifiP2pController.Turn.Player2);
            currentEnemyState = EnemyState.Idle;
            break;

        case EnemyState.Defense:
            defencePose();
            if (turnHandler.GetCurrentTurn() == (int)WifiP2pController.Turn.Player2)
            {
                reset();
            }
            break;

        case EnemyState.Hurt:
            if (Time.time - beginHurtTime > HURT_TIME)
            {
                currentEnemyState = isDefending ? EnemyState.Defense : EnemyState.Idle;
            }
            break;

        case EnemyState.Die:
            combatSystemController.OnCombatEnd((int)WifiP2pController.Force.Player2);
            Destroy(gameObject);
            break;
        }
    }