You are right, I made a last-minute change on
Infinite Reflection but actually forgot to test it. The problem is that I don't know how to fix it properly.
If you change
- Code: Select all
<DURATION>
return TriggerObject() == nil or
(TriggerObject():GetZone() ~= ZONE_TRANSITION and TriggerObject():GetZone() ~= ZONE_IN_PLAY)
</DURATION>
with
- Code: Select all
<DURATION>
return TriggerObject() == nil
</DURATION>
Infinite Reflection works, but the cards still retain their transformation when they leave the battlefield. I thought that there was 1 pointer protection too much, so I tried to delete
- Code: Select all
EffectDC():Protect_CardPtr(COMPARTMENT_ID_PARAM_TRIGGER_OBJECT)
but do you know what happened? The opponent's creatures were correctly losing their transformation when hitting the graveyard, while mine were not!

I guess the solution would involve saving TriggerObject() into another pointer and do all the things from there, but I remember that being my first implementation of
Infinite Reflection and couldn't get it to work.
If some other modder wants to have a look at it and fix it,
here is the card.