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; } }
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); } } }
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")); })); }
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); }
private static void CheckGrace(S_ABNORMALITY_END p) { if (p.AbnormalityId != GraceId) { return; } TccUtils.CurrentClassVM <PriestLayoutVM>().Grace.Buff.Refresh(0, CooldownMode.Normal); }
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); }
private static void CheckFocusX(S_ABNORMALITY_END p) { if (p.AbnormalityId != FocusXId) { return; } TccUtils.CurrentClassVM <ArcherLayoutVM>().Focus.StopFocusX(); }
private static void CheckFocusX(S_ABNORMALITY_REFRESH p) { if (p.AbnormalityId != FocusXId) { return; } TccUtils.CurrentClassVM <ArcherLayoutVM>().Focus.StartFocusX(p.Duration); }
private static void CheckGrace(S_ABNORMALITY_BEGIN p) { if (p.AbnormalityId != GraceId) { return; } TccUtils.CurrentClassVM <PriestLayoutVM>().Grace.Buff.Start(p.Duration); }
private static void CheckEnergyStars(S_ABNORMALITY_END p) { if (!EnergyStarsIDs.Contains(p.AbnormalityId)) { return; } TccUtils.CurrentClassVM <PriestLayoutVM>().EnergyStars.Buff.Refresh(0, CooldownMode.Normal); }
private static void CheckEnergyStars(S_ABNORMALITY_BEGIN p) { if (!EnergyStarsIDs.Contains(p.AbnormalityId)) { return; } TccUtils.CurrentClassVM <PriestLayoutVM>().EnergyStars.Buff.Start(p.Duration); }
private static void CheckEdict(S_ABNORMALITY_REFRESH p) { if (!EdictIDs.Contains(p.AbnormalityId)) { return; } TccUtils.CurrentClassVM <PriestLayoutVM>().EdictOfJudgment.Buff.Refresh(p.Duration, CooldownMode.Normal); }
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); }