magefree / magefree/mage

Commander: add support to cast target spells and lands

Open
#5,795 0 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
2.4k
Forks
940
Avg merge
2d 12h
Merged PRs (30d)
160

Description

Current xmage/commander "engine" have limitation to cast some spells from command zone. Without that fixes new formats like "Oathbreaker" (#5678) can't be implemented. See `CastCommanderAbility.java` and other code.

Related bugs example: [reddit](https://www.reddit.com/r/XMage/comments/bnxv48/legendary_sorceries_not_working_as_my_commander/).

TODO:
* [x] cast targeted/multimode spells from command zone;
* [x] cast lands from command zone;
* [x] check reduction effects like `Myth Unbound`;
* [x] check cards with target ajasters;
* [x] check cards with cost ajasters;
* [x] check commander cost reduce like `Geode Golem`;
* [ ] check card with commander count like `Commander Storm` in commander game;
* [ ] check card with commander count like `Commander Storm` in non commander game;
* [x] check `Opal Palace` with land's commander;
* [ ] check `Opal Palace` in non commander game;
* [ ] check Karn game restart code and combo with `Myth Unbound`;
* [ ] add support of special spell cards like Bestow (search by `extends SpellAbility`);
* [x] add support of Adventure cards;
* [ ] check restrictions to cast spells/lands like `Damping Engine`;
* [x] check alternative cost like `Force of Will` (must add commander cost anyway);
* [ ] check Command Beacon and cast from hand (no command cost apply);
* [ ] check extra and opponent controlled turns with `Emrakul, the Promised End`;
* [x] add support of alternative spell cast like `overload`;
* [x] add support of double faces cards;

Test cases:
```
[test commander target spell]
commander:Human:Lightning Bolt:1

[test commander land]
commander:Human:Academy Ruins:1
```

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.