示例#1
0
        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;
        }
示例#2
0
        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);
        }