CAST_SPELL and SPELL_CAST need to be cleaned up
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 940
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 160
Description
Many event types in xmage exist in pairs, with one type named in the present tense or active voice and the second event named in the past tense or passive voice. For example we have `DISCARD_CARD` and `DISCARDED_CARD`, `DRAW_CARD` and `DREW_CARD`, `DECLARE_ATTACKER` and `ATTACKER_DECLARED`. Normally, the first event type in such a pair is used for checking against replacement effects and is never actually fired, while the second event in the pair is the one that's fired and that watchers and triggered abilities see.
`CAST_SPELL` and `SPELL_CAST` *look* like they should be one such pair of event types, and in most respects they are, but `CAST_SPELL` is an event that xmage actually fires and that is watched by at least two watchers (`FirstSpellCastThisTurnWatcher` which is in the "common" package but is only used by one card, and `WildMagicSorcererWatcher`). Moreover, the `CAST_SPELL` event that is fired is *a completely different object* from the one that is checked against replacement effects.
I think we should try to clean up this state of affairs so that the two event types are more consistent with the other "do_thing/thing_done" pairs.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.