From 1bd33326f9e66baaabf72a3280c04ec9b79fbdf3 Mon Sep 17 00:00:00 2001 From: xanunderscore <149614526+xanunderscore@users.noreply.github.com> Date: Thu, 1 Aug 2024 18:42:10 -0400 Subject: [PATCH 1/2] fix viper --- BossMod/ActionQueue/Melee/VPR.cs | 190 +++++++++++++------------- BossMod/Autorotation/xan/Melee/VPR.cs | 50 +++---- 2 files changed, 114 insertions(+), 126 deletions(-) diff --git a/BossMod/ActionQueue/Melee/VPR.cs b/BossMod/ActionQueue/Melee/VPR.cs index 5782081e9f..0a7ce74bdd 100644 --- a/BossMod/ActionQueue/Melee/VPR.cs +++ b/BossMod/ActionQueue/Melee/VPR.cs @@ -5,55 +5,55 @@ public enum AID : uint None = 0, Sprint = ClassShared.AID.Sprint, - WorldSwallower = 34866, // LB3, 4.5s cast, range 8, single-target, targets=Hostile, animLock=??? - SteelFangs = 34606, // L1, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - HuntersSting = 34608, // L5, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - DreadFangs = 34607, // L10, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - WrithingSnap = 34632, // L15, instant, GCD, range 20, single-target, targets=Hostile, animLock=??? - SwiftskinsSting = 34609, // L20, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - SteelMaw = 34614, // L25, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - FlankstingStrike = 34610, // L30, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - FlanksbaneFang = 34611, // L30, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - HindstingStrike = 34612, // L30, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - HindsbaneFang = 34613, // L30, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - DreadMaw = 34615, // L35, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - Slither = 34646, // L40, instant, 30.0s CD (group 13/70) (2? charges), range 20, single-target, targets=Party/Hostile, animLock=??? - HuntersBite = 34616, // L40, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - SwiftskinsBite = 34617, // L45, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - JaggedMaw = 34618, // L50, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - BloodiedMaw = 34619, // L50, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - DeathRattle = 34634, // L55, instant, 1.0s CD (group 0), range 3, single-target, targets=Hostile, animLock=??? - SerpentsTail = 35920, // L55, instant, 1.0s CD (group 0), range 0, single-target, targets=Self, animLock=??? - LastLash = 34635, // L60, instant, 1.0s CD (group 0), range 0, AOE 5 circle, targets=Self, animLock=??? - Dreadwinder = 34620, // L65, instant, 40.0s CD (group 14/57) (2? charges), range 3, single-target, targets=Hostile, animLock=??? - HuntersCoil = 34621, // L65, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - SwiftskinsCoil = 34622, // L65, instant, GCD, range 3, single-target, targets=Hostile, animLock=??? - PitOfDread = 34623, // L70, instant, 40.0s CD (group 14/57) (2? charges), range 0, AOE 5 circle, targets=Self, animLock=??? - SwiftskinsDen = 34625, // L70, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - HuntersDen = 34624, // L70, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - TwinfangBite = 34636, // L75, instant, 1.0s CD (group 1), range 3, single-target, targets=Hostile, animLock=??? - TwinbloodBite = 34637, // L75, instant, 1.0s CD (group 2), range 3, single-target, targets=Hostile, animLock=??? - Twinblood = 35922, // L75, instant, 1.0s CD (group 2), range 0, single-target, targets=Self, animLock=??? - Twinfang = 35921, // L75, instant, 1.0s CD (group 1), range 0, single-target, targets=Self, animLock=??? - TwinfangThresh = 34638, // L80, instant, 1.0s CD (group 1), range 0, AOE 5 circle, targets=Self, animLock=??? - TwinbloodThresh = 34639, // L80, instant, 1.0s CD (group 2), range 0, AOE 5 circle, targets=Self, animLock=??? - UncoiledFury = 34633, // L82, instant, GCD, range 20, AOE 5 circle, targets=Hostile, animLock=??? - SerpentsIre = 34647, // L86, instant, 120.0s CD (group 19), range 0, single-target, targets=Self, animLock=??? - ThirdGeneration = 34629, // L90, instant, GCD, range 3, AOE 5 circle, targets=Hostile, animLock=??? - FourthGeneration = 34630, // L90, instant, GCD, range 3, AOE 5 circle, targets=Hostile, animLock=??? - SecondGeneration = 34628, // L90, instant, GCD, range 3, AOE 5 circle, targets=Hostile, animLock=??? - FirstGeneration = 34627, // L90, instant, GCD, range 3, AOE 5 circle, targets=Hostile, animLock=??? - Reawaken = 34626, // L90, instant, GCD, range 0, AOE 5 circle, targets=Self, animLock=??? - UncoiledTwinfang = 34644, // L92, instant, 1.0s CD (group 1), range 20, AOE 5 circle, targets=Hostile, animLock=??? - UncoiledTwinblood = 34645, // L92, instant, 1.0s CD (group 2), range 20, AOE 5 circle, targets=Hostile, animLock=??? - Ouroboros = 34631, // L96, instant, GCD, range 3, AOE 5 circle, targets=Hostile, animLock=??? - FourthLegacy = 34643, // L100, instant, 1.0s CD (group 0), range 3, AOE 5 circle, targets=Hostile, animLock=??? - SecondLegacy = 34641, // L100, instant, 1.0s CD (group 0), range 3, AOE 5 circle, targets=Hostile, animLock=??? - FirstLegacy = 34640, // L100, instant, 1.0s CD (group 0), range 3, AOE 5 circle, targets=Hostile, animLock=??? - ThirdLegacy = 34642, // L100, instant, 1.0s CD (group 0), range 3, AOE 5 circle, targets=Hostile, animLock=??? + WorldSwallower = 34866, // LB3, 4.5s cast, range 8, single-target, targets=Hostile + SteelFangs = 34606, // L1, instant, GCD, range 3, single-target, targets=Hostile + HuntersSting = 34608, // L5, instant, GCD, range 3, single-target, targets=Hostile + ReavingFangs = 34607, // L10, instant, GCD, range 3, single-target, targets=Hostile + WrithingSnap = 34632, // L15, instant, GCD, range 20, single-target, targets=Hostile + SwiftskinsSting = 34609, // L20, instant, GCD, range 3, single-target, targets=Hostile + SteelMaw = 34614, // L25, instant, GCD, range 0, AOE 5 circle, targets=Self + FlankstingStrike = 34610, // L30, instant, GCD, range 3, single-target, targets=Hostile + FlanksbaneFang = 34611, // L30, instant, GCD, range 3, single-target, targets=Hostile + HindstingStrike = 34612, // L30, instant, GCD, range 3, single-target, targets=Hostile + HindsbaneFang = 34613, // L30, instant, GCD, range 3, single-target, targets=Hostile + ReavingMaw = 34615, // L35, instant, GCD, range 0, AOE 5 circle, targets=Self + Slither = 34646, // L40, instant, 30.0s CD (group 13/70) (2-3 charges), range 20, single-target, targets=Party/Hostile + HuntersBite = 34616, // L40, instant, GCD, range 0, AOE 5 circle, targets=Self + SwiftskinsBite = 34617, // L45, instant, GCD, range 0, AOE 5 circle, targets=Self + JaggedMaw = 34618, // L50, instant, GCD, range 0, AOE 5 circle, targets=Self + BloodiedMaw = 34619, // L50, instant, GCD, range 0, AOE 5 circle, targets=Self + DeathRattle = 34634, // L55, instant, 1.0s CD (group 0), range 5, single-target, targets=Hostile + SerpentsTail = 35920, // L55, instant, 1.0s CD (group 0), range 0, single-target, targets=Self + LastLash = 34635, // L60, instant, 1.0s CD (group 0), range 0, AOE 5 circle, targets=Self + Vicewinder = 34620, // L65, instant, 40.0s CD (group 14/57) (2 charges), range 3, single-target, targets=Hostile + HuntersCoil = 34621, // L65, instant, GCD, range 3, single-target, targets=Hostile + SwiftskinsCoil = 34622, // L65, instant, GCD, range 3, single-target, targets=Hostile + Vicepit = 34623, // L70, instant, 40.0s CD (group 14/57) (2 charges), range 0, AOE 5 circle, targets=Self + SwiftskinsDen = 34625, // L70, instant, GCD, range 0, AOE 5 circle, targets=Self + HuntersDen = 34624, // L70, instant, GCD, range 0, AOE 5 circle, targets=Self + TwinfangBite = 34636, // L75, instant, 1.0s CD (group 1), range 5, single-target, targets=Hostile + TwinbloodBite = 34637, // L75, instant, 1.0s CD (group 2), range 5, single-target, targets=Hostile + Twinblood = 35922, // L75, instant, 1.0s CD (group 2), range 0, single-target, targets=Self + Twinfang = 35921, // L75, instant, 1.0s CD (group 1), range 0, single-target, targets=Self + TwinfangThresh = 34638, // L80, instant, 1.0s CD (group 1), range 0, AOE 5 circle, targets=Self + TwinbloodThresh = 34639, // L80, instant, 1.0s CD (group 2), range 0, AOE 5 circle, targets=Self + UncoiledFury = 34633, // L82, instant, GCD, range 20, AOE 5 circle, targets=Hostile + SerpentsIre = 34647, // L86, instant, 120.0s CD (group 19), range 0, single-target, targets=Self + ThirdGeneration = 34629, // L90, instant, GCD, range 3, AOE 5 circle, targets=Hostile + FourthGeneration = 34630, // L90, instant, GCD, range 3, AOE 5 circle, targets=Hostile + SecondGeneration = 34628, // L90, instant, GCD, range 3, AOE 5 circle, targets=Hostile + FirstGeneration = 34627, // L90, instant, GCD, range 3, AOE 5 circle, targets=Hostile + Reawaken = 34626, // L90, instant, GCD, range 0, AOE 5 circle, targets=Self + UncoiledTwinfang = 34644, // L92, instant, 1.0s CD (group 1), range 20, AOE 5 circle, targets=Hostile + UncoiledTwinblood = 34645, // L92, instant, 1.0s CD (group 2), range 20, AOE 5 circle, targets=Hostile + Ouroboros = 34631, // L96, instant, GCD, range 3, AOE 5 circle, targets=Hostile + FourthLegacy = 34643, // L100, instant, 1.0s CD (group 0), range 5, AOE 5 circle, targets=Hostile + SecondLegacy = 34641, // L100, instant, 1.0s CD (group 0), range 5, AOE 5 circle, targets=Hostile + FirstLegacy = 34640, // L100, instant, 1.0s CD (group 0), range 5, AOE 5 circle, targets=Hostile + ThirdLegacy = 34642, // L100, instant, 1.0s CD (group 0), range 5, AOE 5 circle, targets=Hostile // Shared - Braver = ClassShared.AID.Braver, // LB1, 2.0s cast, range 8, single-target, targets=Hostile, animLock=3.860s? + Braver = ClassShared.AID.Braver, // LB1, 2.0s cast, range 8, single-target, targets=Hostile, castAnimLock=3.860 Bladedance = ClassShared.AID.Bladedance, // LB2, 3.0s cast, range 8, single-target, targets=Hostile, animLock=3.860s? SecondWind = ClassShared.AID.SecondWind, // L8, instant, 120.0s CD (group 49), range 0, single-target, targets=Self LegSweep = ClassShared.AID.LegSweep, // L10, instant, 40.0s CD (group 43), range 3, single-target, targets=Hostile @@ -82,12 +82,14 @@ public enum TraitID : uint EnhancedFeint = 641, // L98 SerpentsLegacy = 534, // L100 } + public enum SID : uint { None = 0, HuntersInstinct = 3668, // applied by Hunter's Sting, Hunter's Bite, Hunter's Coil, Hunter's Den to self - NoxiousGnash = 3667, // applied by Dread Fangs to target Swiftscaled = 3669, // applied by Swiftskin's Sting, Swiftskin's Bite, Swiftskin's Coil, Swiftskin's Den to self + HonedSteel = 3672, + HonedReavers = 3772, HindstungVenom = 3647, // applied by Flanksting Strike to self HindsbaneVenom = 3648, // applied by Flanksbane Fang to self FlanksbaneVenom = 3646, // applied by Hindsting Strike to self @@ -110,52 +112,52 @@ public sealed class Definitions : IDisposable { public Definitions(ActionDefinitions d) { - d.RegisterSpell(AID.WorldSwallower); // animLock=??? - d.RegisterSpell(AID.SteelFangs); // animLock=??? - d.RegisterSpell(AID.HuntersSting); // animLock=??? - d.RegisterSpell(AID.DreadFangs); // animLock=??? - d.RegisterSpell(AID.WrithingSnap); // animLock=??? - d.RegisterSpell(AID.SwiftskinsSting); // animLock=??? - d.RegisterSpell(AID.SteelMaw); // animLock=??? - d.RegisterSpell(AID.FlankstingStrike); // animLock=??? - d.RegisterSpell(AID.FlanksbaneFang); // animLock=??? - d.RegisterSpell(AID.HindstingStrike); // animLock=??? - d.RegisterSpell(AID.HindsbaneFang); // animLock=??? - d.RegisterSpell(AID.DreadMaw); // animLock=??? - d.RegisterSpell(AID.Slither); // animLock=??? - d.RegisterSpell(AID.HuntersBite); // animLock=??? - d.RegisterSpell(AID.SwiftskinsBite); // animLock=??? - d.RegisterSpell(AID.JaggedMaw); // animLock=??? - d.RegisterSpell(AID.BloodiedMaw); // animLock=??? - d.RegisterSpell(AID.DeathRattle); // animLock=??? - d.RegisterSpell(AID.SerpentsTail); // animLock=??? - d.RegisterSpell(AID.LastLash); // animLock=??? - d.RegisterSpell(AID.Dreadwinder); // animLock=??? - d.RegisterSpell(AID.HuntersCoil); // animLock=??? - d.RegisterSpell(AID.SwiftskinsCoil); // animLock=??? - d.RegisterSpell(AID.PitOfDread); // animLock=??? - d.RegisterSpell(AID.SwiftskinsDen); // animLock=??? - d.RegisterSpell(AID.HuntersDen); // animLock=??? - d.RegisterSpell(AID.TwinfangBite); // animLock=??? - d.RegisterSpell(AID.TwinbloodBite); // animLock=??? - d.RegisterSpell(AID.Twinblood); // animLock=??? - d.RegisterSpell(AID.Twinfang); // animLock=??? - d.RegisterSpell(AID.TwinfangThresh); // animLock=??? - d.RegisterSpell(AID.TwinbloodThresh); // animLock=??? - d.RegisterSpell(AID.UncoiledFury); // animLock=??? - d.RegisterSpell(AID.SerpentsIre); // animLock=??? - d.RegisterSpell(AID.FirstGeneration); // animLock=??? - d.RegisterSpell(AID.SecondGeneration); // animLock=??? - d.RegisterSpell(AID.ThirdGeneration); // animLock=??? - d.RegisterSpell(AID.FourthGeneration); // animLock=??? - d.RegisterSpell(AID.Reawaken); // animLock=??? - d.RegisterSpell(AID.UncoiledTwinfang); // animLock=??? - d.RegisterSpell(AID.UncoiledTwinblood); // animLock=??? - d.RegisterSpell(AID.Ouroboros); // animLock=??? - d.RegisterSpell(AID.FourthLegacy); // animLock=??? - d.RegisterSpell(AID.SecondLegacy); // animLock=??? - d.RegisterSpell(AID.FirstLegacy); // animLock=??? - d.RegisterSpell(AID.ThirdLegacy); // animLock=??? + d.RegisterSpell(AID.WorldSwallower); + d.RegisterSpell(AID.SteelFangs); + d.RegisterSpell(AID.HuntersSting); + d.RegisterSpell(AID.ReavingFangs); + d.RegisterSpell(AID.WrithingSnap); + d.RegisterSpell(AID.SwiftskinsSting); + d.RegisterSpell(AID.SteelMaw); + d.RegisterSpell(AID.FlankstingStrike); + d.RegisterSpell(AID.FlanksbaneFang); + d.RegisterSpell(AID.HindstingStrike); + d.RegisterSpell(AID.HindsbaneFang); + d.RegisterSpell(AID.ReavingMaw); + d.RegisterSpell(AID.Slither); + d.RegisterSpell(AID.HuntersBite); + d.RegisterSpell(AID.SwiftskinsBite); + d.RegisterSpell(AID.JaggedMaw); + d.RegisterSpell(AID.BloodiedMaw); + d.RegisterSpell(AID.DeathRattle); + d.RegisterSpell(AID.SerpentsTail); + d.RegisterSpell(AID.LastLash); + d.RegisterSpell(AID.Vicewinder); + d.RegisterSpell(AID.HuntersCoil); + d.RegisterSpell(AID.SwiftskinsCoil); + d.RegisterSpell(AID.Vicepit); + d.RegisterSpell(AID.SwiftskinsDen); + d.RegisterSpell(AID.HuntersDen); + d.RegisterSpell(AID.TwinfangBite); + d.RegisterSpell(AID.TwinbloodBite); + d.RegisterSpell(AID.Twinblood); + d.RegisterSpell(AID.Twinfang); + d.RegisterSpell(AID.TwinfangThresh); + d.RegisterSpell(AID.TwinbloodThresh); + d.RegisterSpell(AID.UncoiledFury); + d.RegisterSpell(AID.SerpentsIre); + d.RegisterSpell(AID.ThirdGeneration); + d.RegisterSpell(AID.FourthGeneration); + d.RegisterSpell(AID.SecondGeneration); + d.RegisterSpell(AID.FirstGeneration); + d.RegisterSpell(AID.Reawaken); + d.RegisterSpell(AID.UncoiledTwinfang); + d.RegisterSpell(AID.UncoiledTwinblood); + d.RegisterSpell(AID.Ouroboros); + d.RegisterSpell(AID.FourthLegacy); + d.RegisterSpell(AID.SecondLegacy); + d.RegisterSpell(AID.FirstLegacy); + d.RegisterSpell(AID.ThirdLegacy); Customize(d); } diff --git a/BossMod/Autorotation/xan/Melee/VPR.cs b/BossMod/Autorotation/xan/Melee/VPR.cs index 746b71d791..037d71d6ba 100644 --- a/BossMod/Autorotation/xan/Melee/VPR.cs +++ b/BossMod/Autorotation/xan/Melee/VPR.cs @@ -31,7 +31,6 @@ public enum TwinType public int TwinStacks; // max 2, granted by using "coil" or "den" gcds public TwinType TwinCombo; - public float TargetGnashLeft; public float Swiftscaled; public float Instinct; public float FlankstungVenom; @@ -48,8 +47,9 @@ public enum TwinType public float PoisedForTwinblood; public float ReawakenReady; public float ReawakenLeft; + public float HonedReavers; + public float HonedSteel; - public int NumNearbyGnashlessEnemies; public int NumAOETargets; public int NumRangedAOETargets; @@ -105,9 +105,8 @@ public override void Exec(StrategyValues strategy, Actor? primaryTarget) PoisedForTwinblood = StatusLeft(SID.PoisedForTwinblood); ReawakenReady = StatusLeft(SID.ReawakenReady); ReawakenLeft = StatusLeft(SID.Reawakened); - - TargetGnashLeft = GnashLeft(primaryTarget); - NumNearbyGnashlessEnemies = Hints.PriorityTargets.Count(x => x.Actor.DistanceToHitbox(Player) <= 5 && GnashLeft(x.Actor) < GnashRefreshTimer); + HonedReavers = StatusLeft(SID.HonedReavers); + HonedSteel = StatusLeft(SID.HonedSteel); (BestRangedAOETarget, NumRangedAOETargets) = SelectTarget(strategy, primaryTarget, 20, IsSplashTarget); BestGenerationTarget = SelectTarget(strategy, primaryTarget, 3, IsSplashTarget).Best; @@ -186,8 +185,8 @@ public override void Exec(StrategyValues strategy, Actor? primaryTarget) if (NumAOETargets > 2) { - if (ShouldDread(strategy)) - PushGCD(AID.PitOfDread, Player); + if (ShouldVice(strategy)) + PushGCD(AID.Vicepit, Player); if (ComboLastMove is AID.HuntersBite or AID.SwiftskinsBite) { @@ -197,7 +196,7 @@ public override void Exec(StrategyValues strategy, Actor? primaryTarget) PushGCD(AID.JaggedMaw, Player); } - if (ComboLastMove is AID.SteelMaw or AID.DreadMaw) + if (ComboLastMove is AID.SteelMaw or AID.ReavingMaw) { if (Instinct < Swiftscaled) PushGCD(AID.HuntersBite, Player); @@ -205,15 +204,15 @@ public override void Exec(StrategyValues strategy, Actor? primaryTarget) PushGCD(AID.SwiftskinsBite, Player); } - if (NumNearbyGnashlessEnemies > 2 && Unlocked(AID.DreadFangs)) - PushGCD(AID.DreadMaw, primaryTarget); + if (HonedSteel == 0 && Unlocked(AID.ReavingFangs)) + PushGCD(AID.ReavingMaw, primaryTarget); PushGCD(AID.SteelMaw, Player); } else { - if (ShouldDread(strategy)) - PushGCD(AID.Dreadwinder, primaryTarget); + if (ShouldVice(strategy)) + PushGCD(AID.Vicewinder, primaryTarget); if (ComboLastMove is AID.HuntersSting) { @@ -231,7 +230,7 @@ public override void Exec(StrategyValues strategy, Actor? primaryTarget) PushGCD(AID.HindsbaneFang, primaryTarget); } - if (ComboLastMove is AID.SteelFangs or AID.DreadFangs) + if (ComboLastMove is AID.SteelFangs or AID.ReavingFangs) { if (Instinct < Swiftscaled) PushGCD(AID.HuntersSting, primaryTarget); @@ -239,8 +238,8 @@ public override void Exec(StrategyValues strategy, Actor? primaryTarget) PushGCD(AID.SwiftskinsSting, primaryTarget); } - if (TargetGnashLeft < GnashRefreshTimer && Unlocked(AID.DreadFangs)) - PushGCD(AID.DreadFangs, primaryTarget); + if (HonedSteel == 0 && Unlocked(AID.ReavingFangs)) + PushGCD(AID.ReavingFangs, primaryTarget); PushGCD(AID.SteelFangs, primaryTarget); } @@ -265,7 +264,7 @@ private bool ShouldReawaken(StrategyValues strategy) var actual = baseDuration * AttackGCDLength / 2.5f; - if (NumAOETargets == 0 || Instinct < actual || Swiftscaled < actual || TargetGnashLeft < actual || DreadCombo > 0) + if (NumAOETargets == 0 || Instinct < actual || Swiftscaled < actual || DreadCombo > 0) return false; if (RaidBuffsIn > 9000 || RaidBuffsLeft > 10 || ReawakenReady > GCD) @@ -274,20 +273,9 @@ private bool ShouldReawaken(StrategyValues strategy) return Offering == 100 && ComboLastMove is AID.HuntersSting or AID.SwiftskinsSting or AID.HuntersBite or AID.SwiftskinsBite; } - private bool ShouldDread(StrategyValues strategy) - { - if (Swiftscaled <= GCD || DreadCombo > 0) - return false; - - return NumAOETargets > 2 && Unlocked(AID.PitOfDread) - ? NumNearbyGnashlessEnemies > 0 - : TargetGnashLeft < GnashRefreshTimer; - } + private bool ShouldVice(StrategyValues strategy) => Swiftscaled > GCD && DreadCombo == 0; - private bool ShouldCoil(StrategyValues strategy) - { - return Coil > 1 && TargetGnashLeft > GnashRefreshTimer && Swiftscaled > GCD && DreadCombo == 0; - } + private bool ShouldCoil(StrategyValues strategy) => Coil > 1 && Swiftscaled > GCD && DreadCombo == 0; private void OGCD(StrategyValues strategy, Actor? primaryTarget) { @@ -354,7 +342,7 @@ private void OGCD(StrategyValues strategy, Actor? primaryTarget) var (pos, imm) = getmain(); - if (Anguine > 0 || ShouldReawaken(strategy) || ShouldDread(strategy) || ShouldCoil(strategy)) + if (Anguine > 0 || ShouldReawaken(strategy) || ShouldVice(strategy) || ShouldCoil(strategy)) imm = false; return (pos, imm); @@ -369,6 +357,4 @@ private struct ViperGaugeEx [FieldOffset(0x0B)] public DreadCombo DreadCombo; [FieldOffset(0x10)] public byte ComboEx; // extra combo stuff } - - private float GnashLeft(Actor? a) => StatusDetails(a, SID.NoxiousGnash, Player.InstanceID).Left; } From 1235a44cc99d9cba4bed2f8de49920f71d1d925d Mon Sep 17 00:00:00 2001 From: xanunderscore <149614526+xanunderscore@users.noreply.github.com> Date: Thu, 1 Aug 2024 19:01:31 -0400 Subject: [PATCH 2/2] remove property thanks c# --- BossMod/Autorotation/xan/Melee/VPR.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/BossMod/Autorotation/xan/Melee/VPR.cs b/BossMod/Autorotation/xan/Melee/VPR.cs index 037d71d6ba..01001a7995 100644 --- a/BossMod/Autorotation/xan/Melee/VPR.cs +++ b/BossMod/Autorotation/xan/Melee/VPR.cs @@ -57,7 +57,6 @@ public enum TwinType private Actor? BestGenerationTarget; private int CoilMax => Unlocked(TraitID.EnhancedVipersRattle) ? 3 : 2; - private float GnashRefreshTimer => 20; public override void Exec(StrategyValues strategy, Actor? primaryTarget) {