public void Suffer(ServerNPC caster, ServerNPC sufferer, SelfDescribed des, WarServerNpcMgr npcMgr) { //拿到算子 InjuryOp CoreS = OperatorMgr.instance.getImplement <InjuryOp>(EffectOp.Injury); //TODO: find buff EffectConfigData[] help = null; handled = new Treat { treatValue = des.targetEnd.param1, treatType = (SkillTypeClass)des.targetEnd.param3, isCritical = des.targetEnd.param2 == 1, }; SufTreat res = CoreS.toSufferTreat(ref handled, sufferer.data, caster.data, help); if (res.isCureProtectioin) { //TODO : add Info here. } /// /// 最终结果的计算 /// NPCRuntimeData rtdata = sufferer.data.rtData; rtdata.curHp += (int)handled.treatValue; rtdata.curHp = rtdata.curHp > rtdata.totalHp ? rtdata.totalHp : rtdata.curHp; }
public SufTreat toSufferTreat(ref Treat treat, NPCData suffer, NPCData from, EffectConfigData[] resis) { #if DEBUG Utils.Assert(suffer == null, "suffer argument can't be null when suffering treatment."); Utils.Assert(from == null, "from argument can't be null when suffering treatment."); #endif SufTreat res = new SufTreat() { treatType = treat.treatType, treatValue = treat.treatValue, isCritical = treat.isCritical, }; return(res); }