Skip to content

Commit

Permalink
adjusted determined checks for Ai
Browse files Browse the repository at this point in the history
  • Loading branch information
EliphasNUIT committed Oct 3, 2023
1 parent c48c261 commit 074e0e7
Showing 1 changed file with 7 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ internal class AiKeeperOfThePeak : SunquaPeak
private bool _hasDarkMode = false;
private bool _hasElementalMode = false;
private bool _china = false;

private const long Determined895Duration = int.MaxValue / 4;
public AiKeeperOfThePeak(int triggerID) : base(triggerID)
{
MechanicList.AddRange(new List<Mechanic>
Expand Down Expand Up @@ -162,7 +164,7 @@ internal override void EIEvtcParse(ulong gw2Build, FightData fightData, AgentDat
if (_hasElementalMode)
{
long darkModeStart = combatData.FirstOrDefault(x => x.StartCasting() && x.SrcMatchesAgent(aiAgent) && (_china ? x.SkillID == AiDarkModeStartCN : x.SkillID == AiDarkModeStart) && x.Time >= darkModePhaseEvent.Time && x.SrcMatchesAgent(aiAgent)).Time;
CombatItem invul895Loss = combatData.FirstOrDefault(x => x.Time <= darkModeStart && x.SkillID == Determined895 && x.IsBuffRemove == BuffRemove.All && x.SrcMatchesAgent(aiAgent));
CombatItem invul895Loss = combatData.FirstOrDefault(x => x.Time <= darkModeStart && x.SkillID == Determined895 && x.IsBuffRemove == BuffRemove.All && x.SrcMatchesAgent(aiAgent) && x.Value > Determined895Duration);
long elementalLastAwareTime = (invul895Loss != null ? invul895Loss.Time : darkModeStart);
AgentItem darkAiAgent = agentData.AddCustomNPCAgent(elementalLastAwareTime, aiAgent.LastAware, aiAgent.Name, aiAgent.Spec, TargetID.AiKeeperOfThePeak2, false, aiAgent.Toughness, aiAgent.Healing, aiAgent.Condition, aiAgent.Concentration, aiAgent.HitboxWidth, aiAgent.HitboxHeight);
RedirectEventsAndCopyPreviousStates(combatData, extensions, agentData, aiAgent, new List<AgentItem> { aiAgent}, darkAiAgent, false);
Expand Down Expand Up @@ -232,7 +234,7 @@ internal override List<PhaseData> GetPhases(ParsedEvtcLog log, bool requirePhase
}
if (_hasElementalMode)
{
BuffApplyEvent invul895Gain = log.CombatData.GetBuffData(Determined895).OfType<BuffApplyEvent>().Where(x => x.To == elementalAi.AgentItem).FirstOrDefault();
BuffApplyEvent invul895Gain = log.CombatData.GetBuffData(Determined895).OfType<BuffApplyEvent>().Where(x => x.To == elementalAi.AgentItem && x.AppliedDuration > Determined895Duration).FirstOrDefault();
long eleStart = Math.Max(elementalAi.FirstAware, log.FightData.FightStart);
long eleEnd = invul895Gain != null ? invul895Gain.Time : log.FightData.FightEnd;
if (_hasDarkMode)
Expand Down Expand Up @@ -274,7 +276,7 @@ internal override List<PhaseData> GetPhases(ParsedEvtcLog log, bool requirePhase
}
if (_hasDarkMode)
{
BuffApplyEvent invul895Gain = log.CombatData.GetBuffData(Determined895).OfType<BuffApplyEvent>().Where(x => x.To == darkAi.AgentItem).FirstOrDefault();
BuffApplyEvent invul895Gain = log.CombatData.GetBuffData(Determined895).OfType<BuffApplyEvent>().Where(x => x.To == darkAi.AgentItem && x.AppliedDuration > Determined895Duration).FirstOrDefault();
long darkStart = Math.Max(darkAi.FirstAware, log.FightData.FightStart);
long darkEnd = invul895Gain != null ? invul895Gain.Time : log.FightData.FightEnd;
if (_hasElementalMode)
Expand Down Expand Up @@ -331,14 +333,14 @@ internal override void CheckSuccess(CombatData combatData, AgentData agentData,
{
case 1:
case 2:
BuffApplyEvent invul895Gain = combatData.GetBuffData(Determined895).OfType<BuffApplyEvent>().Where(x => x.To == Targets[0].AgentItem).FirstOrDefault();
BuffApplyEvent invul895Gain = combatData.GetBuffData(Determined895).OfType<BuffApplyEvent>().Where(x => x.To == Targets[0].AgentItem && x.AppliedDuration > Determined895Duration).FirstOrDefault();
if (invul895Gain != null)
{
fightData.SetSuccess(true, invul895Gain.Time);
}
break;
case 3:
BuffApplyEvent darkInvul895Gain = combatData.GetBuffData(Determined895).OfType<BuffApplyEvent>().Where(x => x.To == Targets.FirstOrDefault(y => y.IsSpecies(TargetID.AiKeeperOfThePeak2)).AgentItem).FirstOrDefault();
BuffApplyEvent darkInvul895Gain = combatData.GetBuffData(Determined895).OfType<BuffApplyEvent>().Where(x => x.To == Targets.FirstOrDefault(y => y.IsSpecies(TargetID.AiKeeperOfThePeak2)).AgentItem && x.AppliedDuration > Determined895Duration).FirstOrDefault();
if (darkInvul895Gain != null)
{
fightData.SetSuccess(true, darkInvul895Gain.Time);
Expand Down

0 comments on commit 074e0e7

Please sign in to comment.