Use the damage detection system plus a dummy and that would complete your understanding of advanced trigger.. heres some help
DO try my map if this helps ;P!
Trigger 1
When a unit starts and effect of an ability
ability that is cast is equal to Chain Slice (or something)
Then
(Fix leaks yourself)
set slicetarget = target unit of ability being cast
set slicecast = casting unit
Pick everyunit within 1000 range position of slice target
Trigger - Add to Trigger2 Specfic Unit Event- picked unit takes damage
Unit create 1 dummy at position of slicecast
order unit to cast chain lightning
add 0.5 generic timer to last created unit
Trigger2
Event is nothing
condition is (unit type of DamageSource is dummy)
Move slicecast to poistion of triggering unit
It works and you will smile too
Logic:
Trigger one detects when you cast the chain slice
.. Well trigger then adds units within 1000 range to trigger 2 to check if anyone of them is damaged
.. clearly when he cast chain slice, a dummy is created to cast chain lightning
.. now order the dummy to cast chain lightning and give a timer to he dies right after casting
so now its done for trigger one
Trigger2 having no event... why? you need to know who gets chained in game, which is impossible to detect when you are coding, therefore you add the event at trigger1 which we done it already..
Next, the condition checks if damage comes from the dummy's chain lightning
its a frequently asked question here: Why not just check for caster's damage?
Answer: Look if you check for caster's damage, attack will move you to the damaged attack, any other spells will as well, including immolation... it will move you like mad dog there!
ok now action is simple, it moves the caster that cast Chain Slice to the position of the damaged unit..
Logic is pretty simple.. Idea is the complicated one