Esempio n. 1
0
        public void Kill(int entityId)
        {
            var entity = _entities[entityId];

            EntityKilled?.Invoke(entity);
            Destroy(entity.gameObject);
            _entities.Remove(entityId);
        }
Esempio n. 2
0
    public void Attack(LivingEntity target)
    {
        AttackEffect.Attack(entity.Position, target.Position);

        target.TakeDamage(damage);

        if (!target.IsAlive)
        {
            attract.moveStartLimit = Time.time + coolOffAfterKill;
            EntityKilled?.Invoke(new KillEventArgs()
            {
                killer = entity, victim = target
            });
        }

        nextPossibleAttack = Time.time + damageInterval;
    }
Esempio n. 3
0
    public bool Kill(Entity entity)
    {
        if (entity == null)
        {
            return(false);
        }

        if (!entities.TryGetValue(entity.owner, out var value))
        {
            return(false);
        }
        Destroy(entity.gameObject);
        entity.PlayDeathAnimation();
        value.Remove(entity);

        EntityKilled?.Invoke(this, entity);

        return(true);
    }
Esempio n. 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        void KillImmediatly(uint id)
        {
            if (id == 0)
            {
                return;
            }

            Entity ent;

            if (entities.TryGetValue(id, out ent))
            {
                ent.DestroyRenderState(fxPlayback);
                EntityKilled?.Invoke(this, new EntityEventArgs(ent));

                entities.Remove(id);
                ent?.Controller?.Killed();
            }
            else
            {
                Log.Warning("Entity #{0} does not exist", id);
            }
        }
Esempio n. 5
0
 private static void OnEntityKilled(EntityKilledEventArgs e)
 {
     EntityKilled?.Invoke(null, e);
 }
 /// <summary>
 /// 引发实体被击杀事件
 /// </summary>
 internal void RaiseEntityKilledEvent(int killerEntityID, int deadEntityID)
 {
     EntityKilled?.Invoke(killerEntityID, deadEntityID);
 }
Esempio n. 7
0
 public void SetOnKill(EntityKilled onKilled)
 {
     m_onKill = onKilled;
 }