Skip to content

Commit

Permalink
Added support for wing 8
Browse files Browse the repository at this point in the history
  • Loading branch information
Linkaaaaa committed Nov 21, 2024
1 parent afff2c1 commit 365a493
Show file tree
Hide file tree
Showing 20 changed files with 89 additions and 5 deletions.
2 changes: 1 addition & 1 deletion ArcdpsLogManager/ArcdpsLogManager.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
Each new log data update causes a revision increase.
See LogDataUpdater for the updates.
-->
<Version>1.12.0.0</Version>
<Version>1.13.0.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DebounceThrottle" Version="2.0.0" />
Expand Down
1 change: 1 addition & 0 deletions ArcdpsLogManager/Controls/LogEncounterFilterTree.cs
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ private Image GetCategoryIcon(EncounterCategory category)
EncounterCategory.RaidWing5 => imageProvider.GetRaidWingIcon(),
EncounterCategory.RaidWing6 => imageProvider.GetRaidWingIcon(),
EncounterCategory.RaidWing7 => imageProvider.GetRaidWingIcon(),
EncounterCategory.RaidWing8 => imageProvider.GetRaidWingIcon(),
EncounterCategory.FractalNightmare => imageProvider.GetFractalMapIcon(),
EncounterCategory.FractalShatteredObservatory => imageProvider.GetFractalMapIcon(),
EncounterCategory.FractalSunquaPeak => imageProvider.GetFractalMapIcon(),
Expand Down
11 changes: 11 additions & 0 deletions ArcdpsLogManager/ImageProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,11 @@ public class ImageProvider
private Lazy<Image> CardinalSabirIcon { get; } = new Lazy<Image>(Resources.GetCardinalSabirIcon);
private Lazy<Image> QadimThePeerlessIcon { get; } = new Lazy<Image>(Resources.GetQadimThePeerlessIcon);

// WING 8
private Lazy<Image> GreerIcon { get; } = new Lazy<Image>(Resources.GetGreerIcon);
private Lazy<Image> DecimaIcon { get; } = new Lazy<Image>(Resources.GetDecimaIcon);
private Lazy<Image> UraIcon { get; } = new Lazy<Image>(Resources.GetUraIcon);

// STRIKES - ICEBROOD SAGA
private Lazy<Image> ShiverpeaksPassIcon { get; } = new Lazy<Image>(Resources.GetShiverpeaksPassIcon);
private Lazy<Image> VoiceAndClawOfTheFallenIcon { get; } = new Lazy<Image>(Resources.GetVoiceAndClawOfTheFallenIcon);
Expand Down Expand Up @@ -206,6 +211,7 @@ public class ImageProvider
private Lazy<Image> WideRaidWing5Icon { get; } = new Lazy<Image>(Resources.GetWideRaidWing5Icon);
private Lazy<Image> WideRaidWing6Icon { get; } = new Lazy<Image>(Resources.GetWideRaidWing6Icon);
private Lazy<Image> WideRaidWing7Icon { get; } = new Lazy<Image>(Resources.GetWideRaidWing7Icon);
private Lazy<Image> WideRaidWing8Icon { get; } = new Lazy<Image>(Resources.GetWideRaidWing8Icon);

public Image GetTinyLogIcon() => TinyIconLog.Value;
public Image GetTinyFractalsIcon() => TinyIconFractals.Value;
Expand Down Expand Up @@ -236,6 +242,7 @@ public class ImageProvider
public Image GetWideRaidWing5Icon() => WideRaidWing5Icon.Value;
public Image GetWideRaidWing6Icon() => WideRaidWing6Icon.Value;
public Image GetWideRaidWing7Icon() => WideRaidWing7Icon.Value;
public Image GetWideRaidWing8Icon() => WideRaidWing8Icon.Value;

