Ejemplo n.º 1
0
        public override void CheckAbnormality(S_ABNORMALITY_REFRESH p)
        {
            CheckVoc(p);

            if (!SessionManager.IsMe(p.TargetId))
            {
                return;
            }

            if (CritAuraIDs.Contains(p.AbnormalityId))
            {
                TccUtils.CurrentClassVM <MysticLayoutVM>().Auras.CritAura = true;
            }
            else if (ManaAuraIDs.Contains(p.AbnormalityId))
            {
                TccUtils.CurrentClassVM <MysticLayoutVM>().Auras.ManaAura = true;
            }
            else if (CritResAuraIDs.Contains(p.AbnormalityId))
            {
                TccUtils.CurrentClassVM <MysticLayoutVM>().Auras.CritResAura = true;
            }
            else if (SwiftAuraIDs.Contains(p.AbnormalityId))
            {
                TccUtils.CurrentClassVM <MysticLayoutVM>().Auras.SwiftAura = true;
            }
            else if (p.AbnormalityId == VowId)
            {
                TccUtils.CurrentClassVM <MysticLayoutVM>().Vow.Buff.Refresh(p.Duration, CooldownMode.Normal);
            }
            else if (ElementalizeIDs.Contains(p.AbnormalityId))
            {
                TccUtils.CurrentClassVM <MysticLayoutVM>().Elementalize = true;
            }
        }
Ejemplo n.º 2
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);
                }
            }
        }
Ejemplo n.º 3
0
 private static void CheckUnleashAbnormals(S_ABNORMALITY_BEGIN p)
 {
     if (TimeManager.Instance.CurrentRegion == RegionEnum.KR)  // KR patch by HQ
     {
         if (p.AbnormalityId == SinisterKR && SessionManager.IsMe(p.TargetId))
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().SinisterTracker.Val = p.Stacks;
         }
         if (p.AbnormalityId == DexterKR && SessionManager.IsMe(p.TargetId))
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().DexterTracker.Val = p.Stacks;
         }
         if (p.AbnormalityId == Rampage && SessionManager.IsMe(p.TargetId))
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().RampageTracker.Val = p.Stacks;
         }
     }
     else
     {
         if (p.AbnormalityId == Sinister && SessionManager.IsMe(p.TargetId))
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().SinisterTracker.Val = p.Stacks;
         }
         if (p.AbnormalityId == Dexter && SessionManager.IsMe(p.TargetId))
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().DexterTracker.Val = p.Stacks;
         }
         if (p.AbnormalityId == Rampage && SessionManager.IsMe(p.TargetId))
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().RampageTracker.Val = p.Stacks;
         }
     }
 }
 internal void Save()
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         if (MainSkills.Count == 0 && SecondarySkills.Count == 0 && HiddenSkills.Count == 0)
         {
             return;
         }
         var root = new XElement("Skills");
         MainSkills.ToList().ForEach(mainSkill =>
         {
             var tag = mainSkill.CooldownType.ToString();
             root.Add(new XElement(tag, new XAttribute("id", mainSkill.Skill.Id), new XAttribute("row", 1), new XAttribute("name", mainSkill.Skill.ShortName)));
         });
         SecondarySkills.ToList().ForEach(secSkill =>
         {
             var tag = secSkill.CooldownType.ToString();
             root.Add(new XElement(tag, new XAttribute("id", secSkill.Skill.Id), new XAttribute("row", 2), new XAttribute("name", secSkill.Skill.ShortName)));
         });
         HiddenSkills.ToList().ForEach(sk =>
         {
             var tag = sk.CooldownType.ToString();
             root.Add(new XElement(tag, new XAttribute("id", sk.Skill.Id), new XAttribute("row", 3), new XAttribute("name", sk.Skill.ShortName)));
         });
         if (SessionManager.CurrentPlayer.Class > (Class)12)
         {
             return;
         }
         root.Save(Path.Combine(App.ResourcesPath, "config/skills", $"{TccUtils.ClassEnumToString(SessionManager.CurrentPlayer.Class).ToLower()}-skills.xml"));
     }));
 }
