/// <summary> /// 移除角色身上指定触发型被动技能的执行器 /// </summary> /// <param name="skill">Skill.</param> public void RemoveTriggeredSkillExcutor(TriggeredPassiveSkill skill) { // 非战斗状态下不执行 if (!isInFight) { return; } // 更具技能的触发时机查询移除技能执行器 if (skill.beforeFightTrigger) { int index = beforeFightTriggerExcutors.FindIndex(delegate(TriggeredSkillExcutor obj) { return(obj.triggeredSkill == skill); }); beforeFightTriggerExcutors.RemoveAt(index); } if (skill.attackTrigger) { int index = attackTriggerExcutors.FindIndex(delegate(TriggeredSkillExcutor obj) { return(obj.triggeredSkill == skill); }); attackTriggerExcutors.RemoveAt(index); } if (skill.hitTrigger) { int index = hitTriggerExcutors.FindIndex(delegate(TriggeredSkillExcutor obj) { return(obj.triggeredSkill == skill); }); hitTriggerExcutors.RemoveAt(index); } if (skill.beAttackTrigger) { int index = beAttackedTriggerExcutors.FindIndex(delegate(TriggeredSkillExcutor obj) { return(obj.triggeredSkill == skill); }); beAttackedTriggerExcutors.RemoveAt(index); } if (skill.beHitTrigger) { int index = beHitTriggerExcutors.FindIndex(delegate(TriggeredSkillExcutor obj) { return(obj.triggeredSkill == skill); }); beHitTriggerExcutors.RemoveAt(index); } if (skill.fightEndTrigger) { int index = fightEndTriggerExcutors.FindIndex(delegate(TriggeredSkillExcutor obj) { return(obj.triggeredSkill == skill); }); fightEndTriggerExcutors.RemoveAt(index); } }
public void Clear() { triggeredSkill = null; triggeredCallback = null; }
public TriggeredSkillExcutor(TriggeredPassiveSkill ts, SkillCallBack callBack) { this.triggeredSkill = ts; this.triggeredCallback = callBack; }