public Image GetTinyProfessionIcon(Profession profession)
{
Expand Down Expand Up @@ -338,6 +345,10 @@ public Image GetTinyEncounterIcon(Encounter encounter)
Encounter.Adina => CardinalAdinaIcon.Value,
Encounter.Sabir => CardinalSabirIcon.Value,
Encounter.QadimThePeerless => QadimThePeerlessIcon.Value,
// W8
Encounter.Greer => GreerIcon.Value,
Encounter.Decima => DecimaIcon.Value,
Encounter.Ura => UraIcon.Value,
// STRIKES - ICEBROOD SAGA
Encounter.ShiverpeaksPass => ShiverpeaksPassIcon.Value,
Encounter.VoiceAndClawOfTheFallen => VoiceAndClawOfTheFallenIcon.Value,
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ArcdpsLogManager/Images/ArenaNet/Bosses/Ura.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions ArcdpsLogManager/Logs/Filters/Groups/CategoryLogGroup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public class CategoryLogGroup : LogGroup
{EncounterCategory.RaidWing5, "Hall of Chains (W5)"},
{EncounterCategory.RaidWing6, "Mythwright Gambit (W6)"},
{EncounterCategory.RaidWing7, "The Key of Ahdashim (W7)"},
{EncounterCategory.RaidWing8, "Mount Balrior (W8)" },
{EncounterCategory.StrikeMissionIcebroodSaga, "Icebrood Saga"},
{EncounterCategory.StrikeMissionEndOfDragons, "End of Dragons"},
{EncounterCategory.StrikeMissionSecretsOfTheObscure, "Secrets of the Obscure"},
Expand Down
6 changes: 6 additions & 0 deletions ArcdpsLogManager/Logs/Updates/LogDataUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,12 @@ x.Profession is Profession.Thief or Profession.Engineer or Profession.Ranger
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 10)
&& log.Encounter == Encounter.SoullessHorror,
"Fix detection for Soulless Horror in case the encounter resets before all players are dead."),
new LogUpdate(log => log.ParsingVersion < new Version(1, 14, 0, 0)
&& log.Encounter == Encounter.Greer
&& log.Encounter == Encounter.Decima
&& log.Encounter == Encounter.Ura
&& log.MapId == MapIds.RaidWing8,
"Added support for Greer, Decima and Ura in Mount Balrior."),
// 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.
};
Expand Down
6 changes: 6 additions & 0 deletions ArcdpsLogManager/Resources.cs
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,11 @@ public static Image GetInstabilityImage(string iconName)
public static Image GetCardinalSabirIcon() => GetEncounterImage("Mini_Air_Djinn");
public static Image GetQadimThePeerlessIcon() => GetEncounterImage("Mini_Qadim_the_Peerless");

// WING 8
public static Image GetGreerIcon() => GetEncounterImage("Greer");
public static Image GetDecimaIcon() => GetEncounterImage("Decima");
public static Image GetUraIcon() => GetEncounterImage("Ura");

// STRIKES - ICEBROOD SAGA
public static Image GetShiverpeaksPassIcon() => GetEncounterImage("Mini_Icebrood_Construct");
public static Image GetVoiceAndClawOfTheFallenIcon() => GetEncounterImage("Mini_Cloudseeker");
Expand Down Expand Up @@ -226,5 +231,6 @@ private static Image GetEncounterImage(string iconName)
public static Image GetWideRaidWing5Icon() => GetImage("ArenaNet.raid_wing5_96px_64px.png");
public static Image GetWideRaidWing6Icon() => GetImage("ArenaNet.raid_wing6_96px_64px.png");
public static Image GetWideRaidWing7Icon() => GetImage("ArenaNet.raid_wing7_96px_64px.png");
public static Image GetWideRaidWing8Icon() => GetImage("ArenaNet.raid_wing8_96px_64px.png");
}
}
7 changes: 7 additions & 0 deletions ArcdpsLogManager/Sections/WeeklyClears.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public class WeeklyClears : DynamicLayout
private static readonly DateOnly W5Release = new DateOnly(2017, 11, 27);
private static readonly DateOnly W6Release = new DateOnly(2018, 9, 17);
private static readonly DateOnly W7Release = new DateOnly(2019, 6, 10);
private static readonly DateOnly W8Release = new DateOnly(2024, 11, 18);

private static readonly DateOnly EoDRelease = new DateOnly(2022, 2, 28);

