public void Kill(int entityId) { var entity = _entities[entityId]; EntityKilled?.Invoke(entity); Destroy(entity.gameObject); _entities.Remove(entityId); }
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; }
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); }
/// <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); } }
private static void OnEntityKilled(EntityKilledEventArgs e) { EntityKilled?.Invoke(null, e); }
/// <summary> /// 引发实体被击杀事件 /// </summary> internal void RaiseEntityKilledEvent(int killerEntityID, int deadEntityID) { EntityKilled?.Invoke(killerEntityID, deadEntityID); }
public void SetOnKill(EntityKilled onKilled) { m_onKill = onKilled; }