示例#1
0
    public void EndAction(ActionType actionType)
    {
        switch (actionType)
        {
        case ActionType.Activation:
            ActivateUnit();
            break;

        case ActionType.Deactivation:
            DeactivateUnit();
            break;

        case ActionType.Movement:
            SetUnitPhase(UnitPhase.AfterMovement);
            _unitAnimations.AnimateIdle();
            HandleActivatingAttackMode();
            break;

        case ActionType.Attack:
            _unitList.CheckWinCondition();
            if (_unitAbility.GetAbilityType() == AbilityType.Dash)
            {
                ActivateDash();
            }
            else
            {
                SkipTurn();
            }
            break;

        case ActionType.MovementBeforeAttack:
            HandleAttackUnit(_attackAfterMovementXTarget, _attackAfterMovementYTarget);
            break;

        case ActionType.ActiveAbility:
            ActiveAbility();
            break;

        case ActionType.ExecuteAbility:
            _unitList.CheckWinCondition();
            if (_unitAbility.GetAbilityType() == AbilityType.Dash)
            {
                ActivateDash();
            }
            else
            {
                SkipTurn();
            }
            break;

        case ActionType.Dash:
            _unitAnimations.AnimateIdle();
            SkipTurn();
            break;

        case ActionType.SkipTurn:
            Invoke("NextTurn", 0.4f);
            break;
        }
    }