private void castSkill(short skType, bool onlyEnmy = false) { if (skType != SkillOpData.Death_Closed_Skill) { bool attCheck = _curAtter.alive; bool defCheck = _curDefer.alive; if (SkillOpData.Anger_Skill == skType || SkillOpData.Common_Skill == skType) { if (!attCheck || !defCheck) { return; } } List <BT_Skill> castArr = new List <BT_Skill>(); List <BT_Skill> realCastArr = new List <BT_Skill>(); /// /// 保证己方的怒气技能优先触发 /// if (defCheck) { List <BT_Skill> defCast = _curDefer.canCastSkill(skType); CastAllAngry(defCast, _curDefer); castArr.AddRange(defCast); } if (attCheck && onlyEnmy == false) { List <BT_Skill> attCast = _curAtter.canCastSkill(skType); castArr.AddRange(attCast); } if (castArr.Count > 0) { castArr.Sort(BT_WarUtils.sortSkillArr); bool cancelAoyi = false; foreach (BT_Skill sk in castArr) { //如果是某些特殊技能的情况下,则奥义技能不应该释放 if (sk.op == 27 || sk.op == 29 || sk.op == 202) { if (sk.real == 1) { cancelAoyi = true; } } } if (cancelAoyi) { foreach (BT_Skill sk in castArr) { if (sk.real != 1) { realCastArr.Add(sk); } else { resetAoYi(sk, sk.owner.ownerTeam); } } } else { realCastArr = castArr; } if (realCastArr.Count > 0) { foreach (BT_Skill sk in realCastArr) { //不能触发特殊技能(属性不被克制),也不能触发变为全属性技能, 也不能是登场加怒气的技能 if (sk.op != 27 && sk.op != 29 && sk.op != 202) { sk.castSkill(); sk.RdCast = 1; } } } } } else { ConsoleEx.DebugLog("战斗模块不牵扯濒死技能!"); } }