Пример #1
0
 public virtual BuffSuperpositionRet OnBuffSuperposition(SkillObj tarObj, SkillObj srcObj, BattleReason reason, BuffConfig_New buffConfig)
 {
     BuffSuperpositionRet ret;
     ret.bType = BuffSuperpositionType.None;
     ret.buff = new BuffInfo_New();
     return ret;
 }
Пример #2
0
 public override bool InitBuffInfo(SkillObj self, SkillObj srcObj, BattleReason reason, BuffInfo_New buffInfo, BuffConfig_New buffConfig, bool RefreshGUID = true)
 {
     base.InitBuffInfo(self, srcObj, reason, buffInfo, buffConfig, RefreshGUID);
     int absorbDamage = self.GetBuffIntParam(buffConfig, AbsorbDamageKey);
     if(absorbDamage > 0)
     {
         self.SetBuffIntParam(buffInfo, AbsorbDamageKey, absorbDamage);
     }
     return true;
 }
Пример #3
0
        public override bool InitBuffInfo(SkillObj self, SkillObj srcObj, BattleReason reason, BuffInfo_New buffInfo, BuffConfig_New buffConfig, bool RefreshGUID = true)
        {
            base.InitBuffInfo(self, srcObj, reason, buffInfo, buffConfig, RefreshGUID);
            int absorbDamage = self.GetBuffIntParam(buffConfig, AbsorbDamageKey);

            if (absorbDamage > 0)
            {
                self.SetBuffIntParam(buffInfo, AbsorbDamageKey, absorbDamage);
            }
            return(true);
        }
