private void TimeOver(BuffData _this) { if (_this.Retinue != null) { if (_this.GetBear() != null) { _this.GetBear().RemoveRetinue(_this.Retinue); } _this.Retinue = null; } //if (m_Bear is ObjPlayer) //{ // Logger.Info("TimeOver by Buffid={0}", m_nBuffId); //} MissBuff.DoEffect(_this.m_Bear.Scene, _this.m_Bear, _this); //if (m_Bear is ObjPlayer) //{ // Logger.Info("MissBuff by Buffid={0}", m_nBuffId); //} if (_this.m_Bear != null) { _this.m_Bear.DeleteBuff(_this, eCleanBuffType.TimeOver); _this.m_Bear.BuffList.Do_Del_Buff(); } //if (m_Bear is ObjPlayer) //{ // Logger.Info("DeleteBuff by Buffid={0}", m_nBuffId); //} //if ((ulong)m_UpdataTrigger > 0) //{ // SceneServerControl.Timer.DeleteTrigger(m_UpdataTrigger); //} _this.mOverTrigger = null; _this.m_UpdataTrigger = null; }
public void OnDestroy(BuffData _this) { if (_this.Retinue != null && _this.GetBear() != null) { _this.GetBear().RemoveRetinue(_this.Retinue); _this.Retinue = null; } SetCaster(_this, null); _this.SetBear(null); if (_this.mOverTrigger != null) { SceneServerControl.Timer.DeleteTrigger(_this.mOverTrigger); _this.mOverTrigger = null; } if (_this.m_UpdataTrigger != null) { SceneServerControl.Timer.DeleteTrigger(_this.m_UpdataTrigger); _this.m_UpdataTrigger = null; } _this.mId = 0; ObjectPool <BuffData> .Release(_this); //ObjectPool<BuffData>.Release(this); _this.mCoolDownTime = DateTime.MinValue; }
public BuffResult NetBuffResult(Scene scene, BuffData buff, int damageType, int damageValue, BuffType type, int delayView) { var caster = buff.GetCaster(); var bear = buff.GetBear(); var nowHp = bear.GetAttribute(eAttributeType.HpNow); if (scene != null && scene.isNeedDamageModify) { if (Scene.IsNeedChangeHp(bear) != null) { nowHp = (int)(nowHp / scene.BeDamageModify); } } var result = new BuffResult { SkillObjId = caster.ObjId, TargetObjId = bear.ObjId, BuffTypeId = buff.GetBuffId(), Type = type, Damage = damageValue, ViewTime = Extension.AddTimeDiffToNet(delayView), Param = { damageType, nowHp } }; return(result); }
public void CalcAttrDamage(Dictionary <int, int> totalDamage, BuffData buff) { if (totalDamage.Count > 0) { // 有伤害数 var caster = buff.GetCaster(); var bear = buff.GetBear(); var damage = caster.Attr.GetAttrDamageValue(bear, eAttributeType.FireAttack); if (damage > 0) { totalDamage[(int)eDamageType.FireAttr] = damage; } damage = caster.Attr.GetAttrDamageValue(bear, eAttributeType.IceAttack); if (damage > 0) { totalDamage[(int)eDamageType.IceAttr] = damage; } damage = caster.Attr.GetAttrDamageValue(bear, eAttributeType.PoisonAttack); if (damage > 0) { totalDamage[(int)eDamageType.PoisonAttr] = damage; } } }