private void _AttachDamage(IIndividual individual, float damage)
        {
            HitForce hit = new HitForce();

            hit.Damage = damage;
            _AttachHit(individual, hit);
        }
示例#2
0
        void IIndividual.AttachHit(Guid target, HitForce force)
        {
            var damage = force.Damage;

            _DamageCount += damage;

            _AidCount += force.Aid;

            if (InjuredEvent != null)
            {
                InjuredEvent(target, damage);
            }
        }
        private void _AttachHit(IIndividual target, HitForce hit_force)
        {
            if (_Attacked.Contains(target.Id) == false)
            {
                _Attacked.Add(target.Id);

                if (_Caster.HasHit() && _HitNextsEvent != null)
                {
                    _HitNextsEvent(_Caster.Data.HitNexts);
                }


                target.AttachHit(_Player.Id, hit_force);
            }
        }
示例#4
0
 void IStatus.Leave()
 {
     if (_Complete)
     {
         var item = _Player.Bag.Find(_ItemId);
         if (item != null)
         {
             var target = _Targets.Values.FirstOrDefault(t => EntityData.IsActor(t.EntityType) && t.Status == ACTOR_STATUS_TYPE.STUN);
             if (target != null)
             {
                 HitForce hit = new HitForce();
                 var      aid = item.GetAid() + _Caster.GetAid();
                 hit.Aid = aid;
                 target.AttachHit(_Player.Id, hit);
                 _Player.Bag.Remove(_ItemId);
             }
         }
     }
 }