Example #1
0
        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;
                    }
                }
            });
        }
Example #2
0
 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);
 }