Beispiel #1
0
 //只变换状态,一般用于动画结束后的回调
 public void setStateImmediate(enum_character_state _state)
 {
     state = _state;
     if (state == enum_character_state.attacked || state == enum_character_state.fightBacked || state == enum_character_state.standing || state == enum_character_state.awaked ||
         state == enum_character_state.groupAttacked || state == enum_character_state.helped || state == enum_character_state.helped)
     {
         isWorking = false;
     }
 }
Beispiel #2
0
    //正常的角色动作输入,根据动作行为播放战斗
    public void  setState(CharacterAction _action)
    {
        //如果是死亡动作,那么攻击他的人继续他的连击
        if (_action.action == enum_character_Action.Dead)
        {
            if (activeAction != null && activeAction.Skill != null)
            {
                //连击 目标死,连击者继续
                if (activeAction.Skill.triggerSkill.serverData.sample.getType() == SkillType.ComboAttack && activeAction.Skill.trigger.characterCtrl.waitForFightBack == true)
                {
                    StartCoroutine(continueCombo(activeAction.Skill.trigger, comboDelay));
                    activeAction.Skill.trigger.characterCtrl.waitForFightBack = false;
                }
                else if (activeAction.Skill.serverData.sample.getType() == SkillType.HelpOther || activeAction.Skill.serverData.sample.getType() == SkillType.FightBack || activeAction.Skill.serverData.sample.getType() == SkillType.FightBackAfterHelp)
                {
                    //援护死了,攻击者waitForFightBack取消
                    //这里把反击的情况也包含了,理论上反击不回导致死的
                    activeAction.Skill.trigger.characterCtrl.waitForFightBack = false;
                }
                else if (activeAction.Skill.serverData.sample.getType() == SkillType.ComboAttack)
                {
                    //连击者被反击死
                    activeAction.Skill.user.characterCtrl.waitForFightBack = false;
                }
            }
        }
        if (activeAction != null)
        {
            activeAction.Remove();
        }

        activeAction = _action;
        isWorking    = true;


        state = changeState();

        if (state == enum_character_state.attacked || state == enum_character_state.fightBacked || state == enum_character_state.standing || state == enum_character_state.awaked ||
            state == enum_character_state.groupAttacked || state == enum_character_state.helped || state == enum_character_state.helped || state == enum_character_state.standing)
        {
            isWorking = false;
        }
    }