Пример #4
0
        public virtual bool InitBuffInfo(SkillObj self, SkillObj srcObj, BattleReason reason, BuffInfo_New buffInfo, BuffConfig_New buffConfig, bool RefreshGUID = true)
        {
            var buffId = self.GetBuffID(buffConfig);

            self.SetBuffId(buffInfo, buffId);
            if (RefreshGUID)
            {
                var guid = BattleModule.BattleID;
                self.SetBuffGuid(buffInfo, guid);
            }
            self.SetBuffStateIndex(buffInfo, 0);
            if (srcObj != null)
            {
                if (srcObj.GetParentID() > 0)
                {
                    self.SetSrcID(buffInfo, srcObj.GetParentID());
                }
                else
                {
                    self.SetSrcID(buffInfo, srcObj.GetID());
                }
            }
            var startLogicStateName = self.GetLogicState(buffConfig, 0);
            var startLogicState     = BattleModule.GetBuffLogicState(startLogicStateName);

            if (startLogicState == null)
            {
                self.LogInfo("startLogicState == null BuffId:[{0}] startLogicStateName:[{1}]".F(buffId, startLogicStateName));
                return(false);
            }
            //init
            startLogicState.InitBuff(self, buffInfo, buffConfig, 0);
            startLogicState.InitState(self, buffInfo, buffConfig, 0);

            var targetSelectName = self.GetTargetSelect(buffConfig);

            if (targetSelectName != null)
            {
                var targetSelect = BattleModule.GetTargetSelect(targetSelectName);
                if (targetSelect == null)
                {
                    self.LogInfo("targetSelect == null buffId:[{0}] targetSelectName:[{1}]".F(buffId, targetSelectName));
                    return(false);
                }
                targetSelect.Init(self, buffInfo, buffConfig);
            }
            return(true);
        }
 public override BuffSuperpositionRet OnBuffSuperposition(SkillObj tarObj, SkillObj srcObj, BattleReason reason, BuffConfig_New buffConfig)
 {
     BuffSuperpositionRet ret;
     ret.bType = BuffSuperpositionType.None;
     ret.buff = null;
     var tarBuff = tarObj.GetBuffList().Where(b => tarObj.GetBuffID(b) == tarObj.GetBuffID(buffConfig));
     if (tarBuff != null && tarBuff.FirstOrDefault() != null)
     {
         ret.bType = BuffSuperpositionType.Refresh;
         var buff = tarBuff.First();
         ret.buff = buff;
     }
     else
     {
         ret.bType = BuffSuperpositionType.Add;
         ret.buff = new BuffInfo_New();
     }
     return ret;
 }
        public override BuffSuperpositionRet OnBuffSuperposition(SkillObj tarObj, SkillObj srcObj, BattleReason reason, BuffConfig_New buffConfig)
        {
            BuffSuperpositionRet ret;
            ret.bType = BuffSuperpositionType.None;
            ret.buff = null;
            var buffKey = tarObj.GetBuffKey(buffConfig);
            foreach (var tarBuff in tarObj.GetBuffList())
            {
                var tarBuffConfig = tarObj.GetBuffConfig(tarObj.GetBuffID(tarBuff));
                if(tarBuffConfig != null && tarObj.GetBuffKey(tarBuffConfig).Equals(buffKey))
                {
                    BattleModule.RemoveBuff(tarObj, srcObj, tarObj.GetBuffID(tarBuff), BattleReason.Replace);
                    //BattleModule.DetachBuff(tarObj, srcObj, tarBuff, tarBuffConfig);
                }
            }

            ret.bType = BuffSuperpositionType.Add;
            ret.buff = new BuffInfo_New();
            return ret;
        }
 public override BuffSuperpositionRet OnBuffSuperposition(SkillObj tarObj, SkillObj srcObj, BattleReason reason, BuffConfig_New buffConfig)
 {
     BuffSuperpositionRet ret;
     ret.bType = BuffSuperpositionType.None;
     ret.buff = null;
     var tarBuff = tarObj.GetBuffList().Where(b => tarObj.GetBuffID(b) == tarObj.GetBuffID(buffConfig));
     if (tarBuff != null && tarBuff.FirstOrDefault() != null)
     {
         ret.bType = BuffSuperpositionType.AddStateTime;
         var buff = tarBuff.First();
         double addTime = tarObj.GetBuffSuperpositionDoubleParam(buffConfig, Key_AddTime_SkillConfig);
         tarObj.SetBuffTime(buff, tarObj.GetBuffTime(buff) + addTime);
         tarObj.SetBuffStateTime(buff, tarObj.GetBuffStateTime(buff) + addTime);
         tarObj.NotifyBuffInfo(buff, BattleInfoNotifyType.Time_Buff, BattleNotifyTime.TickEnd);
     }
     else
     {
         ret.bType = BuffSuperpositionType.Add;
         ret.buff = new BuffInfo_New();
     }
     return ret;
 }
        override public BuffSuperpositionRet OnBuffSuperposition(SkillObj tarObj, SkillObj srcObj, BattleReason reason, BuffConfig_New buffConfig)
        {
            BuffSuperpositionRet ret;

            ret.bType = BuffSuperpositionType.None;
            ret.buff  = null;
            var buffKey = tarObj.GetBuffKey(buffConfig);

            foreach (var tarBuff in tarObj.GetBuffList())
            {
                var tarBuffConfig = tarObj.GetBuffConfig(tarObj.GetBuffID(tarBuff));
                if (tarBuffConfig != null && tarObj.GetBuffKey(tarBuffConfig).Equals(buffKey))
                {
                    BattleModule.RemoveBuff(tarObj, srcObj, tarObj.GetBuffID(tarBuff), BattleReason.Replace);
                    //BattleModule.DetachBuff(tarObj, srcObj, tarBuff, tarBuffConfig);
                }
            }

            ret.bType = BuffSuperpositionType.Add;
            ret.buff  = new BuffInfo_New();
            return(ret);
        }
