Esempio n. 1
0
 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;
 }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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;
                }
            }
        }