Skip to content

Commit

Permalink
Analytics: Fixed Soulless Horror false successes in case the encounte…
Browse files Browse the repository at this point in the history
…r resets before all players are dead.
  • Loading branch information
Linkaaaaa committed Jun 24, 2024
1 parent 1906627 commit 73d38b4
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 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.11.1.4</Version>
<Version>1.11.1.5</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DebounceThrottle" Version="2.0.0" />
Expand Down
3 changes: 3 additions & 0 deletions ArcdpsLogManager/Logs/Updates/LogDataUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,9 @@ x.Profession is Profession.Thief or Profession.Engineer or Profession.Ranger
&& log.Encounter == Encounter.Other
&& log.MapId == MapIds.LonelyTower,
"Added support for Eparch in the Lonely Tower fractal"),
new LogUpdate(log => log.ParsingVersion < new Version(1, 11, 1, 5)
&& log.Encounter == Encounter.SoullessHorror,
"Fix detection for Soulless Horror in case the encounter resets before all players are dead.")
// 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
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 73d38b4

Please sign in to comment.