Пример #9
0
        public static bool RemoveBuff(SkillObj tarObj, SkillObj srcObj, int deleteBuffId, BattleReason reason)
        {
            if (tarObj == null)
            {
                return false;
            }
            var buffConfig = tarObj.GetBuffConfig(deleteBuffId);
            if (buffConfig == null)
            {
                return false;
            }

            var tarBuffList = tarObj.GetBuffList();
            BuffInfo_New buff = null;
            foreach (var b in tarBuffList)
            {
                if (tarObj.GetBuffID(b) == deleteBuffId)
                {
                    buff = b;
                    break;
                }
            }
            if (buff == null)
            {
                return false;
            }
            //DetachBuff(tarObj, srcObj, buff, buffConfig);
            var buffLogicId = tarObj.GetBuffLogicId(buffConfig);
            if (!BuffLogics.ContainsKey(buffLogicId))
            {
                return false;
            }
            BuffLogic buffLogic = BuffLogics[buffLogicId];
            buffLogic.BuffOnEnd(tarObj, buff, buffConfig);

            ////先从src方进行修正
            //if (srcObj != null)
            //{
            //	var srcSkillList = srcObj.GetSkillList();
            //	var srcBuffList = srcObj.GetBuffList();
            //	if (srcSkillList != null)
            //	{
            //		foreach (var skillInfo in srcSkillList)
            //		{
            //			int skillId = srcObj.GetSkillID(skillInfo);
            //			SkillConfig_New skillConfig = srcObj.GetSkillConfig(skillId);
            //			var logic = GetSkillLogic(skillInfo, srcObj);
            //			logic.OnClearBuff(tarObj, srcObj, buff, skillInfo, skillConfig);
            //		}
            //	}
            //	if (srcBuffList != null)
            //	{
            //		foreach (var buffInfo in srcBuffList)
            //		{
            //			int buffId = srcObj.GetBuffID(buffInfo);
            //			BuffConfig_New srcBuffConfig = srcObj.GetBuffConfig(buffId);
            //			var logic = GetBuffLogic(buffInfo, srcObj);
            //			logic.OnClearBuff(tarObj, srcObj, buff, buffInfo, srcBuffConfig);
            //		}
            //	}
            //}
            //{
            //	var tarSkillList = tarObj.GetSkillList();
            //	if (tarSkillList != null)
            //	{
            //		foreach (var skillInfo in tarSkillList)
            //		{
            //			int skillId = tarObj.GetSkillID(skillInfo);
            //			SkillConfig_New skillConfig = tarObj.GetSkillConfig(skillId);
            //			var logic = GetSkillLogic(skillInfo, tarObj);
            //			logic.OnDetachBuff(tarObj, srcObj, buff, skillInfo, skillConfig);
            //		}
            //	}
            //	if (tarBuffList != null)
            //	{
            //		foreach (var buffInfo in tarBuffList)
            //		{
            //			int buffId = tarObj.GetBuffID(buffInfo);
            //			BuffConfig_New tarBuffConfig = tarObj.GetBuffConfig(buffId);
            //			var logic = GetBuffLogic(buffInfo, tarObj);
            //			logic.OnDetachBuff(tarObj, srcObj, buff, buffInfo, tarBuffConfig);
            //		}
            //	}
            //}
            //buffLogic.BuffOnEnd(tarObj, buff, buffConfig);
            return true;
        }
Пример #10
0
        override public BuffSuperpositionRet OnBuffSuperposition(SkillObj tarObj, SkillObj srcObj, BattleReason reason, BuffConfig_New buffConfig)
        {
            BuffSuperpositionRet ret;

            ret.bType = BuffSuperpositionType.None;
            ret.buff  = null;
            var tarBuff = tarObj.GetBuffList().Where(b => tarObj.GetBuffID(b) == tarObj.GetBuffID(buffConfig));

            if (tarBuff != null && tarBuff.FirstOrDefault() != null)
            {
                ret.bType = BuffSuperpositionType.Refresh;
                var buff = tarBuff.First();
                ret.buff = buff;
            }
            else
            {
                ret.bType = BuffSuperpositionType.Add;
                ret.buff  = new BuffInfo_New();
            }
            return(ret);
        }
