Example #1
0
        public static void SpawnNPC(ushort zoneId, uint templateId, ulong entityId, bool v, bool villager, int remainingEnrageTime)
        {
            if (Game.DB.MonsterDatabase.TryGetMonster(templateId, zoneId, out var m))
            {
                if (TccUtils.IsWorldBoss(zoneId, templateId))
                {
                    if (m.IsBoss)
                    {
                        var msg = ChatManager.Instance.Factory.CreateMessage(ChatChannel.WorldBoss, "System",
                                                                             $"{ChatUtils.Font(m.Name)}{ChatUtils.Font(" is nearby.", "cccccc", 15)}");
                        ChatManager.Instance.AddChatMessage(msg);
                    }
                }

                Game.NearbyNPC[entityId] = m.Name;
                FlyingGuardianDataProvider.InvokeProgressChanged();
                if (villager)
                {
                    return;
                }
                if (m.IsBoss)
                {
                    WindowManager.ViewModels.NpcVM.AddOrUpdateNpc(entityId, m.MaxHP, m.MaxHP, m.IsBoss, HpChangeSource.CreatureChangeHp, templateId, zoneId, v, remainingEnrageTime);
                }
                else
                {
                    if (App.Settings.NpcWindowSettings.HideAdds)
                    {
                        return;
                    }
                    WindowManager.ViewModels.NpcVM.AddOrUpdateNpc(entityId, m.MaxHP, m.MaxHP, m.IsBoss, HpChangeSource.CreatureChangeHp, templateId, zoneId, false, remainingEnrageTime);
                }
            }
        }
        public static void HandleAbnormalityRefresh(S_ABNORMALITY_REFRESH p)
        {
            AbnormalityManager.BeginAbnormality(p.AbnormalityId, p.TargetId, p.TargetId, p.Duration, p.Stacks);
            if (p.TargetId.IsMe()) FlyingGuardianDataProvider.HandleAbnormal(p);

            if (!Settings.SettingsHolder.ClassWindowSettings.Enabled) return;
            AbnormalityManager.CurrentAbnormalityTracker?.CheckAbnormality(p);
        }
        public static void HandleAbnormalityEnd(S_ABNORMALITY_END p)
        {
            if (!AbnormalityManager.EndAbnormality(p.TargetId, p.AbnormalityId)) return;
            if (p.TargetId.IsMe()) FlyingGuardianDataProvider.HandleAbnormal(p);

            if (!Settings.SettingsHolder.ClassWindowSettings.Enabled) return;
            AbnormalityManager.CurrentAbnormalityTracker?.CheckAbnormality(p);
        }
        public static void HandleSpawnMe(S_SPAWN_ME p)
        {
            EntityManager.ClearNPC();
            FlyingGuardianDataProvider.Stacks = 0;
            FlyingGuardianDataProvider.StackType = FlightStackType.None;
            FlyingGuardianDataProvider.InvokeProgressChanged();
            var t = new System.Timers.Timer(2000);
            t.Elapsed += (s, ev) =>
            {
                t.Stop();
                SessionManager.LoadingScreen = false;
                WindowManager.ForegroundManager.RefreshDim();

            };
            t.Enabled = true;
        }