Skip to content
This repository was archived by the owner on Oct 11, 2026. It is now read-only.
Merged
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
44 changes: 5 additions & 39 deletions libs/gw2_analytics/src/gw2_analytics/rotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -974,45 +974,11 @@ def add_instant(source: int, skill_id: int, time_ms: int, icd: int = 50) -> None
)

if has_unholy_burst_in_fight:
# EI uses EffectCastFinder: only emit when UnholyBurst effect is present
# with DesertShroud and related hit checks
unholy_burst_nearby = any(
isinstance(other, EffectEvent)
and other.guid == "C4E8DD3234E0C647993857940ED79AC1"
and other.source_agent_id == event.source_agent_id
and abs(other.time_ms - event.time_ms) < 100
for other in nearby_events(event.time_ms, 100)
)
if not unholy_burst_nearby:
continue

# DesertShroud check: no DesertShroud buff removal within 50ms
desert_shroud_removal = any(
isinstance(other, BoonApplyEvent)
and other.kind == "remove_all"
and other.skill_id == 40052 # DesertShroudBuff
and other.source_agent_id == event.source_agent_id
and abs(other.time_ms - event.time_ms) < 50
for other in nearby_events(event.time_ms, 50)
)
if desert_shroud_removal:
continue

# Related hit check: no UnholyBurst hit from same caster within 10ms
related_hit = any(
isinstance(other, DamageEvent)
and other.source_agent_id == event.source_agent_id
and other.skill_id == 38767 # UnholyBurst
and abs(other.time_ms - event.time_ms) < 10
for other in nearby_events(event.time_ms, 10)
)
if related_hit:
continue

add_instant(event.source_agent_id, event.skill_id, event.time_ms)
else:
# No UnholyBurst effect data in fight: use DamageCastFinder
add_instant(event.source_agent_id, event.skill_id, event.time_ms)
# EI disables DamageCastFinder when effect data exists (UsingDisableWithEffectData)
# Let the EffectCastFinder handle it via UnholyBurst effect events
continue
# No UnholyBurst effect data in fight: use DamageCastFinder
add_instant(event.source_agent_id, event.skill_id, event.time_ms)
elif isinstance(event, DamageEvent) and event.skill_id in _DAMAGE_CASTS:
add_instant(
event.source_agent_id,
Expand Down
Loading