Пример #11
0
        public static bool AddBuff(SkillObj tarObj, SkillObj srcObj, int newBuffId, BattleReason reason)
        {
            if (tarObj == null)
            {
                return false;
            }
            var buffConfig = tarObj.GetBuffConfig(newBuffId);
            if(buffConfig == null)
            {
                return false;
            }

            var buffSuperpositionLogicId = tarObj.GetBuffSuperpositionLogicId(buffConfig);
            if (!BuffSuperpositionLogics.ContainsKey(buffSuperpositionLogicId))
            {
                return false;
            }
            BuffSuperpositionLogic buffSuperpositionLogic = BuffSuperpositionLogics[buffSuperpositionLogicId];

            var buffRet = buffSuperpositionLogic.OnBuffSuperposition(tarObj, srcObj, reason, buffConfig);
            BuffInfo_New buff = buffRet.buff;
            if(buffRet.bType == BuffSuperpositionType.Refresh)
            {
                var buffLogicId = tarObj.GetBuffLogicId(buffConfig);
                if (!BuffLogics.ContainsKey(buffLogicId))
                {
                    return false;
                }
                BuffLogic buffLogic = BuffLogics[buffLogicId];
                buffLogic.InitBuffInfo(tarObj, srcObj, reason, buff, buffConfig, false);
            }
            else if(buffRet.bType == BuffSuperpositionType.Add)
            {
                var buffLogicId = tarObj.GetBuffLogicId(buffConfig);
                if (!BuffLogics.ContainsKey(buffLogicId))
                {
                    return false;
                }
                BuffLogic buffLogic = BuffLogics[buffLogicId];
                buffLogic.InitBuffInfo(tarObj, srcObj, reason, buff, buffConfig);

                //先从src方进行修正
                if (srcObj != null)
                {
                    var srcSkillList = srcObj.GetSkillList();
                    var srcBuffList = srcObj.GetBuffList();
                    if (srcSkillList != null)
                    {
                        foreach (var skillInfo in srcSkillList)
                        {
                            int skillId = srcObj.GetSkillID(skillInfo);
                            SkillConfig_New skillConfig = srcObj.GetSkillConfig(skillId);
                            var logic = GetSkillLogic(skillInfo, srcObj);
                            logic.OnSendBuff(tarObj, srcObj, buff, skillInfo, skillConfig);
                        }
                    }
                    if (srcBuffList != null)
                    {
                        foreach (var buffInfo in srcBuffList)
                        {
                            int buffId = srcObj.GetBuffID(buffInfo);
                            BuffConfig_New srcBuffConfig = srcObj.GetBuffConfig(buffId);
                            var logic = GetBuffLogic(buffInfo, srcObj);
                            logic.OnSendBuff(tarObj, srcObj, buff, buffInfo, srcBuffConfig);
                        }
                    }
                }
                {
                    var tarSkillList = tarObj.GetSkillList();
                    var tarBuffList = tarObj.GetBuffList();
                    if (tarSkillList != null)
                    {
                        foreach (var skillInfo in tarSkillList)
                        {
                            int skillId = tarObj.GetSkillID(skillInfo);
                            SkillConfig_New skillConfig = tarObj.GetSkillConfig(skillId);
                            var logic = GetSkillLogic(skillInfo, tarObj);
                            logic.OnAttachBuff(tarObj, srcObj, buff, skillInfo, skillConfig);
                        }
                    }
                    if (tarBuffList != null)
                    {
                        foreach (var buffInfo in tarBuffList)
                        {
                            int buffId = tarObj.GetBuffID(buffInfo);
                            BuffConfig_New tarBuffConfig = tarObj.GetBuffConfig(buffId);
                            var logic = GetBuffLogic(buffInfo, tarObj);
                            logic.OnAttachBuff(tarObj, srcObj, buff, buffInfo, tarBuffConfig);
                        }
                    }
                }
                buffLogic.OnAttach(tarObj, srcObj, buff, buffConfig);
                tarObj.AddTempBuffList(buff);
            }
            tarObj.NotifyBuffInfo(buff, BattleInfoNotifyType.All_Buff, BattleNotifyTime.TickEnd);
            return true;
        }
Пример #12
0
        override public BuffSuperpositionRet OnBuffSuperposition(SkillObj tarObj, SkillObj srcObj, BattleReason reason, BuffConfig_New buffConfig)
        {
            BuffSuperpositionRet ret;

            ret.bType = BuffSuperpositionType.None;
            ret.buff  = null;
            var tarBuff = tarObj.GetBuffList().Where(b => tarObj.GetBuffID(b) == tarObj.GetBuffID(buffConfig));

            if (tarBuff != null && tarBuff.FirstOrDefault() != null)
            {
                ret.bType = BuffSuperpositionType.AddStateTime;
                var buff = tarBuff.First();
                ret.buff = buff;
                double addTime = tarObj.GetBuffSuperpositionDoubleParam(buffConfig, Key_AddTime_SkillConfig);
                tarObj.SetBuffTime(buff, tarObj.GetBuffTime(buff) + addTime);
                tarObj.SetBuffStateTime(buff, tarObj.GetBuffStateTime(buff) + addTime);
                tarObj.NotifyBuffInfo(buff, BattleInfoNotifyType.Time_Buff, BattleNotifyTime.TickEnd);
            }
            else
            {
                ret.bType = BuffSuperpositionType.Add;
                ret.buff  = new BuffInfo_New();
            }
            return(ret);
        }
