private void OnAction(CharacterActionEvent action)
 {
     _allAction.Add(action);
     _actionQueue.Add(action);
 }
    private void ActionHandler(CharacterActionEvent action)
    {
        switch (action.Act)
        {
        case CharacterActionEvent.Action.Experience:
            switch (action.ActExperience.ExperienceEnum)
            {
            case CharacterActionEvent.ActionExperience.Attack:
                _experiences[action.ActExperience.FromWhom].AddAttack(action.ActExperience.Value);
                break;

            case CharacterActionEvent.ActionExperience.Armor:
                _experiences[action.ActExperience.FromWhom].AddArmor(action.ActExperience.Value);
                break;

            case CharacterActionEvent.ActionExperience.Heal:
                _experiences[action.ActExperience.FromWhom].AddHeal(action.ActExperience.Value);
                break;

            case CharacterActionEvent.ActionExperience.Health:
                _experiences[action.ActExperience.FromWhom].AddHealth(action.ActExperience.Value);
                break;
            }
            break;

        case CharacterActionEvent.Action.NoTarget:
            switch (action.ActNoTarget.NoTargetEnum)
            {
            case CharacterActionEvent.ActionNoTarget.Create:
                break;

            case CharacterActionEvent.ActionNoTarget.Dead:
                RemoveQueue(action.ActNoTarget.FromWhom);
                break;
            }
            break;

        case CharacterActionEvent.Action.OnTarget:
            switch (action.ActOnTarget.OnTargetEnum)
            {
            case CharacterActionEvent.ActionOnTarget.Attack:
                action.ActOnTarget.AboutWhom.TakeAction(action);
                break;

            case CharacterActionEvent.ActionOnTarget.Heal:
                action.ActOnTarget.AboutWhom.TakeAction(action);
                break;

            case CharacterActionEvent.ActionOnTarget.AttackResult:
                action.ActOnTarget.FromWhom.TakeAction(action);
                break;

            case CharacterActionEvent.ActionOnTarget.HealResult:
                action.ActOnTarget.FromWhom.TakeAction(action);
                break;
            }
            break;

        case CharacterActionEvent.Action.System:
            switch (action.ActSystem.SystemEnum)
            {
            case CharacterActionEvent.ActionSystem.StartFight:
                break;

            case CharacterActionEvent.ActionSystem.EndRaund:
                AddQueueNumber();
                break;

            case CharacterActionEvent.ActionSystem.EndGame:
                _isFinishGame = true;
                break;
            }
            break;
        }
    }
示例#3
0
    private void ActionHandler(CharacterActionEvent action)
    {
        switch (action.Act)
        {
        case CharacterActionEvent.Action.Experience:
            switch (action.ActExperience.ExperienceEnum)
            {
            case CharacterActionEvent.ActionExperience.Attack:
                break;

            case CharacterActionEvent.ActionExperience.Armor:
                break;

            case CharacterActionEvent.ActionExperience.Heal:
                break;

            case CharacterActionEvent.ActionExperience.Health:
                break;
            }
            break;

        case CharacterActionEvent.Action.NoTarget:
            switch (action.ActNoTarget.NoTargetEnum)
            {
            case CharacterActionEvent.ActionNoTarget.Create:
                break;

            case CharacterActionEvent.ActionNoTarget.Dead:
                break;
            }
            break;

        case CharacterActionEvent.Action.OnTarget:
            switch (action.ActOnTarget.OnTargetEnum)
            {
            case CharacterActionEvent.ActionOnTarget.Attack:
                _characterViews[action.ActOnTarget.FromWhom].SetAnimation(FightCharacterView.State.Attack);
                _characterViews[action.ActOnTarget.AboutWhom].SetAnimation(FightCharacterView.State.TakeDamage);
                break;

            case CharacterActionEvent.ActionOnTarget.Heal:
                if (action.ActOnTarget.FromWhom != action.ActOnTarget.FromWhom)
                {
                    _characterViews[action.ActOnTarget.FromWhom].SetAnimation(FightCharacterView.State.Attack);
                }
                _characterViews[action.ActOnTarget.AboutWhom].SetAnimation(FightCharacterView.State.TakeHeal);
                break;

            case CharacterActionEvent.ActionOnTarget.AttackResult:
                break;

            case CharacterActionEvent.ActionOnTarget.HealResult:
                break;
            }
            break;

        case CharacterActionEvent.Action.ChancgedInfo:
            _characterViews[action.ActChengedInfo.FromWhom].ChangeCharacteristic(action.ActChengedInfo.Characteristic);
            break;

        case CharacterActionEvent.Action.System:
            switch (action.ActSystem.SystemEnum)
            {
            case CharacterActionEvent.ActionSystem.StartFight:
                _timer = 1f;
                break;

            case CharacterActionEvent.ActionSystem.EndRaund:
                _timer = 1f;
                break;

            case CharacterActionEvent.ActionSystem.EndGame:
                _panelFightFinish.gameObject.SetActive(true);
                break;
            }
            break;
        }
    }