Ejemplo n.º 5
0
 private static void CheckUnleashAbnormals(S_ABNORMALITY_END p)
 {
     if (TimeManager.Instance.CurrentRegion == RegionEnum.KR)  // KR patch by HQ
     {
         if (p.AbnormalityId == SinisterKR)
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().SinisterTracker.Val = 0;
         }
         if (p.AbnormalityId == DexterKR)
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().DexterTracker.Val = 0;
         }
         if (p.AbnormalityId == Rampage)
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().RampageTracker.Val = 0;
         }
     }
     else
     {
         if (p.AbnormalityId == Sinister)
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().SinisterTracker.Val = 0;
         }
         if (p.AbnormalityId == Dexter)
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().DexterTracker.Val = 0;
         }
         if (p.AbnormalityId == Rampage)
         {
             TccUtils.CurrentClassVM <BerserkerLayoutVM>().RampageTracker.Val = 0;
         }
     }
 }
 private static void CheckLineHeld(S_ABNORMALITY_BEGIN p)
 {
     if (p.AbnormalityId != LineHeldId)
     {
         return;
     }
     TccUtils.CurrentClassVM <LancerLayoutVM>().LH.StartBaseBuff(p.Duration);
 }
 private static void CheckGodsfall(S_ABNORMALITY_BEGIN p)
 {
     if (p.AbnormalityId != GodsfallId)
     {
         return;
     }
     TccUtils.CurrentClassVM <ValkyrieLayoutVM>().Godsfall.Buff.Start(p.Duration);
 }
Ejemplo n.º 8
0
 private static void CheckGrace(S_ABNORMALITY_END p)
 {
     if (p.AbnormalityId != GraceId)
     {
         return;
     }
     TccUtils.CurrentClassVM <PriestLayoutVM>().Grace.Buff.Refresh(0, CooldownMode.Normal);
 }