Пример #13
0
 public static Damage CreateDamage(int iValue, int iSrcId = -1, bool bNeedCalc = true, DamageType eType = DamageType.None, BattleReason eReason = BattleReason.None)
 {
     return(new Damage()
     {
         value = iValue, type = eType, reason = eReason, needCalc = bNeedCalc, srcId = iSrcId
     });
 }
Пример #14
0
        public static bool AddBuff(SkillObj tarObj, SkillObj srcObj, int newBuffId, BattleReason reason)
        {
            if (tarObj == null)
            {
                return(false);
            }
            var buffConfig = tarObj.GetBuffConfig(newBuffId);

            if (buffConfig == null)
            {
                return(false);
            }

            var buffSuperpositionLogicId = tarObj.GetBuffSuperpositionLogicId(buffConfig);

            if (!BuffSuperpositionLogics.ContainsKey(buffSuperpositionLogicId))
            {
                return(false);
            }
            BuffSuperpositionLogic buffSuperpositionLogic = BuffSuperpositionLogics[buffSuperpositionLogicId];

            var          buffRet = buffSuperpositionLogic.OnBuffSuperposition(tarObj, srcObj, reason, buffConfig);
            BuffInfo_New buff    = buffRet.buff;

            if (buffRet.bType == BuffSuperpositionType.Refresh)
            {
                var buffLogicId = tarObj.GetBuffLogicId(buffConfig);
                if (!BuffLogics.ContainsKey(buffLogicId))
                {
                    return(false);
                }
                BuffLogic buffLogic = BuffLogics[buffLogicId];
                buffLogic.InitBuffInfo(tarObj, srcObj, reason, buff, buffConfig, false);
            }
            else if (buffRet.bType == BuffSuperpositionType.Add)
            {
                var buffLogicId = tarObj.GetBuffLogicId(buffConfig);
                if (!BuffLogics.ContainsKey(buffLogicId))
                {
                    return(false);
                }
                BuffLogic buffLogic = BuffLogics[buffLogicId];
                buffLogic.InitBuffInfo(tarObj, srcObj, reason, buff, buffConfig);

                //先从src方进行修正
                if (srcObj != null)
                {
                    var srcSkillList = srcObj.GetSkillList();
                    var srcBuffList  = srcObj.GetBuffList();
                    if (srcSkillList != null)
                    {
                        foreach (var skillInfo in srcSkillList)
                        {
                            int             skillId     = srcObj.GetSkillID(skillInfo);
                            SkillConfig_New skillConfig = srcObj.GetSkillConfig(skillId);
                            var             logic       = GetSkillLogic(skillInfo, srcObj);
                            logic.OnSendBuff(tarObj, srcObj, buff, skillInfo, skillConfig);
                        }
                    }
                    if (srcBuffList != null)
                    {
                        foreach (var buffInfo in srcBuffList)
                        {
                            int            buffId        = srcObj.GetBuffID(buffInfo);
                            BuffConfig_New srcBuffConfig = srcObj.GetBuffConfig(buffId);
                            var            logic         = GetBuffLogic(buffInfo, srcObj);
                            logic.OnSendBuff(tarObj, srcObj, buff, buffInfo, srcBuffConfig);
                        }
                    }
                }
                {
                    var tarSkillList = tarObj.GetSkillList();
                    var tarBuffList  = tarObj.GetBuffList();
                    if (tarSkillList != null)
                    {
                        foreach (var skillInfo in tarSkillList)
                        {
                            int             skillId     = tarObj.GetSkillID(skillInfo);
                            SkillConfig_New skillConfig = tarObj.GetSkillConfig(skillId);
                            var             logic       = GetSkillLogic(skillInfo, tarObj);
                            logic.OnAttachBuff(tarObj, srcObj, buff, skillInfo, skillConfig);
                        }
                    }
                    if (tarBuffList != null)
                    {
                        foreach (var buffInfo in tarBuffList)
                        {
                            int            buffId        = tarObj.GetBuffID(buffInfo);
                            BuffConfig_New tarBuffConfig = tarObj.GetBuffConfig(buffId);
                            var            logic         = GetBuffLogic(buffInfo, tarObj);
                            logic.OnAttachBuff(tarObj, srcObj, buff, buffInfo, tarBuffConfig);
                        }
                    }
                }
                buffLogic.OnAttach(tarObj, srcObj, buff, buffConfig);
                tarObj.AddTempBuffList(buff);
            }
            tarObj.NotifyBuffInfo(buff, BattleInfoNotifyType.All_Buff, BattleNotifyTime.TickEnd);
            return(true);
        }