Expand Down Expand Up @@ -103,6 +104,11 @@ public class WeeklyClears : DynamicLayout
new NormalEncounter(Encounter.Sabir, normalModeSince: W7Release, challengeModeSince: W7Release),
new NormalEncounter(Encounter.QadimThePeerless, normalModeSince: W7Release, challengeModeSince: W7Release),
]),
new EncounterRow("Mount Balrior (W8)", [
new NormalEncounter(Encounter.Greer, normalModeSince: W8Release, challengeModeSince: null),
new NormalEncounter(Encounter.Decima, normalModeSince: W8Release, challengeModeSince: null),
new NormalEncounter(Encounter.Ura, normalModeSince: W8Release, challengeModeSince: null),
])
]),
new EncounterGroup(EncounterCategory.StrikeIcebroodSaga, "Icebrood Saga", [
new EncounterRow("Icebrood Saga", [
Expand Down Expand Up @@ -540,6 +546,7 @@ private void RecreateLayout()
5 => imageProvider.GetWideRaidWing5Icon(),
6 => imageProvider.GetWideRaidWing6Icon(),
7 => imageProvider.GetWideRaidWing7Icon(),
8 => imageProvider.GetWideRaidWing8Icon(),
_ => throw new ArgumentOutOfRangeException()
},
EncounterCategory.StrikeIcebroodSaga => imageProvider.GetWideIcebroodSagaIcon(),
Expand Down
5 changes: 5 additions & 0 deletions EVTCAnalytics/GameData/Encounters/Encounter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,11 @@ public enum Encounter
Sabir = 72,
QadimThePeerless = 73,

// Raids - Wing 8
Greer = 81,
Decima = 82,
Ura = 83,

// Fractals - Nightmare CM
MAMA = 10001,
SiaxTheCorrupted = 10002,
Expand Down
4 changes: 4 additions & 0 deletions EVTCAnalytics/GameData/Encounters/EncounterCategories.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ public static class EncounterCategories
{Encounter.Adina, EncounterCategory.RaidWing7},
{Encounter.Sabir, EncounterCategory.RaidWing7},
{Encounter.QadimThePeerless, EncounterCategory.RaidWing7},
{Encounter.Greer, EncounterCategory.RaidWing8},
{Encounter.Decima, EncounterCategory.RaidWing8},
{Encounter.Ura, EncounterCategory.RaidWing8},
{Encounter.MAMA, EncounterCategory.FractalNightmare},
{Encounter.SiaxTheCorrupted, EncounterCategory.FractalNightmare},
{Encounter.EnsolyssOfTheEndlessTorment, EncounterCategory.FractalNightmare},
Expand Down Expand Up @@ -85,6 +88,7 @@ public static class EncounterCategories
EncounterCategory.RaidWing5,
EncounterCategory.RaidWing6,
EncounterCategory.RaidWing7,
EncounterCategory.RaidWing8,
};

private static readonly HashSet<EncounterCategory> StrikeMissionCategories =
Expand Down
1 change: 1 addition & 0 deletions EVTCAnalytics/GameData/Encounters/EncounterCategory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public enum EncounterCategory
RaidWing5 = 105,
RaidWing6 = 106,
RaidWing7 = 107,
RaidWing8 = 108,
FractalNightmare = 301,
FractalShatteredObservatory = 302,
FractalSunquaPeak = 303,
Expand Down
3 changes: 3 additions & 0 deletions EVTCAnalytics/GameData/Encounters/EncounterNames.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ public static class EncounterNames
{Encounter.Adina, "Cardinal Adina"},
{Encounter.Sabir, "Cardinal Sabir"},
{Encounter.QadimThePeerless, "Qadim the Peerless"},
{Encounter.Greer, "Greer, the Blightbringer" },
{Encounter.Decima, "Decima, the Stormsinger" },
{Encounter.Ura, "Ura, the Steamshrieker" },
{Encounter.MAMA, "MAMA"},
{Encounter.SiaxTheCorrupted, "Siax the Corrupted"},
{Encounter.EnsolyssOfTheEndlessTorment, "Ensolyss of the Endless Torment"},
Expand Down
6 changes: 6 additions & 0 deletions EVTCAnalytics/GameData/GameBuilds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,11 @@ public static class GameBuilds
/// https://wiki.guildwars2.com/wiki/Game_updates/2024-06-25
/// </summary>
public static int LonelyTowerHPNerf2 = 164824;

/// <summary>
/// Wing 8 Release<br></br>
/// https://wiki.guildwars2.com/wiki/Game_updates/2024-11-19
/// </summary>
public static int MountBalriorRelease = 171452;
}
}
1 change: 1 addition & 0 deletions EVTCAnalytics/GameData/MapIds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public static class MapIds
public const int RaidWing5 = 1264;
public const int RaidWing6 = 1303;
public const int RaidWing7 = 1323;
public const int RaidWing8 = 1564;

public const int XunlaiJadeJunkyard = 1451;
public const int OldLionsCourt = 1485;
Expand Down
4 changes: 4 additions & 0 deletions EVTCAnalytics/GameData/SpeciesIds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ public static class SpeciesIds
// Qadim the Peerless
public const int QadimThePeerless = 22000;

// Wing 8
public const int Greer = 26725;
public const int Decima = 26774;
public const int Ura = 26712;