Ejemplo n.º 9
0
 private static void OnSpawnUser(S_SPAWN_USER p)
 {
     _win.Dispatcher.BeginInvoke(new Action(() =>
     {
         _win.VM.AddMatch(new CardVM(p.Name, $"{p.GuildRank} of {p.GuildName}", p.Level,
                                     App.Random.Next(10, 1000), TccUtils.RaceFromTemplateId((int)p.TemplateId), p.PlayerId));
     }));
 }
 private static void CheckGshout(S_ABNORMALITY_REFRESH p)
 {
     if (!GShoutIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <LancerLayoutVM>().GuardianShout.Buff.Start(p.Duration);
 }
Ejemplo n.º 11
0
 private static void CheckFocusX(S_ABNORMALITY_END p)
 {
     if (p.AbnormalityId != FocusXId)
     {
         return;
     }
     TccUtils.CurrentClassVM <ArcherLayoutVM>().Focus.StopFocusX();
 }
Ejemplo n.º 12
0
 private static void CheckFocusX(S_ABNORMALITY_REFRESH p)
 {
     if (p.AbnormalityId != FocusXId)
     {
         return;
     }
     TccUtils.CurrentClassVM <ArcherLayoutVM>().Focus.StartFocusX(p.Duration);
 }
Ejemplo n.º 13
0
 private static void CheckGrace(S_ABNORMALITY_BEGIN p)
 {
     if (p.AbnormalityId != GraceId)
     {
         return;
     }
     TccUtils.CurrentClassVM <PriestLayoutVM>().Grace.Buff.Start(p.Duration);
 }
Ejemplo n.º 14
0
 private static void CheckEnergyStars(S_ABNORMALITY_END p)
 {
     if (!EnergyStarsIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <PriestLayoutVM>().EnergyStars.Buff.Refresh(0, CooldownMode.Normal);
 }
Ejemplo n.º 15
0
 private static void CheckEnergyStars(S_ABNORMALITY_BEGIN p)
 {
     if (!EnergyStarsIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <PriestLayoutVM>().EnergyStars.Buff.Start(p.Duration);
 }
Ejemplo n.º 16
0
 private static void CheckEdict(S_ABNORMALITY_REFRESH p)
 {
     if (!EdictIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <PriestLayoutVM>().EdictOfJudgment.Buff.Refresh(p.Duration, CooldownMode.Normal);
 }
Ejemplo n.º 17
0
 private static void CheckEdict(S_ABNORMALITY_BEGIN p)
 {
     if (!EdictIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <PriestLayoutVM>().EdictOfJudgment.Buff.Start(p.Duration);
 }
 private static void CheckLineHeld(S_ABNORMALITY_REFRESH p)
 {
     if (p.AbnormalityId != LineHeldId)
     {
         return;
     }
     TccUtils.CurrentClassVM <LancerLayoutVM>().LH.RefreshBaseBuff(p.Stacks, p.Duration);
 }
 private static void CheckLineHeld(S_ABNORMALITY_END p)
 {
     if (p.AbnormalityId != LineHeldId)
     {
         return;
     }
     TccUtils.CurrentClassVM <LancerLayoutVM>().LH.Stop();
 }
 private static void CheckFocus(S_ABNORMALITY_END p)
 {
     if (p.AbnormalityId != FocusId)
     {
         return;
     }
     TccUtils.CurrentClassVM <NinjaLayoutVM>().FocusOn = false;
 }
 private static void CheckGshout(S_ABNORMALITY_END p)
 {
     if (!GShoutIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <LancerLayoutVM>().GuardianShout.Buff.Refresh(0, CooldownMode.Normal);
 }
 private static void CheckInnerHarmony(S_ABNORMALITY_BEGIN p)
 {
     if (p.AbnormalityId != InnerHarmonyBuffId)
     {
         return;
     }
     TccUtils.CurrentClassVM <NinjaLayoutVM>().InnerHarmony.Buff.Start(p.Duration);
 }
 private static void CheckTraverseCut(S_ABNORMALITY_END p)
 {
     if (!TraverseCutIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <WarriorLayoutVM>().TraverseCut.Val = 0;
 }
 private static void CheckDefensiveStance(S_ABNORMALITY_BEGIN p)
 {
     if (!DstanceIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <WarriorLayoutVM>().Stance.CurrentStance = WarriorStance.Defensive;
 }
 private static void CheckInnerHarmony(S_ABNORMALITY_END p)
 {
     if (p.AbnormalityId != InnerHarmonyBuffId)
     {
         return;
     }
     TccUtils.CurrentClassVM <NinjaLayoutVM>().InnerHarmony.Buff.Refresh(0, CooldownMode.Normal);
 }
 private static void CheckGodsfall(S_ABNORMALITY_REFRESH p)
 {
     if (p.AbnormalityId != GodsfallId)
     {
         return;
     }
     TccUtils.CurrentClassVM <ValkyrieLayoutVM>().Godsfall.Buff.Refresh(p.Duration, CooldownMode.Normal);
 }
 private static void CheckAssaultStance(S_ABNORMALITY_END p)
 {
     if (!AstanceIDs.Contains(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <WarriorLayoutVM>().Stance.CurrentStance = WarriorStance.None;
 }
 private static void CheckManaBoost(S_ABNORMALITY_BEGIN p)
 {
     if (!IsManaBoost(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <SorcererLayoutVM>().ManaBoost.Buff.Start(p.Duration);
 }
 private static void CheckManaBoost(S_ABNORMALITY_END p)
 {
     if (!IsManaBoost(p.AbnormalityId))
     {
         return;
     }
     TccUtils.CurrentClassVM <SorcererLayoutVM>().ManaBoost.Buff.Refresh(0, CooldownMode.Normal);
 }
 private static void CheckRagnarok(S_ABNORMALITY_END p)
 {
     if (p.AbnormalityId != RagnarokId)
     {
         return;
     }
     TccUtils.CurrentClassVM <ValkyrieLayoutVM>().Ragnarok.Buff.Refresh(0, CooldownMode.Normal);
 }