magefree / magefree/mage

CAST_SPELL and SPELL_CAST need to be cleaned up

Open
#9,514 1 comment 0 reactions 0 assignees View on GitHub
refactoring
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.