From 1990e5ea6820bb200b73f7219d0443baf07674a5 Mon Sep 17 00:00:00 2001 From: Zerthox Date: Sun, 1 Sep 2024 19:52:15 +0200 Subject: [PATCH 1/3] Add band together instant cast detection --- .../ProfHelpers/Revenant/RenegadeHelper.cs | 21 +++++++++++++++++-- GW2EIEvtcParser/ParserHelpers/SkillIDs.cs | 5 +++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs b/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs index a2c105e215..27fdd864f4 100644 --- a/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs +++ b/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using GW2EIEvtcParser.ParsedData; using GW2EIEvtcParser.ParserHelpers; @@ -12,6 +13,18 @@ namespace GW2EIEvtcParser.EIData { internal static class RenegadeHelper { + private class BandTogetherCastFinder : BuffLossCastFinder + { + public BandTogetherCastFinder(long skillID, MinionID minionID) : base(skillID, BandTogetherBuff) + { + UsingChecker((evt, combatData, agentData, skillData) => + { + // check for no expire and minion spawning ~200ms after + const long minionDelay = 200; + return evt.RemovedDuration > 0 && agentData.GetNPCsByID(minionID).Any(x => Math.Abs(x.FirstAware - minionDelay - evt.Time) < ServerDelayConstant); + }); + } + } internal static readonly List InstantCastFinder = new List() { @@ -20,7 +33,11 @@ internal static class RenegadeHelper new EffectCastFinder(OrdersFromAbove, EffectGUIDs.RenegadeOrdersFromAboveRighteousRebel) .UsingSrcSpecChecker(Spec.Renegade), new EffectCastFinder(OrdersFromAbove, EffectGUIDs.RenegadeOrdersFromAbove) - .UsingSrcSpecChecker(Spec.Renegade) + .UsingSrcSpecChecker(Spec.Renegade), + new BandTogetherCastFinder(BreakrazorsBastionSkillEnhanced, MinionID.EraBreakrazor), + new BandTogetherCastFinder(RazorclawsRageSkillEnhanced, MinionID.JasRazorclaw), + new BandTogetherCastFinder(DarkrazorsDaringSkillEnhanced, MinionID.KusDarkrazor), + new BandTogetherCastFinder(IcerazorsIreSkillEnhanced, MinionID.ViskIcerazor), }; internal static readonly List OutgoingDamageModifiers = new List diff --git a/GW2EIEvtcParser/ParserHelpers/SkillIDs.cs b/GW2EIEvtcParser/ParserHelpers/SkillIDs.cs index e93af4deac..b2c7291eb3 100644 --- a/GW2EIEvtcParser/ParserHelpers/SkillIDs.cs +++ b/GW2EIEvtcParser/ParserHelpers/SkillIDs.cs @@ -4277,11 +4277,16 @@ public static class SkillIDs public const long InsatiableHunger17 = 72351; public const long InsatiableHunger19 = 72352; public const long IcerazorsIreSkillMinionReworked = 72353; + public const long BandTogetherBuff = 72354; + public const long IcerazorsIreSkillEnhanced = 72359; public const long DarkrazorsDaringSkillMinionReworked = 72360; + public const long RazorclawsRageSkillEnhanced = 72363; public const long BreakrazorsBastionSkillMinionReworked = 72365; + public const long DarkrazorsDaringSkillEnhanced = 72366; public const long RazorclawsRageSkillMinionReworked = 72370; public const long SoulcleavesSummitHitReworked = 72376; public const long RazorclawsRageHitReworked = 72388; + public const long BreakrazorsBastionSkillEnhanced = 72389; public const long RageEmpowerment = 72399; public const long EnvyAttunement = 72403; public const long EnragedSmashEparch = 72437; From 44f33bf2997ed05859e93afc8d265d9cacb1201a Mon Sep 17 00:00:00 2001 From: Zerthox Date: Sun, 1 Sep 2024 21:41:49 +0200 Subject: [PATCH 2/3] Switch to effect based cast finder --- .../ProfHelpers/Revenant/RenegadeHelper.cs | 17 ++++++++--------- GW2EIEvtcParser/ParserHelpers/EffectGUIDs.cs | 4 ++++ GW2EIEvtcParser/ParserHelpers/SkillIDs.cs | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs b/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs index 27fdd864f4..ae84206955 100644 --- a/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs +++ b/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs @@ -13,15 +13,14 @@ namespace GW2EIEvtcParser.EIData { internal static class RenegadeHelper { - private class BandTogetherCastFinder : BuffLossCastFinder + private class BandTogetherCastFinder : EffectCastFinder { - public BandTogetherCastFinder(long skillID, MinionID minionID) : base(skillID, BandTogetherBuff) + public BandTogetherCastFinder(long baseSkillID, long enhancedSkill, string effect) : base(enhancedSkill, effect) { + UsingSrcSpecChecker(Spec.Renegade); UsingChecker((evt, combatData, agentData, skillData) => { - // check for no expire and minion spawning ~200ms after - const long minionDelay = 200; - return evt.RemovedDuration > 0 && agentData.GetNPCsByID(minionID).Any(x => Math.Abs(x.FirstAware - minionDelay - evt.Time) < ServerDelayConstant); + return !combatData.IsCasting(baseSkillID, evt.Src, evt.Time); }); } } @@ -34,10 +33,10 @@ public BandTogetherCastFinder(long skillID, MinionID minionID) : base(skillID, B .UsingSrcSpecChecker(Spec.Renegade), new EffectCastFinder(OrdersFromAbove, EffectGUIDs.RenegadeOrdersFromAbove) .UsingSrcSpecChecker(Spec.Renegade), - new BandTogetherCastFinder(BreakrazorsBastionSkillEnhanced, MinionID.EraBreakrazor), - new BandTogetherCastFinder(RazorclawsRageSkillEnhanced, MinionID.JasRazorclaw), - new BandTogetherCastFinder(DarkrazorsDaringSkillEnhanced, MinionID.KusDarkrazor), - new BandTogetherCastFinder(IcerazorsIreSkillEnhanced, MinionID.ViskIcerazor), + new BandTogetherCastFinder(BreakrazorsBastionSkill, BreakrazorsBastionSkillEnhanced, EffectGUIDs.RenegadeBreakrazorsBastion), + new BandTogetherCastFinder(RazorclawsRageSkill, RazorclawsRageSkillEnhanced, EffectGUIDs.RenegadeRazorclawsRage), + new BandTogetherCastFinder(DarkrazorsDaringSkill, DarkrazorsDaringSkillEnhanced, EffectGUIDs.RenegadeDarkrazorsDaring), + new BandTogetherCastFinder(IcerazorsIreSkill, IcerazorsIreSkillEnhanced, EffectGUIDs.RenegadeIcerazorsIre), }; internal static readonly List OutgoingDamageModifiers = new List diff --git a/GW2EIEvtcParser/ParserHelpers/EffectGUIDs.cs b/GW2EIEvtcParser/ParserHelpers/EffectGUIDs.cs index 3bf3eb7d41..df8235b626 100644 --- a/GW2EIEvtcParser/ParserHelpers/EffectGUIDs.cs +++ b/GW2EIEvtcParser/ParserHelpers/EffectGUIDs.cs @@ -210,6 +210,10 @@ public static class EffectGUIDs public const string RenegadeCitadelBombardmentPortal = "145B288ECA42CF43A40DFD759419C904"; public const string RenegadeCitadelBombardment1 = "5BBF59761E6B9D49A91E79D5474CC61C"; public const string RenegadeCitadelBombardment2 = "6C8201B551CF274C9C1AF51C33AA062A"; // duration 0 + public const string RenegadeBreakrazorsBastion = "72FC15613B4B2C44A1906617998859F9"; + public const string RenegadeRazorclawsRage = "71B04F91F9B3DF4A8954059FCFAD630E"; + public const string RenegadeDarkrazorsDaring = "C8FDB04E59C1034CABEFBECE470AA1BC"; + public const string RenegadeIcerazorsIre = "E725FC2FD486A84EBEAC403DB4DA30DE"; #endregion #region Guardian public const string GuardianGenericFlames = "EA98C3533AA46E4A9B550929356B7277"; // used e.g. with judges intervention, signet of judgment diff --git a/GW2EIEvtcParser/ParserHelpers/SkillIDs.cs b/GW2EIEvtcParser/ParserHelpers/SkillIDs.cs index b2c7291eb3..7a98b02e2b 100644 --- a/GW2EIEvtcParser/ParserHelpers/SkillIDs.cs +++ b/GW2EIEvtcParser/ParserHelpers/SkillIDs.cs @@ -4277,7 +4277,7 @@ public static class SkillIDs public const long InsatiableHunger17 = 72351; public const long InsatiableHunger19 = 72352; public const long IcerazorsIreSkillMinionReworked = 72353; - public const long BandTogetherBuff = 72354; + public const long POV_BandTogetherBuff = 72354; public const long IcerazorsIreSkillEnhanced = 72359; public const long DarkrazorsDaringSkillMinionReworked = 72360; public const long RazorclawsRageSkillEnhanced = 72363; From 72fd076b50ffb3f97d20b1daca0bd70b9431bb5c Mon Sep 17 00:00:00 2001 From: Zerthox Date: Sun, 1 Sep 2024 21:46:14 +0200 Subject: [PATCH 3/3] Cleanup --- .../EIData/ProfHelpers/Revenant/RenegadeHelper.cs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs b/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs index ae84206955..460952df38 100644 --- a/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs +++ b/GW2EIEvtcParser/EIData/ProfHelpers/Revenant/RenegadeHelper.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GW2EIEvtcParser.ParsedData; using GW2EIEvtcParser.ParserHelpers; @@ -18,10 +17,7 @@ private class BandTogetherCastFinder : EffectCastFinder public BandTogetherCastFinder(long baseSkillID, long enhancedSkill, string effect) : base(enhancedSkill, effect) { UsingSrcSpecChecker(Spec.Renegade); - UsingChecker((evt, combatData, agentData, skillData) => - { - return !combatData.IsCasting(baseSkillID, evt.Src, evt.Time); - }); + UsingChecker((evt, combatData, agentData, skillData) => !combatData.IsCasting(baseSkillID, evt.Src, evt.Time)); } }