//todo 这个触发结构不好 后期优化重构 public bool TriggerMultiple(ISkill skill, List <int> actionIds, int identifyId) { if (skill == null) { SkillUtil.LogError("skill is nullptr"); return(false); } var result = true; foreach (var actionId in actionIds) { skill.AddSkillAction(actionId, identifyId); } foreach (var actionId in actionIds) { if (!Internal_TriggerAction(skill, actionId, identifyId, false, false)) { result = false; } } return(result); }
private bool Internal_TriggerAction(ISkill skill, int actionId, int identifyId, bool isBuff, bool addSkillAction = true) { SkillActionData data = null; if (!IsValid(skill, actionId, identifyId, isBuff, ref data)) { return(false); } var param = skill.GetParam(identifyId, isBuff); if (map.ContainsKey(data.ActionType)) { // SkillUtil.Log(string.Format(" Trigger Type-> {0}", (SkillActionType) data.ActionType)); if (addSkillAction && !isBuff) { skill.AddSkillAction(actionId, identifyId); } map[data.ActionType].Action(skill, data, param); } else { SkillUtil.LogError(SkillUtil.GetSkillDebugDes(skill) + " Ation Type" + data.ActionType + " 未注册"); } return(true); }