Open tool4ever opened 6 months ago
i think we should try isInZone(ZoneType.Stack)
and then fix the places where it breaks later
My initial tests with that aren't good: the AI never places a spell on the stack before checking for targets, so it'd cheat too quickly this way :/ but I will try combining it with 3.
My initial tests with that aren't good: the AI never places a spell on the stack before checking for targets, so it'd cheat too quickly this way :/ but I will try combining it with 3.
Yeah, the AI part needs to be fixed for this
Another problem with 1 is you could counter The Beast and then the ability can be retargeted because the zone gets updated 💩
Another problem with 1 is you could counter The Beast and then the ability can be retargeted because the zone gets updated 💩
Sounds like a problem where lki should be used?
Devoted Caretaker can give protection from instant + sorcery spells[^1]
Case A: ➡️ the cast trigger of The Beast, Deathless Prince will be from a spell source, so it shouldn't be able to target it now
Case B: ➡️ but the trigger from Kozilek's Return should be allowed to damage it, since the ability triggers in the GY
Ideas:
I think ideally
Card.isSpell()
could be changed fromisInstant() || isSorcery() || (isAura() && !isInZone(ZoneType.Battlefield))
to justisInZone(ZoneType.Stack)
But I'm not sure if some that would fail some logic checks?Maybe just scripting it as
Protection:Instant.inZoneStack,Sorcery.inZoneStack
is the safer alternativeOtherwise
getProtectionValid
will need a bigger rework as it also needs to provide SA valids:[^1]: So it's different from e. g. Petrified Wood-Kin which has "Protection from instants", here only the type should matter