Skip to content

Commit

Permalink
Analytics: Fixed Soulless Horror false successes
Browse files Browse the repository at this point in the history
  • Loading branch information
Linkaaaaa authored Jul 8, 2024
1 parent 044f567 commit 6e23f80
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 17 deletions.
30 changes: 15 additions & 15 deletions ArcdpsLogManager/Logs/Updates/LogDataUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,32 +190,32 @@ x.Profession is Profession.Thief or Profession.Engineer or Profession.Ranger
"Fix success detection for Cosmic Observatory"),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 0, 2)
&& log.Encounter == Encounter.TempleOfFebe,
"Add support for Temple of Febe Legendary CM"),
"Add support for Temple of Febe Legendary CM."),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 0)
&& log.Encounter == Encounter.TempleOfFebe
&& log.GameBuild >= GameBuilds.TempleOfFebeHealthFix,
"Fixed NM detection for Temple of Febe"),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 1)
&& log.Encounter == Encounter.Skorvald,
"Fix success detection for Skorvald when all players are dead while the boss is invulnerable at 1%"),
"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%"),
&& 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"),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 5)
&& log.MapId == MapIds.LonelyTower,
"Add support for Eparch in the Lonely Tower fractal."),
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."),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 7)
&& log.Players.Count(x => x.Tag == PlayerTag.Commander) > 1,
"Fix commander tag detection"),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 6)
"Fix commander tag detection."),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 7)
&& log.EncounterResult == EncounterResult.Success
&& string.Compare(log.EvtcVersion, "EVTC20240612", StringComparison.OrdinalIgnoreCase) >= 0
&& log.Encounter is Encounter.XunlaiJadeJunkyard or Encounter.KainengOverlook,
"Fix success detection for Xunlai Jade Junkyard and Kaineng Overlook with recent arcdps versions"),
"Fix success detection for Xunlai Jade Junkyard and Kaineng Overlook with recent arcdps versions."),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 7)
&& log.Encounter is Encounter.Adina or Encounter.Sabir,
"Fixed Adina and Sabir possibly being identified as the other one in rare scenarios."),
"Fix Adina and Sabir possibly being identified as the other one in rare scenarios."),
// 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 All @@ -237,4 +237,4 @@ public IEnumerable<LogUpdateList> GetUpdates(IEnumerable<LogData> logs)
}
}
}
}
}
16 changes: 14 additions & 2 deletions EVTCAnalytics/Processing/EncounterDataProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -205,12 +205,24 @@ private IEncounterData GetPvEEncounterData(Encounter encounter, Agent mainTarget
// Raids - Wing 5
case Encounter.SoullessHorror:
{
return GetDefaultBuilder(encounter, mainTarget)
.WithResult(new AgentBuffGainedDeterminer(mainTarget, SkillIds.SoullessHorrorDetermined))
var soullessHorror = GetTargetBySpeciesId(agents, SpeciesIds.SoullessHorror);
var desmina = GetTargetBySpeciesId(agents, SpeciesIds.Desmina);

var targets = new Agent[] { soullessHorror, desmina }.Where(x => x != null).ToList();

return GetDefaultBuilder(encounter, targets)
.WithResult(new ConditionalResultDeterminer(
(desmina == null, new ConstantResultDeterminer(EncounterResult.Failure)),
(soullessHorror != null && desmina != null, new AllCombinedResultDeterminer(
new AgentBuffGainedDeterminer(soullessHorror, SkillIds.SoullessHorrorDetermined),
new NPCSpawnDeterminer(SpeciesIds.Desmina)
))
))
// Necrosis is applied faster in Challenge Mode. It is first removed and then reapplied
// so we check the remaining time of the removed buff.
.WithModes(new RemovedBuffStackRemainingTimeModeDeterminer(SkillIds.Necrosis,
EncounterMode.Challenge, 23000, EncounterMode.Normal, 18000))
.WithTargets(targets)
.Build();
}
case Encounter.RiverOfSouls:
Expand Down

0 comments on commit 6e23f80

Please # to comment.