@@ -77,7 +77,8 @@ public abstract class OnCastListener
7777 else if prev != null
7878 prev.next = next
7979
80- next.prev = prev
80+ if next != null
81+ next.prev = prev
8182
8283 next = null
8384 prev = null
@@ -92,14 +93,16 @@ public abstract class OnCast extends OnCastListener
9293public abstract class OnPointCast extends OnCastListener
9394
9495 override function fire(unit caster)
95- fireEx(caster, EventData.getSpellTargetPos())
96+ if EventData.getSpellTargetUnit() == null
97+ fireEx(caster, EventData.getSpellTargetPos())
9698
9799 abstract function fireEx(unit caster, vec2 target)
98100
99101public abstract class OnUnitCast extends OnCastListener
100102
101103 override function fire(unit caster)
102- fireEx(caster, GetSpellTargetUnit())
104+ if EventData.getSpellTargetUnit() != null
105+ fireEx(caster, EventData.getSpellTargetUnit())
103106
104107 abstract function fireEx(unit caster, unit target)
105108
@@ -129,6 +132,8 @@ public abstract class EventListener
129132 static function add(unit u, eventid eventId, EventListener listener) returns EventListener
130133 let uid = u.getIndex()
131134 if uid <= 0
135+ Log.warn("Attempting to register event listener for a unit that is not indexed by UnitIndexer. " +
136+ "If this happens during initialization, consider registering the EventListener in a callback to nullTimer() instead.")
132137 return listener
133138 listener.eventId = eventId.toIntId()
134139 listener.uid = uid
@@ -169,9 +174,10 @@ public abstract class EventListener
169174 listener.next = castMapCasters[index]
170175 castMapCasters[index] = listener
171176 else
172- if castMap.has(abilId)
173- castMap.get(abilId).prev = listener
174- listener.next = castMap.get(abilId)
177+ let entry = castMap.get(abilId)
178+ if entry != null
179+ entry.prev = listener
180+ listener.next = entry
175181
176182 castMap.put(abilId, listener)
177183 return listener
@@ -180,9 +186,10 @@ public abstract class EventListener
180186 let trigUnit = GetTriggerUnit()
181187 let id = GetTriggerEventId().toIntId()
182188 // Unit Listeners
183- if trigUnit != null and fireEvents(trigUnit) and trigUnit.getIndex() > 0
184- if unitListenersFirsts[trigUnit.getIndex()] != null
185- var listener = unitListenersFirsts[trigUnit.getIndex()]
189+ if trigUnit != null
190+ let index = trigUnit.getIndex()
191+ if fireEvents(trigUnit) and index > 0 and unitListenersFirsts[index] != null
192+ var listener = unitListenersFirsts[index]
186193 while listener != null
187194 let nextListener = listener.next
188195 if listener.eventId == id
0 commit comments