private void OnDespawnNpc(S_DESPAWN_NPC p) { Dispatcher.InvokeAsync(() => { if (TryFindNPC(p.Target, out var boss)) { if (p.Type == DespawnType.OutOfView) { _savedHp[p.Target] = boss.CurrentHP; } else { _savedHp.Remove(p.Target); } if (!boss.Visible || boss.IsTower) { _npcList.Remove(boss); boss.Dispose(); } else { boss.Delete(); } NpcListChanged?.Invoke(); if (SelectedDragon != null && SelectedDragon.EntityId == p.Target) { SelectedDragon = null; } if (VisibleBossesCount == 0) { Game.Encounter = false; } } }); }
public static void HandleDespawnNpc(S_DESPAWN_NPC p) { EntitiesManager.DespawnNPC(p.Target, p.Type); }
public static void HandleNpcDespawn(S_DESPAWN_NPC p) { EntitiesManager.DespawnNPC(p.target); }