diff --git a/ArcdpsLogManager/ArcdpsLogManager.csproj b/ArcdpsLogManager/ArcdpsLogManager.csproj index 2496ef70..a60b90b8 100644 --- a/ArcdpsLogManager/ArcdpsLogManager.csproj +++ b/ArcdpsLogManager/ArcdpsLogManager.csproj @@ -17,7 +17,7 @@ Each new log data update causes a revision increase. See LogDataUpdater for the updates. --> - 1.11.1.7 + 1.11.1.8 diff --git a/ArcdpsLogManager/Logs/Updates/LogDataUpdater.cs b/ArcdpsLogManager/Logs/Updates/LogDataUpdater.cs index 3bfc7508..49452165 100644 --- a/ArcdpsLogManager/Logs/Updates/LogDataUpdater.cs +++ b/ArcdpsLogManager/Logs/Updates/LogDataUpdater.cs @@ -197,11 +197,7 @@ x.Profession is Profession.Thief or Profession.Engineer or Profession.Ranger "Fix NM detection for Temple of Febe."), new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 3) && log.Encounter == Encounter.Skorvald, - "Fix success detection for Skorvald when all players are dead while the boss is invulnerable at 1%."), - new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 4) - && log.Encounter == Encounter.Other - && log.MapId == MapIds.LonelyTower, - "Add support for Eparch in the Lonely Tower fractal."), + "Fix success detection for Skorvald when all players are dead while the boss is invulnerable at 1%."), new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 7) && log.Encounter == Encounter.SoullessHorror, "Fix detection for Soulless Horror in case the encounter resets before all players are dead."), @@ -216,6 +212,10 @@ x.Profession is Profession.Thief or Profession.Engineer or Profession.Ranger new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 7) && log.Encounter is Encounter.Adina or Encounter.Sabir, "Fix Adina and Sabir possibly being identified as the other one in rare scenarios."), + new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 8) + && log.Encounter == Encounter.Other + && log.MapId == MapIds.LonelyTower, + "Add support for Eparch in the Lonely Tower fractal."), // When adding a new update, you need to increase the revision (last value) of the version in the .csproj file // unless the version changes more significantly, in that case it can be reset to 0. }; diff --git a/EVTCAnalytics/GameData/GameBuilds.cs b/EVTCAnalytics/GameData/GameBuilds.cs index 1a529b28..695f9f19 100644 --- a/EVTCAnalytics/GameData/GameBuilds.cs +++ b/EVTCAnalytics/GameData/GameBuilds.cs @@ -31,9 +31,15 @@ public static class GameBuilds public static int LonelyTowerRelease = 163141; /// - /// Lonely Tower Challenge Mode release.

+ /// Lonely Tower Challenge Mode release with HP nerf.

/// https://wiki.guildwars2.com/wiki/Game_updates/2024-06-04 ///
public static int LonelyTowerCMRelease = 163807; + + /// + /// Eparch further HP nerfs for all modes.

+ /// https://wiki.guildwars2.com/wiki/Game_updates/2024-06-25 + ///
+ public static int LonelyTowerHPNerf2 = 164824; } } \ No newline at end of file diff --git a/EVTCAnalytics/Processing/EncounterDataProvider.cs b/EVTCAnalytics/Processing/EncounterDataProvider.cs index 221abf64..55eca137 100644 --- a/EVTCAnalytics/Processing/EncounterDataProvider.cs +++ b/EVTCAnalytics/Processing/EncounterDataProvider.cs @@ -676,13 +676,23 @@ private IEncounterData GetPvEEncounterData(Encounter encounter, Agent mainTarget } case Encounter.Eparch: { + // Normal Mode Release: 31.771.528 + // Challenge Mode Release: 32.618.906 + // Challenge Mode Release (Normal Mode T4): 19.857.206 + // HP Nerfs Patch (Challenge Mode): 22.833.236 + // HP Nerfs Patch (Normal Mode T4): 13.900.044 return GetDefaultBuilder(encounter, mainTarget) .WithResult(new AnyCombinedResultDeterminer( new AgentKillingBlowDeterminer(mainTarget), new BuffAppliedBelowHealthThresholdDeterminer(mainTarget, 0.2f, SkillIds.Determined))) - // On release, Eparch had 31,771,528 health in NM. - // On CM release, Eparch was reduced to 19,857,206 in NM and CM health is 32,618,906 - .WithModes(new AgentHealthModeDeterminer(mainTarget, 31_800_000)) + .WithModes(new ConditionalModeDeterminer( + (gameBuild != null && gameBuild < GameBuilds.LonelyTowerCMRelease, + new AgentHealthModeDeterminer(mainTarget, 31_000_000, EncounterMode.Normal)), + (gameBuild != null && gameBuild >= GameBuilds.LonelyTowerCMRelease && gameBuild <= GameBuilds.LonelyTowerHPNerf2, + new AgentHealthModeDeterminer(mainTarget, 31_000_000, EncounterMode.Challenge)), + (gameBuild != null && gameBuild >= GameBuilds.LonelyTowerHPNerf2, + new AgentHealthModeDeterminer(mainTarget, 21_000_000, EncounterMode.Challenge)) + )) .Build(); } default: