Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overhead decorations 2 #798

Merged
merged 6 commits into from
Aug 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion GW2EIEvtcParser/EIData/Buffs/EncounterBuffs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ internal static class EncounterBuffs
new Buff("Corruption", Corruption1, Source.FightSpecific, BuffClassification.Other, BuffImages.LocustTrail),
new Buff("Corruption 2", Corruption2, Source.FightSpecific, BuffClassification.Other, BuffImages.LocustTrail),
new Buff("Sacrifice", MatthiasSacrifice, Source.FightSpecific, BuffClassification.Other, BuffImages.MonsterSkill),
new Buff("Sacrifice Selection", MatthiasSacrificeSelection, Source.FightSpecific, BuffClassification.Other, BuffImages.MonsterSkill),
new Buff("Unbalanced", Unbalanced, Source.FightSpecific, BuffClassification.Other, BuffImages.Unbalanced),
new Buff("Zealous Benediction", ZealousBenediction, Source.FightSpecific, BuffClassification.Other, BuffImages.Unstable),
new Buff("Snowstorm", SnowstormBuff, Source.FightSpecific, BuffClassification.Other, BuffImages.Snowstorm),
Expand Down Expand Up @@ -247,6 +248,7 @@ internal static class EncounterBuffs
new Buff("Form Up and Advance!", FormUpAndAdvance, Source.FightSpecific, BuffClassification.Other, BuffImages.FormUpAndAdvance),
new Buff("Devour", Devour, Source.FightSpecific, BuffStackType.Stacking, 99, BuffClassification.Other, BuffImages.Devour),
new Buff("Unseen Burden (Deimos)", UnseenBurdenDeimos, Source.FightSpecific, BuffStackType.Stacking, 99, BuffClassification.Other, BuffImages.UnseenBurdenDeimos),
new Buff("Green Selection", DeimosSelectedByGreen, Source.FightSpecific, BuffClassification.Other, BuffImages.MonsterSkill),
//////////////////////////////////////////////
// Soulless Horror
new Buff("Exile's Embrace", ExilesEmbrace, Source.FightSpecific, BuffClassification.Other, BuffImages.ExilesEmbrace),
Expand Down Expand Up @@ -383,9 +385,11 @@ internal static class EncounterBuffs
// Shattered Observatory
new Buff("Achievement Eligibility: Be Dynamic", AchievementEligibilityBeDynamic, Source.FightSpecific, BuffClassification.Other, BuffImages.AchievementEffect),
new Buff("Cosmic Energy", CosmicEnergy, Source.FightSpecific, BuffClassification.Other, BuffImages.BreakOut),
// Skorvald
new Buff("Skorvald's Ire", SkorvaldsIre, Source.FightSpecific, BuffClassification.Other, BuffImages.Fixated),
// Artsariiv
new Buff("Enraged (Fractal)", EnragedFractal, Source.FightSpecific, BuffClassification.Other, BuffImages.Enraged),
new Buff("Corporeal Reassignment", CorporealReassignment, Source.FightSpecific, BuffClassification.Other, BuffImages.RedirectAnomaly),
new Buff("Corporeal Reassignment", CorporealReassignmentBuff, Source.FightSpecific, BuffClassification.Other, BuffImages.RedirectAnomaly),
new Buff("Blinding Radiance", BlindingRadiance, Source.FightSpecific, BuffClassification.Other, BuffImages.MonsterSkill),
new Buff("Determination (Viirastra)", DeterminationViirastra, Source.FightSpecific, BuffClassification.Other, BuffImages.GambitExhausted),
// Arkk
Expand Down
11 changes: 11 additions & 0 deletions GW2EIEvtcParser/EncounterLogic/Fractals/Nightmare/Siax.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using GW2EIEvtcParser.Exceptions;
using GW2EIEvtcParser.Extensions;
using GW2EIEvtcParser.ParsedData;
using GW2EIEvtcParser.ParserHelpers;
using static GW2EIEvtcParser.SkillIDs;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicUtils;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicPhaseUtils;
Expand Down Expand Up @@ -257,5 +258,15 @@ internal override void ComputeNPCCombatReplayActors(NPC target, ParsedEvtcLog lo
default: break;
}
}

internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedEvtcLog log, CombatReplay replay)
{
// Fixations
IEnumerable<Segment> fixations = p.GetBuffStatus(log, FixatedNightmare, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0);
foreach (Segment segment in fixations)
{
replay.Decorations.Add(new IconOverheadDecoration(ParserIcons.FixationPurpleOverhead, 20, 1, segment, new AgentConnector(p)));
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using GW2EIEvtcParser.EIData;
using GW2EIEvtcParser.Exceptions;
using GW2EIEvtcParser.ParsedData;
using GW2EIEvtcParser.ParserHelpers;
using static GW2EIEvtcParser.SkillIDs;
using static GW2EIEvtcParser.ParserHelper;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicUtils;
Expand All @@ -29,7 +30,7 @@ public Arkk(int triggerID) : base(triggerID)
new PlayerDstHitMechanic(new long[] { StarbustCascade1, StarbustCascade2 }, "Starburst Cascade", new MechanicPlotlySetting(Symbols.CircleOpen,Colors.LightOrange), "Float Ring","Starburst Cascade (Expanding/Retracting Lifting Ring)", "Float Ring",500),
new PlayerDstHitMechanic(HorizonStrikeNormal, "Horizon Strike Normal", new MechanicPlotlySetting(Symbols.Circle,Colors.DarkRed), "Horizon Strike norm","Horizon Strike (normal)", "Horizon Strike (normal)",0),
new PlayerDstHitMechanic(OverheadSmash, "Overhead Smash", new MechanicPlotlySetting(Symbols.TriangleLeft,Colors.LightRed), "Smash","Overhead Smash","Overhead Smash",0),
new PlayerDstBuffApplyMechanic(CorporealReassignment, "Corporeal Reassignment", new MechanicPlotlySetting(Symbols.Diamond,Colors.Red), "Skull","Exploding Skull mechanic application", "Corporeal Reassignment",0),
new PlayerDstBuffApplyMechanic(CorporealReassignmentBuff, "Corporeal Reassignment", new MechanicPlotlySetting(Symbols.Diamond,Colors.Red), "Skull","Exploding Skull mechanic application", "Corporeal Reassignment",0),
new PlayerDstHitMechanic(ExplodeArkk, "Explode", new MechanicPlotlySetting(Symbols.Circle,Colors.Yellow), "Bloom Explode","Hit by Solar Bloom explosion", "Bloom Explosion",0),
new PlayerDstBuffApplyMechanic(new long[] {FixatedBloom1, FixatedBloom2, FixatedBloom3, FixatedBloom4}, "Fixate", new MechanicPlotlySetting(Symbols.StarOpen,Colors.Magenta), "Bloom Fix","Fixated by Solar Bloom", "Bloom Fixate",0),
new PlayerDstBuffApplyMechanic(CosmicMeteor, "Cosmic Meteor", new MechanicPlotlySetting(Symbols.CircleOpen,Colors.Green), "Green","Temporal Realignment (Green) application", "Green",0),
Expand Down Expand Up @@ -195,5 +196,21 @@ protected override void SetInstanceBuffs(ParsedEvtcLog log)
InstanceBuffs.Add((log.Buffs.BuffsByIds[AchievementEligibilityBeDynamic], 1));
}
}

internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedEvtcLog log, CombatReplay replay)
{
// Corporeal Reassignment
IEnumerable<Segment> corpReass = p.GetBuffStatus(log, CorporealReassignmentBuff, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0);
foreach (Segment segment in corpReass)
{
replay.Decorations.Add(new IconOverheadDecoration(ParserIcons.SkullOverhead, 20, 1, segment, new AgentConnector(p)));
}
// Fixations
IEnumerable<Segment> fixations = p.GetBuffStatus(log, new long[] { FixatedBloom1, FixatedBloom2, FixatedBloom3, FixatedBloom4 }, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0);
foreach (Segment segment in fixations)
{
replay.Decorations.Add(new IconOverheadDecoration(ParserIcons.FixationPurpleOverhead, 20, 1, segment, new AgentConnector(p)));
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using GW2EIEvtcParser.Exceptions;
using GW2EIEvtcParser.Extensions;
using GW2EIEvtcParser.ParsedData;
using GW2EIEvtcParser.ParserHelpers;
using static GW2EIEvtcParser.SkillIDs;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicUtils;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicPhaseUtils;
Expand All @@ -19,7 +20,7 @@ public Artsariiv(int triggerID) : base(triggerID)
{
MechanicList.AddRange(new List<Mechanic>
{
new PlayerDstBuffApplyMechanic(CorporealReassignment, "Corporeal Reassignment", new MechanicPlotlySetting(Symbols.DiamondTall,Colors.Red), "Skull","Exploding Skull mechanic application","Corporeal Reassignment",0),
new PlayerDstBuffApplyMechanic(CorporealReassignmentBuff, "Corporeal Reassignment", new MechanicPlotlySetting(Symbols.DiamondTall,Colors.Red), "Skull","Exploding Skull mechanic application","Corporeal Reassignment",0),
new PlayerDstHitMechanic(VaultArtsariiv, "Vault", new MechanicPlotlySetting(Symbols.TriangleDownOpen,Colors.Yellow), "Vault","Vault from Big Adds", "Vault (Add)",0),
new PlayerDstHitMechanic(SlamArtsariiv, "Slam", new MechanicPlotlySetting(Symbols.Circle,Colors.LightOrange), "Slam","Slam (Vault) from Boss", "Vault (Arts)",0),
new PlayerDstHitMechanic(TeleportLunge, "Teleport Lunge", new MechanicPlotlySetting(Symbols.StarTriangleDownOpen,Colors.LightOrange), "3 Jump","Triple Jump Mid->Edge", "Triple Jump",0),
Expand Down Expand Up @@ -196,5 +197,15 @@ internal override void CheckSuccess(CombatData combatData, AgentData agentData,
}
SetSuccessByBuffCount(combatData, fightData, GetParticipatingPlayerAgents(target, combatData, playerAgents), target, Determined762, 4);
}

internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedEvtcLog log, CombatReplay replay)
{
// Corporeal Reassignment
IEnumerable<Segment> corpReass = p.GetBuffStatus(log, CorporealReassignmentBuff, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0);
foreach (Segment segment in corpReass)
{
replay.Decorations.Add(new IconOverheadDecoration(ParserIcons.SkullOverhead, 20, 1, segment, new AgentConnector(p)));
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using GW2EIEvtcParser.Exceptions;
using GW2EIEvtcParser.Extensions;
using GW2EIEvtcParser.ParsedData;
using GW2EIEvtcParser.ParserHelpers;
using static GW2EIEvtcParser.ArcDPSEnums;
using static GW2EIEvtcParser.ParserHelper;
using static GW2EIEvtcParser.SkillIDs;
Expand Down Expand Up @@ -576,6 +577,16 @@ internal override void ComputeEnvironmentCombatReplayDecorations(ParsedEvtcLog l
}
}

internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedEvtcLog log, CombatReplay replay)
{
// Fixations
IEnumerable<Segment> fixations = p.GetBuffStatus(log, new long[] { FixatedBloom1, SkorvaldsIre }, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0);
foreach (Segment segment in fixations)
{
replay.Decorations.Add(new IconOverheadDecoration(ParserIcons.FixationPurpleOverhead, 20, 1, segment, new AgentConnector(p)));
}
}

private static void AddHorizonStrikeDecoration(CombatReplay replay, AbstractSingleActor target, int start, int attackEnd, float degree, int radius, int angle)
{
float front = degree;
Expand Down
19 changes: 8 additions & 11 deletions GW2EIEvtcParser/EncounterLogic/Fractals/SilentSurf/Kanaxai.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
using GW2EIEvtcParser.Exceptions;
using GW2EIEvtcParser.Extensions;
using GW2EIEvtcParser.ParsedData;
using GW2EIEvtcParser.ParserHelpers;
using static GW2EIEvtcParser.SkillIDs;
using static GW2EIEvtcParser.ParserHelper;
using static GW2EIEvtcParser.EncounterLogic.EncounterCategory;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicUtils;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicPhaseUtils;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicTimeUtils;
using static GW2EIEvtcParser.EncounterLogic.EncounterImages;
using GW2EIEvtcParser.ParserHelpers;

namespace GW2EIEvtcParser.EncounterLogic
{
Expand Down Expand Up @@ -319,11 +319,11 @@ internal override void ComputePlayerCombatReplayActors(AbstractPlayer player, Pa
}

// Target Order Overhead
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder1, log.FightData.LogStart, log.FightData.LogEnd), ParserIcons.TargetOrder1Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder2, log.FightData.LogStart, log.FightData.LogEnd), ParserIcons.TargetOrder2Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder3, log.FightData.LogStart, log.FightData.LogEnd), ParserIcons.TargetOrder3Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder4, log.FightData.LogStart, log.FightData.LogEnd), ParserIcons.TargetOrder4Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder5, log.FightData.LogStart, log.FightData.LogEnd), ParserIcons.TargetOrder5Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder1, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0), ParserIcons.TargetOrder1Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder2, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0), ParserIcons.TargetOrder2Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder3, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0), ParserIcons.TargetOrder3Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder4, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0), ParserIcons.TargetOrder4Overhead);
AddTargetOrderDecoration(player, replay, player.GetBuffStatus(log, TargetOrder5, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0), ParserIcons.TargetOrder5Overhead);
}

internal override void ComputeEnvironmentCombatReplayDecorations(ParsedEvtcLog log)
Expand Down Expand Up @@ -423,14 +423,11 @@ private void AddAxeAoeDecoration(EffectEvent aoe, AbstractBuffEvent axeBuffRemov
/// <param name="replay">Combat Replay.</param>
/// <param name="targets">The <see cref="Segment"/> where the Target Order buff appears.</param>
/// <param name="icon">The icon related to the respective Target Order buff.</param>
private static void AddTargetOrderDecoration(AbstractPlayer player, CombatReplay replay, IReadOnlyList<Segment> targets, string icon)
private static void AddTargetOrderDecoration(AbstractPlayer player, CombatReplay replay, IEnumerable<Segment> targets, string icon)
{
foreach (Segment target in targets)
{
if (target.Value > 0)
{
replay.Decorations.Add(new IconOverheadDecoration(icon, 12, 1, target, new AgentConnector(player)));
}
replay.Decorations.Add(new IconOverheadDecoration(icon, 20, 1, target, new AgentConnector(player)));
}
}
}
Expand Down
11 changes: 10 additions & 1 deletion GW2EIEvtcParser/EncounterLogic/Raids/W1/Gorseval.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using GW2EIEvtcParser.EIData;
using GW2EIEvtcParser.Exceptions;
using GW2EIEvtcParser.ParsedData;
using GW2EIEvtcParser.ParserHelpers;
using static GW2EIEvtcParser.SkillIDs;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicUtils;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicPhaseUtils;
Expand Down Expand Up @@ -46,7 +47,7 @@ internal override List<InstantCastFinder> GetInstantCastFinders()
{
return new List<InstantCastFinder>()
{
new DamageCastFinder(HauntingAura, HauntingAura), // Haunting Aura
new DamageCastFinder(HauntingAura, HauntingAura),
};
}
internal override List<PhaseData> GetPhases(ParsedEvtcLog log, bool requirePhases)
Expand Down Expand Up @@ -104,11 +105,19 @@ protected override List<int> GetTargetsIDs()

internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedEvtcLog log, CombatReplay replay)
{
// Ghastly Prison - Eggs AoEs
var eggs = p.GetBuffStatus(log, GhastlyPrison, log.FightData.FightStart, log.FightData.FightEnd).Where(x => x.Value > 0).ToList();
foreach (Segment seg in eggs)
{
replay.Decorations.Add(new CircleDecoration(true, 0, 180, seg, "rgba(255, 160, 0, 0.3)", new AgentConnector(p)));
}

// Spectral Darkness - Orbs Debuff Overhead
IEnumerable<Segment> segments = p.GetBuffStatus(log, SpectralDarkness, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0);
foreach (Segment segment in segments)
{
replay.Decorations.Add(new IconOverheadDecoration(ParserIcons.SpectralDarknessOverhead, 20, 1, segment, new AgentConnector(p)));
}
}

internal override void ComputeNPCCombatReplayActors(NPC target, ParsedEvtcLog log, CombatReplay replay)
Expand Down
2 changes: 2 additions & 0 deletions GW2EIEvtcParser/EncounterLogic/Raids/W1/Sabetha.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using GW2EIEvtcParser.EIData;
using GW2EIEvtcParser.Exceptions;
using GW2EIEvtcParser.ParsedData;
using GW2EIEvtcParser.ParserHelpers;
using static GW2EIEvtcParser.SkillIDs;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicUtils;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicPhaseUtils;
Expand Down Expand Up @@ -232,6 +233,7 @@ internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedE
{
replay.Decorations.Add(new CircleDecoration(false, 0, 180, seg, "rgba(200, 255, 100, 0.5)", new AgentConnector(p)));
replay.Decorations.Add(new CircleDecoration(true, (int)seg.Start + 5000, 180, seg, "rgba(200, 255, 100, 0.5)", new AgentConnector(p)));
replay.Decorations.Add(new IconOverheadDecoration(ParserIcons.BombOverhead, 20, 1, seg, new AgentConnector(p)));
}
}

Expand Down
24 changes: 24 additions & 0 deletions GW2EIEvtcParser/EncounterLogic/Raids/W1/ValeGuardian.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using GW2EIEvtcParser.Exceptions;
using GW2EIEvtcParser.Extensions;
using GW2EIEvtcParser.ParsedData;
using GW2EIEvtcParser.ParserHelpers;
using static GW2EIEvtcParser.SkillIDs;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicUtils;
using static GW2EIEvtcParser.EncounterLogic.EncounterLogicPhaseUtils;
Expand Down Expand Up @@ -238,5 +239,28 @@ internal override void ComputeNPCCombatReplayActors(NPC target, ParsedEvtcLog lo
break;
}
}

internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedEvtcLog log, CombatReplay replay)
{
// Attunements Overhead
AddPylonAttunementDecoration(p, replay, p.GetBuffStatus(log, PylonAttunementBlue, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0), ParserIcons.SensorBlueOverhead);
AddPylonAttunementDecoration(p, replay, p.GetBuffStatus(log, PylonAttunementGreen, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0), ParserIcons.SensorGreenOverhead);
AddPylonAttunementDecoration(p, replay, p.GetBuffStatus(log, PylonAttunementRed, log.FightData.LogStart, log.FightData.LogEnd).Where(x => x.Value > 0), ParserIcons.SensorRedOverhead);
}

/// <summary>
/// Adds the Pylon Attunement overhead decoration.
/// </summary>
/// <param name="player">Player for the decoration.</param>
/// <param name="replay">Combat Replay.</param>
/// <param name="segments">The <see cref="Segment"/> where the Pylon Attunement buff appears.</param>
/// <param name="icon">The icon related to the respective Pylon Attunement buff.</param>
private static void AddPylonAttunementDecoration(AbstractPlayer player, CombatReplay replay, IEnumerable<Segment> segments, string icon)
{
foreach (Segment segment in segments)
{
replay.Decorations.Add(new IconOverheadDecoration(icon, 20, 1, segment, new AgentConnector(player)));
}
}
}
}
Loading