// Special Forces Training Area
public const int StandardKittyGolem = 16199;
Expand Down
24 changes: 20 additions & 4 deletions EVTCAnalytics/Processing/EncounterDataProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ private IEncounterData GetPvEEncounterData(Encounter encounter, Agent mainTarget
var narella = GetTargetBySpeciesId(agents, SpeciesIds.Narella);
var prisoner = GetTargetBySpeciesId(agents, SpeciesIds.TrioCagePrisoner);

var targets = new Agent[] {berg, zane, narella}.Where(x => x != null).ToArray();
var targets = new Agent[] { berg, zane, narella }.Where(x => x != null).ToArray();

return GetDefaultBuilder(encounter, targets)
.WithResult(new ConditionalResultDeterminer(
Expand Down Expand Up @@ -123,7 +123,7 @@ private IEncounterData GetPvEEncounterData(Encounter encounter, Agent mainTarget
// ensure that this will be ignored. It is also very unlikely the boss would be defeated in such a short time,
// barring extreme exploits of broken game skills.
// Even such exploits from the past would have trouble meeting this time requirement (Shadow Flare, Renegade Invoke Torment).
(true, new AgentCombatExitDeterminer(secondPhaseXera) {MinTimeSinceSpawn = 10000})
(true, new AgentCombatExitDeterminer(secondPhaseXera) { MinTimeSinceSpawn = 10000 })
))
.WithHealth(new ConditionalHealthDeterminer(
(secondPhaseXera == null, new MaxMinHealthDeterminer()),
Expand Down Expand Up @@ -161,7 +161,7 @@ private IEncounterData GetPvEEncounterData(Encounter encounter, Agent mainTarget
// a long period of time when logs did not contain the main gadget so we need to rely on this.
bool canUseReward = gameBuild != null && gameBuild < GameBuilds.AhdashimRelease;


// Deimos, the NPC, is replaced with a gadget for the last 10% of the fight.
// There may sometimes be other gadgets with the same id. They do not, however,
// have an attack target. They also have lower maximum health values.
Expand All @@ -174,7 +174,7 @@ private IEncounterData GetPvEEncounterData(Encounter encounter, Agent mainTarget
bool canUseTargets = mainGadget != null && attackTarget != null && prisoner != null;

var targets = new List<Agent> { mainTarget, mainGadget }.Where(x => x != null).ToList();

return GetDefaultBuilder(encounter, mainTarget)
.WithModes(new AgentHealthModeDeterminer(mainTarget, 42_000_000))
.WithTargets(targets)
Expand Down Expand Up @@ -308,6 +308,22 @@ private IEncounterData GetPvEEncounterData(Encounter encounter, Agent mainTarget
.WithModes(new AgentHealthModeDeterminer(mainTarget, 50_000_000))
.Build();
}
// Raids - Wing 8
case Encounter.Greer:
{
return GetDefaultBuilder(encounter, mainTarget).Build();
}
case Encounter.Decima:
{
// Note for the future challenge mode release
// Decima when it first released had 83,288,232 HP and got nerfed without patch to 70,795,000.
// Some logs with the original HP exist.
return GetDefaultBuilder(encounter, mainTarget).Build();
}
case Encounter.Ura:
{
return GetDefaultBuilder(encounter, mainTarget).Build();
}
// Challenge Mode fractals
case Encounter.Skorvald:
{
Expand Down
12 changes: 12 additions & 0 deletions EVTCAnalytics/Processing/EncounterIdentifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ public Encounter IdentifyEncounter(Agent mainTarget, IReadOnlyList<Agent> agents
return skills.Any(x => x.Id == SkillIds.AdinaChargeUp) ? Encounter.Adina : Encounter.Sabir;
case SpeciesIds.QadimThePeerless:
return Encounter.QadimThePeerless;
case SpeciesIds.Greer:
return Encounter.Greer;
case SpeciesIds.Decima:
return Encounter.Decima;
case SpeciesIds.Ura:
return Encounter.Ura;
case SpeciesIds.StandardKittyGolem:
return Encounter.StandardKittyGolem;
case SpeciesIds.MediumKittyGolem:
Expand Down Expand Up @@ -307,6 +313,12 @@ public IEnumerable<Encounter> IdentifyPotentialEncounters(ParsedBossData bossDat
return new[] { Encounter.Sabir, Encounter.Adina };
case SpeciesIds.QadimThePeerless:
return new[] { Encounter.QadimThePeerless };
case SpeciesIds.Greer:
return new[] { Encounter.Greer };
case SpeciesIds.Decima:
return new[] { Encounter.Decima };
case SpeciesIds.Ura:
return new[] { Encounter.Ura };
case SpeciesIds.StandardKittyGolem:
return new[] { Encounter.StandardKittyGolem };
case SpeciesIds.MediumKittyGolem:
Expand Down

0 comments on commit 365a493

Please sign in to comment.