diff --git a/src/main/java/opendota/CreateParsedDataBlob.java b/src/main/java/opendota/CreateParsedDataBlob.java index 147cf683..98b0ba58 100644 --- a/src/main/java/opendota/CreateParsedDataBlob.java +++ b/src/main/java/opendota/CreateParsedDataBlob.java @@ -792,7 +792,13 @@ private void handleDeathCombat(Entry e, List output, Metadata meta) { return; } - if (e.attackername != null && e.attackername.equals(key)) { + // Suicides (e.g. Techies) are not kills, but only when the attacker is + // the victim itself: an illusion OF the victim landing the killing blow + // (Dark Portrait, Disruption, Wall of Replica) has the same unit name + // while the kill belongs to the illusion's owner, which sourcename + // already resolves to + if (e.attackername != null && e.attackername.equals(key) + && (e.attackerillusion == null || !e.attackerillusion)) { return; }