Пример #15
0
        public static bool RemoveBuff(SkillObj tarObj, SkillObj srcObj, int deleteBuffId, BattleReason reason)
        {
            if (tarObj == null)
            {
                return(false);
            }
            var buffConfig = tarObj.GetBuffConfig(deleteBuffId);

            if (buffConfig == null)
            {
                return(false);
            }

            var          tarBuffList = tarObj.GetBuffList();
            BuffInfo_New buff        = null;

            foreach (var b in tarBuffList)
            {
                if (tarObj.GetBuffID(b) == deleteBuffId)
                {
                    buff = b;
                    break;
                }
            }
            if (buff == null)
            {
                return(false);
            }
            //DetachBuff(tarObj, srcObj, buff, buffConfig);
            var buffLogicId = tarObj.GetBuffLogicId(buffConfig);

            if (!BuffLogics.ContainsKey(buffLogicId))
            {
                return(false);
            }
            BuffLogic buffLogic = BuffLogics[buffLogicId];

            buffLogic.BuffOnEnd(tarObj, buff, buffConfig);

            ////先从src方进行修正
            //if (srcObj != null)
            //{
            //	var srcSkillList = srcObj.GetSkillList();
            //	var srcBuffList = srcObj.GetBuffList();
            //	if (srcSkillList != null)
            //	{
            //		foreach (var skillInfo in srcSkillList)
            //		{
            //			int skillId = srcObj.GetSkillID(skillInfo);
            //			SkillConfig_New skillConfig = srcObj.GetSkillConfig(skillId);
            //			var logic = GetSkillLogic(skillInfo, srcObj);
            //			logic.OnClearBuff(tarObj, srcObj, buff, skillInfo, skillConfig);
            //		}
            //	}
            //	if (srcBuffList != null)
            //	{
            //		foreach (var buffInfo in srcBuffList)
            //		{
            //			int buffId = srcObj.GetBuffID(buffInfo);
            //			BuffConfig_New srcBuffConfig = srcObj.GetBuffConfig(buffId);
            //			var logic = GetBuffLogic(buffInfo, srcObj);
            //			logic.OnClearBuff(tarObj, srcObj, buff, buffInfo, srcBuffConfig);
            //		}
            //	}
            //}
            //{
            //	var tarSkillList = tarObj.GetSkillList();
            //	if (tarSkillList != null)
            //	{
            //		foreach (var skillInfo in tarSkillList)
            //		{
            //			int skillId = tarObj.GetSkillID(skillInfo);
            //			SkillConfig_New skillConfig = tarObj.GetSkillConfig(skillId);
            //			var logic = GetSkillLogic(skillInfo, tarObj);
            //			logic.OnDetachBuff(tarObj, srcObj, buff, skillInfo, skillConfig);
            //		}
            //	}
            //	if (tarBuffList != null)
            //	{
            //		foreach (var buffInfo in tarBuffList)
            //		{
            //			int buffId = tarObj.GetBuffID(buffInfo);
            //			BuffConfig_New tarBuffConfig = tarObj.GetBuffConfig(buffId);
            //			var logic = GetBuffLogic(buffInfo, tarObj);
            //			logic.OnDetachBuff(tarObj, srcObj, buff, buffInfo, tarBuffConfig);
            //		}
            //	}
            //}
            //buffLogic.BuffOnEnd(tarObj, buff, buffConfig);
            return(true);
        }
Пример #16
0
        override public BuffSuperpositionRet OnBuffSuperposition(SkillObj tarObj, SkillObj srcObj, BattleReason reason, BuffConfig_New buffConfig)
        {
            BuffSuperpositionRet ret;

            ret.bType = BuffSuperpositionType.Add;
            ret.buff  = new BuffInfo_New();
            return(ret);
        }
Пример #17
0
 public static Damage CreateDamage(int iValue, int iSrcId = -1,bool bNeedCalc = true, DamageType eType = DamageType.None, BattleReason eReason = BattleReason.None)
 {
     return new Damage() { value = iValue, type = eType, reason = eReason, needCalc = bNeedCalc, srcId = iSrcId };
 }