Commit graph

10140 commits

Author SHA1 Message Date
Evan Kranzler
124bd261e9 [NEO] fixed Invoke Calamity counting mana value incorrectly 2022-03-28 18:24:28 -04:00
Evan Kranzler
f6306630b3 [TSP] fixed implementation of Weatherseed Totem 2022-03-25 22:21:21 -04:00
Evan Kranzler
945b60c8d0 fixed some NPE issues with player target choosing 2022-03-25 21:16:38 -04:00
Evan Kranzler
9e38671b54 [CLB] Implemented Ancient Brass Dragon 2022-03-25 19:23:14 -04:00
Evan Kranzler
0bfce64ede [CLB] Implemented Wand of Wonder 2022-03-25 18:09:18 -04:00
Evan Kranzler
effdf14579 [VOW] fixed Savior of Ollenbock issues (fixes #8786) 2022-03-25 17:35:27 -04:00
Evan Kranzler
f28643d0f6 [CLB] Implemented Minsc & Boo, Timeless Heroes 2022-03-25 08:21:32 -04:00
Evan Kranzler
80e11b2052
(WIP) Replacing blocking/blocked by predicates (#8729)
* replaced blocking/blocked by predicates

* added test for knight of dusk (currently fails)

* added source parameter to filters and everything else that needs it

* some changes to various predicates

* test fix

* small changes to filter code

* merge fix

* fixed a test failure

* small change to Karn, Scion of Urza

* removed sourceId from filter methods and other similar places

* added new getobject method to fix some test failures

* a few more fixes

* fixed merge conflicts

* merge fix
2022-03-23 18:45:02 -04:00
Evan Kranzler
53877424a0 [TSP] small change to paradox haze to not use watcher with argument 2022-03-23 18:44:32 -04:00
Evan Kranzler
474c9655a4 some additional text fixes 2022-03-22 08:46:02 -04:00
Evan Kranzler
313a19865a [HOU] added shared predicate class for Desert controlled or in graveyard 2022-03-21 20:58:39 -04:00
Evan Kranzler
0f1375ca60 fixed various instances of mana costs which don't include braces 2022-03-21 19:10:38 -04:00
Evan Kranzler
a5afba5d5a fixed some cards with malformed mana strings 2022-03-21 18:07:50 -04:00
Evan Kranzler
b61125c0f3 [NEO] added hint to channel lands 2022-03-21 16:32:42 -04:00
Evan Kranzler
36a41a81a3 reorganized ban lists 2022-03-18 17:23:02 -04:00
Evan Kranzler
0d038b1737 reorganized various constructed formats 2022-03-18 09:49:34 -04:00
Evan Kranzler
4967750669 fixed CycleOrDiesTriggeredAbility not differentiating between different types of trigger events 2022-03-17 18:15:36 -04:00
Evan Kranzler
02017b9a88
Implementing The Prismatic Piper (Ready for review) (#8164)
* [CMR] Implemented The Prismatic Piper

* updated commander validation to handle The Prismatic Piper

* created abstract base class for commander variants

* added ability to prismatic piper

* added game init handling

* small revert

* small reorganization of tests

* added some validation tests for piper

* added more tests for piper

* add another test

* added decklist comments to tests

* added some more piper tests

* added another test

* added mana option tests

* added a companion test

* fix conflict

* updated abstract commander to work with Friends forever

* merge fix

* Deck: added details for illegal validation of companion card;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2022-03-17 18:02:29 -04:00
Evan Kranzler
966cb7ccb7 replaced some cast for free effects with newer method 2022-03-16 17:29:49 -04:00
Evan Kranzler
8b7a5c370a added shared class for cards which search for different names 2022-03-16 16:52:13 -04:00
Evan Kranzler
d1b328a2da added common class for searching and exiling 2022-03-16 09:10:30 -04:00
Evan Kranzler
6e132c999c [AFC] reverted change to Sefris of the Hidden Ways, changed 2022-03-15 18:57:24 -04:00
Alex Vasile
b40bde5e12
[AFC] Implemented Share the Spoils (#8583)
* Preliminary implementation of Share the Spoils.

* Added tracking of cards in exile to MageTestPlayerBase in order to help with testing of cards such as Share the Spoils which put and take cards out of exile a lot.

* Moved Share the Spoils to the correct set list.

* Fixed bug with using ’ instead of ' for card text.

* Add method to assert number of cards exiled into a specific exile zone.

* Further implementation of ShareTheSpoils and it's tests.

* Fixed a bug in the calcualtiong of exileNUmber. (I misunderstood what the copy() method was for)

* - Added a watcher which should limit player to only cast the spell once per turn.
- Fixed the tests to run properly (using .LOST instead of .LOSES for the GameEvent).
- A bit of cleaning up of the class

* Updated tests and card to capture both conceding and losing the game through other means.

* Further implementation. All parts are working (though not correctly).

* All pieces are now working. But, both the spend any mana and exile a card off the top of library activate when ANY card is played from exile, not just one exiled with Share the Spoils.

* Replaced changed how I move card from top of library to correct exile zone. Instead of using moveCards() and moveToAnotherZone(), I am not using moveCardsToExile().

* A new card is now properly exiled whenever one is played with Share the Spoils

* Moved inner class out and passing exileId as parameter instead

* Updated text based on comments

* Added several more tests

* Made changes to how exileId is handled based on comments

* Made changes based on comments

* Further changes based on comments

* Add a few more tests (will have to fix them once the exile zone issue is fixed)

* Added workaround for #8706

* Get most of the tests working

* Simplified cardId handling

* Reformat file based on comment

* - Added setStrictChooseMode to all tests
- Properly using checkPlayableAbility for all checks where things can't be played/cast.

* Fixed a missing getMainCardId call that made difficult cards unplayable

* - Simplified handling of casting only once per turn. I don't see the point to keeping the MageReference object. using a simple boolean instead
- This also fixes a bug where multiple cards could be played in the same turn.

* Fixed test for difficult cards.

* Reworked spend mana effect based on Dead Man's chest

* Added a check again a null watcher

* Fixed typo in checkManaSpendingForOtherExileSource

* Fixed tests to use proper checkPlayableAbility syntax.

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2022-03-15 18:34:36 -04:00
Evan Kranzler
06eeb90b3d replaced some more card moving method calls 2022-03-15 18:08:36 -04:00
Alex W. Jackson
77433d7ee6 Remove more duplicate tokens and rename some tokens to more generic names 2022-03-15 04:23:10 -04:00
Evan Kranzler
9e0ea945ca
Refactoring token names to reflect new rule (ready for review) (#8446)
* updated Riptide Replicator and Volrath's Laboratory

* refactored token names

* some test fixes

* more test fixes

* even more test fixes

* the final test fixes

* fixed a few missed tokens

* merge fix

* fixed a test failure

* fixed test failure

* updated ignored verify test

* fixed token images not appearing

* updated tests
2022-03-14 22:37:21 -04:00
Evan Kranzler
83c94322c6 refactored some instances of Player::moveCardToExileWithInfo 2022-03-14 21:14:12 -04:00
Evan Kranzler
8198322ba5 some changes to ExileSourceCost 2022-03-14 20:31:40 -04:00
Alex W. Jackson
9af399eadb Better changeling token workaround; add additional test (fixes #8766) 2022-03-14 02:43:12 -04:00
Evan Kranzler
82832046b3 fixed issues with changeling tokens not counting as they enter 2022-03-13 22:25:44 -04:00
Alex W. Jackson
79b7a0a627 Remove obsolete adjustCosts and adjustTargets methods from MageObject interface 2022-03-12 19:01:59 -05:00
Evan Kranzler
a5e21b8c9e [DGM] fixed Legion's Initiative not returning exiled creatures (fixes #8761) 2022-03-12 11:21:01 -05:00
Alex W. Jackson
7f4e691685 Fix #8758 2022-03-12 04:08:48 -05:00
Evan Kranzler
783ddb5bdc added split card halves back to database (fixes #8541) 2022-03-11 09:25:35 -05:00
Evan Kranzler
f45e90ad1b fixed a test failure 2022-03-10 23:29:07 -05:00
Evan Kranzler
3535d023b7 removed empty mode constructor 2022-03-10 16:15:08 -05:00
Evan Kranzler
ccecda52fd replaced various instances of ReturnToHandTargetEffect with ReturnFromGraveyardToHandTargetEffect 2022-03-10 15:35:46 -05:00
Evan Kranzler
09636d7332 fixed starting loyalty display in mock card 2022-03-09 20:32:48 -05:00
Evan Kranzler
f94c79f6b4 [ROE] various text fixes 2022-03-09 19:16:33 -05:00
Evan Kranzler
08411b122c [ROE] updated level up text 2022-03-09 18:30:54 -05:00
Evan Kranzler
e67a4f26b4 small change to eternalize and embalm 2022-03-09 17:08:28 -05:00
Evan Kranzler
ef9d79e712 replaced various flavor words with ability words 2022-03-09 16:34:49 -05:00
Evan Kranzler
bbb9382150
Reworking effects which allow casting spells from a selection of cards (ready for review) (#8136)
* added function for casting spells with specific attributes from a selection of cards

* updated cascade to use new method

* refactored various cards to use new methods

* added TestPlayer method

* fixed a small error

* text fix

* broke out some repeated code

* added missing notTarget setting

* add additional retain zone check

* some more cards refactored

* more refactoring

* added interface for split/modal cards

* reworked spell casting methods

* reworked multiple cast to prevent unnecessary dialogs

* fixed test failures due to change in functionality

* add AI code

* small nonfunctional change

* reworked Kaya, the Inexorable

* added currently failing test

* added more tests

* updated Geode Golem implementation

* fixed adventure/cascade interaction, added/updated tests

* some nonfunctional refactoring

* added interface for subcards

* [AFC] Implemented Fevered Suspicion

* [AFC] Implemented Extract Brain

* [AFC] updated Arcane Endeavor implementation

* [C17] reworked implementation of Izzet Chemister

* [ZEN] reworked implemented of Chandra Ablaze

* additional merge fix

* [SLD] updated Eleven, the Mage

* [NEO] Implemented Discover the Impossible

* [NEO] Implemented The Dragon-Kami Reborn / Dragon-Kami's Egg

* [NEO] Implemented Invoke Calamity

* [AFR] Implemented Rod of Absorption

* [VOC] Implemented Spectral Arcanist

* [VOC] added additional printings

* [NEO] added all variants

* [SLD] updated implementation of Ken, Burning Brawler
2022-03-09 08:03:54 -05:00
Evan Kranzler
7fb089db48 [WWK] various text fixes 2022-03-08 21:24:22 -05:00
Evan Kranzler
caa1b7a8d7 [ZEN] various text fixes 2022-03-08 20:59:01 -05:00
Evan Kranzler
6b72142ef2 [MOR] various text fixes 2022-03-08 08:33:09 -05:00
Evan Kranzler
8999a6e647 [SHM] various text fixes 2022-03-07 22:53:52 -05:00
Evan Kranzler
7f95929288 [EVE] various text fixes 2022-03-07 21:04:59 -05:00
Evan Kranzler
e820d9f4f0 reworked champion ability 2022-03-07 20:48:35 -05:00
Evan Kranzler
50b3d3d8d9 [LRW] various text fixes 2022-03-07 20:19:20 -05:00
Alex W. Jackson
baece6e241 [CON] Remove a duplicate token 2022-03-07 14:59:01 -05:00
Alex W. Jackson
813e1816ea [RIX] Remove a duplicate token 2022-03-07 14:26:12 -05:00
Evan Kranzler
87a999ca0e [M10] various text fixes 2022-03-07 09:00:39 -05:00
Evan Kranzler
1582321d26 [ARB] various text fixes 2022-03-06 22:24:16 -05:00
Evan Kranzler
3833d7bab3 updated implementation of Domain value 2022-03-06 18:31:07 -05:00
Evan Kranzler
c8cdc0a502 [CON] various text fixes 2022-03-06 18:07:25 -05:00
Evan Kranzler
edaaac53d9 [ALA] various text fixes 2022-03-06 15:29:47 -05:00
Evan Kranzler
84261a1731 various fixes to look and pick effect text 2022-03-03 18:33:04 -05:00
Evan Kranzler
2675b75c60 various text fixes 2022-03-03 17:57:39 -05:00
Evan Kranzler
d8137e7e05 [M21] a few text fixes 2022-03-03 09:19:17 -05:00
Evan Kranzler
f574e6fc1d [THB] various text fixes 2022-03-03 09:06:05 -05:00
Evan Kranzler
32bf246e77 [NEO] fixed bugs with Kotose, the Silent Spider and March of Reckless Joy (fixes #8737, fixes #8736) 2022-03-02 18:10:26 -05:00
Evan Kranzler
0cc1b152c4 [ONS] Implemented Graxiplon 2022-03-01 19:02:45 -05:00
Evan Kranzler
a7fa431d19 [Y22] Implemented Soulstealer Axe 2022-03-01 17:55:19 -05:00
Evan Kranzler
f4b95d8e2c [Y22] Implemented Faithful Disciple 2022-03-01 17:47:28 -05:00
Evan Kranzler
6094c6eed7 [NEO] reworked implementation of Nashi, Moon Sage's Scion 2022-03-01 08:31:54 -05:00
Evan Kranzler
6c643fdc5e [EVE] fixed implementation of Hotheaded Giant 2022-02-28 08:45:13 -05:00
Alex W. Jackson
2025bca358 Fix more double semicolons in java code 2022-02-25 10:08:18 -05:00
Evan Kranzler
bf699b5559 fixed test failures 2022-02-24 21:12:33 -05:00
Evan Kranzler
eb4366013b reworked auras which grant protection but don't remove themselves 2022-02-24 20:15:16 -05:00
Evan Kranzler
48d139393d [FUT] reworked Daybreak Coronet 2022-02-24 20:15:15 -05:00
Evan Kranzler
3cbfe4d623 [BOK] reworked implementation of Shirei, Shizo's Caretaker and added test 2022-02-24 20:15:15 -05:00
Evan Kranzler
f32d0b3e6e fixed issues with Conspire, added additional tests 2022-02-23 21:37:42 -05:00
Evan Kranzler
86b20185f5 [SHM] reworked implementation of Conspire ability 2022-02-23 09:18:25 -05:00
Alex W. Jackson
15a6d939b7 [BOK] Fix Waxmane Baku ability to be targeted, not choose on resolution 2022-02-22 22:59:21 -05:00
Alex W. Jackson
840058b246 Remove another unused, duplicate Ability class 2022-02-22 20:51:22 -05:00
Alex W. Jackson
7cddea8c63 Intimidate text fixes 2022-02-22 19:47:53 -05:00
Jeff Wadsworth
83e18393f7 - changed to lower-case and added <i> to intimidate keyword. 2022-02-22 17:21:01 -06:00
Evan Kranzler
414018db13 fixed the text on various sliver cards 2022-02-22 17:53:31 -05:00
Evan Kranzler
abc6618cba [SLD] a few more text fixes 2022-02-22 17:51:02 -05:00
Jeff Wadsworth
cf2b6f8366 - Fixed #8707 2022-02-22 16:36:34 -06:00
Alex W. Jackson
dd8d86ba95 Fix Navigator's Compass not working while casting spells 2022-02-20 13:24:57 -05:00
Evan Kranzler
cc8ddbfd7c [KLD] various text fixes 2022-02-20 09:37:58 -05:00
Evan Kranzler
014a4b6941 [AER] various text fixes 2022-02-20 08:43:01 -05:00
Evan Kranzler
d3ebac1776 [SHM] fixed Repel Intruders not being able to be cast when stack is empty (fixes #8715) 2022-02-19 18:32:43 -05:00
Evan Kranzler
3f37b5aa76 updated Heart of Kiran text generation 2022-02-19 17:42:19 -05:00
Evan Kranzler
4868afe0e0 some changes to payment text generation 2022-02-19 17:41:57 -05:00
Evan Kranzler
82b67a2548 [SLD] some more text fixes 2022-02-19 12:59:37 -05:00
Evan Kranzler
ac56e8dd24 [NEO] fixed Mechtitan Core error when exiling only tokens 2022-02-19 09:49:50 -05:00
Evan Kranzler
77cc5646b1 small fix to previous refactor 2022-02-18 22:23:24 -05:00
Evan Kranzler
8040e7d1e8 [NEC] fixed Kotori, Pilot Prodigy's granted crew ability not animating vehicles (fixes #8713) 2022-02-18 22:22:44 -05:00
Jeff Wadsworth
001e8a24e0 - Fixed #8675 2022-02-18 14:34:42 -06:00
Evan Kranzler
e91c6ad65c [SLD] various text fixes 2022-02-18 10:13:15 -05:00
Evan Kranzler
c276e8479b [SLD] Implemented Ken, Burning Brawler 2022-02-17 21:36:59 -05:00
Evan Kranzler
87aa1b326b [SLD] Implemented Chun-Li, Countless Kicks 2022-02-17 21:26:17 -05:00
Evan Kranzler
5f3cb1c9f8 [SLD] Implemented Zangief, the Red Cyclone 2022-02-17 20:55:50 -05:00
Evan Kranzler
4ede390e40 some reworking of Equip, Fortify, and Reconfigure 2022-02-17 18:08:22 -05:00
Evan Kranzler
9c8943384a small nonfunctional cleanup to continuous effects handling 2022-02-17 08:19:52 -05:00
Evan Kranzler
4591ac07cc
Reworking goad effects (ready for review) (#8034)
* changing goad to designation, refactored goad effects to be continuous

* [AFC] Implemented Vengeful Ancestor

* reworked effects which goad an attached creature

* updated goading implementation

* updated combat with new goad logic

* some more changes, added a test

* another fix

* update to test, still fails

* added more failing tests

* more failing tests

* added additional goad check

* small fix to two tests (still failing

* added a regular combat test (passes and fails randomly)

* fixed bug in computer player random selection

* some changes to how TargetDefender is handled

* removed unnecessary class

* more combat fixes, tests pass now

* removed tests which no longer work due to combat changes

* small merge fix

* [NEC] Implemented Komainu Battle Armor

* [NEC] Implemented Kaima, the Fractured Calm

* [NEC] added all variants
2022-02-15 09:18:21 -05:00
Alex W. Jackson
5725873aeb
Fix #8305, #8692 (#8698) 2022-02-15 03:29:27 -05:00
Evan Kranzler
3b6a9c0a9b fixed test failure 2022-02-14 22:29:21 -05:00
Evan Kranzler
8da3a78273 fixed text on various cards which draw and discard 2022-02-14 21:56:07 -05:00
Evan Kranzler
c28da75ac1 some more text fixes for adding counter effects 2022-02-14 21:35:07 -05:00
Evan Kranzler
99e8b80184 [NEO] various text fixes 2022-02-14 21:10:48 -05:00
Evan Kranzler
a2a0466212 [NEC] various text fixes 2022-02-14 20:49:07 -05:00
Evan Kranzler
21dd720336 [NEC] Implemented Smoke Spirits' Aid 2022-02-14 19:15:05 -05:00
Evan Kranzler
3b1b5cec9e [NEC] Implemented Ruthless Technomancer 2022-02-14 17:34:46 -05:00
Evan Kranzler
957eca8d87 [NEO] fixed Go-Shintai of Lost Wisdom milling controller instead of targeted player (fixes #8701) 2022-02-14 17:08:20 -05:00
Daniel Bomar
0694fd3ef7
[NEO] Implemented Kumano Faces Kakkazan / Etching of Kumano (#8674)
* [NEO] Implemented Kumano Faces Kakkazan / Etching of Kumano

* [NEO] Etching of Kumano - Clean up watcher controller check

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2022-02-12 15:05:04 -05:00
Evan Kranzler
cff38b74b9 [NEO] fixed implementation of March additional costs (#8524) 2022-02-12 14:27:35 -05:00
Evan Kranzler
3349c5d327 [NEO] added missing condition to Reconfigure unattach ability 2022-02-10 21:37:50 -05:00
Evan Kranzler
42592072c2 fixed test failure 2022-02-10 19:27:19 -05:00
Evan Kranzler
fcd38fd512 [AER] reworked Heart of Kiran implementation 2022-02-10 18:12:42 -05:00
Evan Kranzler
5ba82fa698 [NEO] updated vehicle crewed trigger to trigger on resolution rather than cost paid 2022-02-10 17:43:05 -05:00
Evan Kranzler
54203c16d3
[NEO] Implementing Compleated mechanic and hybrid phyrexian mana (ready for review) (#8677)
* [NEO] Implemented Tamiyo, Compleated Sage

* replaced PhyrexianManaCost calls with ManaCostsImpl calls

* updated phyrexian mana implementation

* added phyrexian hybrid symbol support

* updated starting loyalty implementation for planeswalkers

* change compleated to singleton

* implemented Compleated ability

* added some missing loyalty setters

* changed when loyalty is added to a walker to fix bugs

* slight change to some tests to fix them from failing

* fixed token issue
2022-02-10 10:25:23 -05:00
Alex Vasile
3709b5c098
[NEO] Implemented Myojin of Cryptic Dreams and Myojin of Grim Betrayal (#8680)
* - Implemented Myojin of Cryptic Dreams and Myojin of Grim Betrayal.
- Updated CardsPutIntoGraveyardWatcher to keep track of all cards that entered the graveyard.
- Added documentation to CardsPutIntoGraveyardWatcher.

* Fixed add indestructible counter ability
2022-02-10 09:23:13 -05:00
Evan Kranzler
6851e553d8 [NEO] various text fixes 2022-02-08 19:41:26 -05:00
Evan Kranzler
b100890cdf [NEO] Implemented Mechtitan Core 2022-02-08 18:38:49 -05:00
Jeff Wadsworth
b83d76bb08 - [NEO] added Eater of Virtue 2022-02-08 09:08:50 -06:00
Evan Kranzler
8bdfff89d0 [NEC] Implemented Go-Shintai of Life's Origin 2022-02-08 08:58:13 -05:00
Evan Kranzler
4f2671f475 [NEC] Implemented Aerial Surveyor 2022-02-08 08:43:47 -05:00
Evan Kranzler
76a1187c8e [NEO] Implemented Fable of the Mirror Breaker / Reflection of Kiki-Jiki 2022-02-07 20:38:03 -05:00
Evan Kranzler
442859497b [NEO] Implemented Invoke Justice 2022-02-07 19:09:06 -05:00
Evan Kranzler
c44d101cfd [NEO] Implemented Tezzeret, Betrayer of Flesh 2022-02-07 17:54:06 -05:00
Daniel Bomar
a64741ff49
[NEO] Implemented Lethal Exploit 2022-02-07 16:49:56 -06:00
Evan Kranzler
c1d5a310d5 [NEO] Implemented Tatsunari, Toad Rider 2022-02-07 08:48:58 -05:00
Alex Vasile
919f320086 Made hint optional for Equip 2022-02-06 21:10:37 -05:00
Evan Kranzler
b130e01187 [NEO] Implemented Crackling Emergence 2022-02-06 19:21:09 -05:00
Alex Vasile
4dc0a21e7b
Implemented empty functions setIsAllCreatureTypes for Commander. (#8660)
* Implemented empty functions `setIsAllCreatureTypes` for Commander.

* Rather than copy and pasting the code, call source object

* Add pass-through for isAllCreatureTypes
2022-02-06 18:16:41 -05:00
Evan Kranzler
f7b1078210 removed unfinished text changing implementation 2022-02-06 18:09:41 -05:00
Alex Vasile
24ff47c803 Fixed hints on ward 2022-02-06 17:04:25 -05:00
Evan Kranzler
c7f65031a1 [NEO] Implemented March of Swirling Mist 2022-02-06 16:07:58 -05:00
Evan Kranzler
2783f55765 [NEO] Implemented March of Otherworldly Light 2022-02-06 16:01:37 -05:00
Evan Kranzler
5ed88aae91 fixed #8662 2022-02-06 15:40:49 -05:00
Evan Kranzler
495fc57540 [NEO] Implemented Reconfigure abliity 2022-02-06 12:27:12 -05:00
Alex Vasile
5945aaeda4
[VOC] Implemented Shadowgrange Archfiend AND Changed MadnessAbility (#8628)
* Implemented Shadowgrange Archfiend

* Changed MadnessAbility to work with cards which also require life to be paid as part of the madness cost (so far only Shadowgrange Archfiend).

* Updated Shadowgrange Archfiend to work with new Madness implementation (and actually cost life to cast using madness)

* Removed unnecessary variable
2022-02-06 11:36:19 -05:00
Evan Kranzler
9ec6b617b8 [NEO] Implemented Shigeki, Jukai Visionary 2022-02-06 11:10:40 -05:00
Alex Vasile
2996b0f76f Changed getTopCards to use LinkedHashSet to always return cards in the same order that they are in the library. 2022-02-06 10:08:17 -05:00
Evan Kranzler
5940ff7cfd [NEO] Implemented Kura, the Boundless Sky 2022-02-05 21:02:13 -05:00
Alex Vasile
5611f41949
[VOC] Implemented Mirage Phalanx (#8654)
* Implemented Mirage Phalanx

* Changed based on first set of comments

* Reordered variables in alphabetical order

* Added support for removing abilities from a token before creating it.

* Fixed typo in CreateTokenCopyTargetEffect, should have been getAddedPermanents not getAddedPermanent (with the s).

* Updated how soulbond is removed from MiragePhalanx tokens

* Fixed missing fields in the copy constructor

* - Refactoring the exileTokensCreated function to exile all tokens as a single trigger.
- Changed Mirage Phalanx to use the new exileTokensCreated function
- changed ’ to '
2022-02-05 20:38:12 -05:00
Evan Kranzler
b92128dd41 [NEO] Implemented Bronze Cudgels 2022-02-05 18:22:42 -05:00
Evan Kranzler
266addb4e1 small update to crew ability to reflect rule change 2022-02-05 17:50:51 -05:00
Evan Kranzler
be7e936fc1 [NEO] Implemented Inventive Iteration / Living Breakthrough 2022-02-05 17:50:50 -05:00
Daniel Bomar
dfb3f87bb3
[NEO] Implemented Flame Discharge 2022-02-05 15:14:04 -06:00
Evan Kranzler
f20cbd934f [NEO] Implemented Dragonspark Reactor 2022-02-05 15:08:00 -05:00
Alex Vasile
331728c238
[VOC] Implemented Donal, Herald of Wings (#8653)
* Implemented Donal, Herald of Wings

* Made the spell work only once per turn

* Made the spell work only once per turn

* - Changed based on Nykthos Paragon
- Fixed properly adjusting power and toughness
- Fixed card text
2022-02-05 14:55:27 -05:00
Evan Kranzler
60e75f5bc5 [NEO] Implemented Careful Cultivation 2022-02-05 10:12:04 -05:00
Evan Kranzler
a00e4430d2 [NEO] Implemented Gift of Wrath 2022-02-05 09:25:30 -05:00
Oleg Agafonov
3cb721fbd9 [VOW] added tokens and images support 2022-02-05 14:44:46 +04:00
Oleg Agafonov
dd72e078b5 [VOW] Dorothea's Retribution - fixed wrong token 2022-02-05 14:26:28 +04:00
Oleg Agafonov
424fc919a7 [VOC] added tokens and images support 2022-02-05 13:03:35 +04:00
Oleg Agafonov
1fcdbe4b63 Fixed miss default token constructors 2022-02-05 12:33:40 +04:00
Oleg Agafonov
54a1efec63 [MID] added tokens and images support 2022-02-05 12:22:39 +04:00
Evan Kranzler
6d1c7595bf small fix to saga text generation 2022-02-04 20:52:00 -05:00
Evan Kranzler
0345580fa7 [NEO] Implemented Farewell 2022-02-04 17:41:45 -05:00
Jeff Wadsworth
93f14cdf61 - Fixed #8624 2022-02-04 11:49:34 -06:00
Evan Kranzler
6c9fc1679d [NEO] Implemented The Long Reach of Night / Animus of Night's Reach 2022-02-04 09:16:57 -05:00
Evan Kranzler
be8fec609d [NEO] Implemented Invoke the Ancients 2022-02-04 07:50:49 -05:00
Evan Kranzler
c75431f27b [NEO] Implemented Weaver of Harmony 2022-02-03 20:07:31 -05:00
Evan Kranzler
04129c55fa [NEO] Implemented Mobilizer Mech 2022-02-03 20:07:31 -05:00
Daniel Bomar
8477260070
[NEO] Implemented Azusa's Many Journeys / Likeness of the Seeker 2022-02-03 14:04:48 -06:00
Daniel Bomar
0e23fae634
[NEO] Implemented Tribute to Horobi / Echo of Death's Wail 2022-02-03 12:57:27 -06:00
Oleg Agafonov
be114bb592 [MIC] added tokens and images support 2022-02-03 21:40:34 +04:00
Evan Kranzler
25f47bde63 refacted SourceTappedCondition to use a single enum 2022-02-02 21:35:20 -05:00
Evan Kranzler
ba05bc13c4 [NEO] Implemented Behold the Unspeakable / Vision of the Unspeakable 2022-02-02 19:59:59 -05:00
Evan Kranzler
076b08d07b [NEO] Implemented The Fall of Lord Konda / Fragment of Konda 2022-02-02 19:59:57 -05:00
Oleg Agafonov
0cb9266a15 [AFC] added tokens and images support 2022-02-02 13:13:49 +04:00
Oleg Agafonov
edd6fba06f
Merge pull request #8618 from Alex-Vasile/fix-dual-face-card-import
Added support for importing double-faced cards in the deck-editor.
2022-02-01 21:02:59 +04:00
Daniel Bomar
2a3efadad0
[NEO] Implemented Awakened Awareness 2022-02-01 10:34:06 -06:00
Evan Kranzler
b4b7a937eb [NEO] Implemented Prodigy's Prototype 2022-02-01 09:28:46 -05:00
Evan Kranzler
4409a0aa95 [NEO] Implemented Hotshot Mechanic 2022-02-01 09:21:33 -05:00
Evan Kranzler
577da37f6e [NEO] Implemented Sokenzan Smelter 2022-01-31 20:32:53 -05:00
Evan Kranzler
27ee3d1c93 [NEO] Implemented Guardians of Oboro 2022-01-31 20:10:04 -05:00
Alex W. Jackson
de3f7cbbfb Fix #6671 2022-01-31 16:55:58 -05:00
Evan Kranzler
89b5678cf4 [NEO] Implemented Life of Toshiro Umezawa / Memory of Toshiro 2022-01-31 08:35:03 -05:00
Evan Kranzler
87d74a4cf9 simplified default saga constructor 2022-01-31 08:22:43 -05:00
Alex W. Jackson
86160b7613 Text fixes 2022-01-31 01:00:38 -05:00
Alex Vasile
3a9543d847
Replaced several custom "noncreature spell" filters with the main static one available. (#8625) 2022-01-30 22:23:46 -05:00
Evan Kranzler
d030848552
Reworking "as long as you control this" effects (WIP) (#8620)
* added WhileControlled duration, removed SourceOnBattlefieldControlUnchangedCondition

* refactored effects which keep things tapped

* a few additional missed cards

* refactored cards which check for being controlled and tapped

* [NEO] Implemented Kyodai, Soul of Kamigawa
2022-01-30 22:00:10 -05:00
Alex W. Jackson
2b7a67d6e6 [M14] Remove a duplicate token 2022-01-30 19:28:48 -05:00
Evan Kranzler
a76f6fbdf8 [NEO] Implemented Naomi, Pillar of Order 2022-01-30 16:30:08 -05:00
Evan Kranzler
6a6b591549 [NEO] Implemented Sokenzan, Crucible of Defiance 2022-01-30 16:10:12 -05:00
Evan Kranzler
2f189c1dec [NEO] Implemented Banishing Slash 2022-01-30 15:32:58 -05:00
Evan Kranzler
c77459b7a0 [NEC] Implemented Chishiro, the Shattered Blade 2022-01-30 14:14:40 -05:00
Evan Kranzler
6402845e27 [NEO] Implemented Michiko's Reign of Truth / Portrait of Michiko 2022-01-30 10:09:49 -05:00
Evan Kranzler
c459578a68 [NEO] Implemented The Wandering Emperor 2022-01-29 21:38:14 -05:00
Alex Vasile
6647c36f07 Added support for importing double-faced cards in the deck-editor. 2022-01-29 19:39:11 -05:00
Evan Kranzler
5cbc93b67e [NEO] Implemented Imperial Subduer 2022-01-29 17:29:05 -05:00
Evan Kranzler
62fa79cfd8 added AttacksAloneControlledTriggeredAbility 2022-01-29 17:13:15 -05:00
Evan Kranzler
37c7573acd [NEO] Implemented Leech Gauntlet 2022-01-29 10:17:34 -05:00
Alex Vasile
d24dc008a8
Replaced several created filters inside card classes with pre-built static filters and simplified 3 cards (#8612) 2022-01-29 00:05:12 -05:00
Alex W. Jackson
140be70fb8 Improve WishEffect text and refactor ctors (if filter exists, wished for card must be revealed) 2022-01-28 23:54:32 -05:00
Alex W. Jackson
8376e7a1a3 fix FightTargetsEffect copy constructor 2022-01-28 20:04:20 -05:00
Alex W. Jackson
2941487219 Improve DiscardCardYouChooseTargetEffect and use it for many cards that were using custom effects 2022-01-28 13:43:46 -05:00
Oleg Agafonov
1b98b9fde3
Merge pull request #8608 from Alex-Vasile/znr-fix-text-issues
Znr fix text issues
2022-01-28 18:56:49 +04:00
Evan Kranzler
e09d32c325 [NEO] Implemented Greater Tanuki 2022-01-28 08:41:55 -05:00
Alex Vasile
ffa05bf9db - Fixed Khalni Ambush
- Added Effect hint for FightTargetsEffect
- Added test for FightTargetsEffect hint to VerifyCardDataTest (for #6728)
2022-01-28 00:55:23 -05:00
Evan Kranzler
b60b7525c0 [NEO] Implemented Goro-Goro, Disciple of Ryusei 2022-01-27 22:17:04 -05:00
Evan Kranzler
68edee6d32 [NEO] Implemented The Shattered States Era / Nameless Conqueror 2022-01-27 21:08:19 -05:00
Evan Kranzler
6eda309765 renamed gender class to pronoun class 2022-01-27 20:36:53 -05:00
Evan Kranzler
47bbb70675 [STX] fixed Lukka, Wayward Bonder emblem not damaging players 2022-01-27 20:13:44 -05:00
Alex Vasile
d33acc7c80
Fixed Wording on 2 cards and removed duplicate StaticFilter (#8596)
Closes #6643
2022-01-25 21:08:46 -05:00
Alex W. Jackson
26a2e0a5ed Various text fixes found while closing #6885 2022-01-24 00:40:25 -05:00
Alex W. Jackson
faf2e4ec82 Improve text generation for DamageMultiEffect 2022-01-22 11:55:20 -05:00
Alex W. Jackson
fa1051cec3 Fix #8556 2022-01-14 18:45:43 -05:00
Alex W. Jackson
d4c4b95206 [ALA] fix some card text 2022-01-13 05:42:28 -05:00
Jeff Wadsworth
1810c2c778 - Fixed #8157 2022-01-11 14:42:45 -06:00
Alex W. Jackson
13baf726e9 Fix log message for 'put into library N from top' effects 2022-01-09 00:42:14 -05:00
Jeff Wadsworth
5b70f36041 - removed debugging line 2022-01-07 10:25:48 -06:00
Jeff Wadsworth
75375f2ed5 - Fixed #8497 2022-01-07 10:24:17 -06:00
Alex W. Jackson
f1ff4dbd0e Remove an unused and functionally duplicated Filter class 2022-01-06 03:51:46 -05:00
Alex W. Jackson
6892776e28 Fix Slate Street Ruffian and Thresher Beast. Simplify various similar cards 2022-01-04 06:17:42 -05:00
Alex W. Jackson
635e70e77e Deleted two duplicate Ability classes 2022-01-02 14:54:56 -05:00
Evan Kranzler
e8bc3d01ad changed ninjutsu ability cost to mana string 2021-12-27 21:43:45 -05:00
Evan Kranzler
a6fcaab698 fixed various instances of getting source name (fixes #8531, fixes #8528) 2021-12-24 19:30:31 -05:00
Alex W. Jackson
d357f4a0b0 Add MDFC support to CardCriteria and use it for ZNR 2021-12-24 03:38:48 -05:00
Alex W. Jackson
a4ced51058 CardCriteria: fix subtype 2021-12-24 03:06:33 -05:00
Alex W. Jackson
881fdcaa08 Remove no longer needed CardCriteria workaround 2021-12-24 03:05:28 -05:00
Alex W. Jackson
3ac82adb4d Fix Nivix Cyclops and clean up some similar cards 2021-12-18 19:53:27 -05:00
Evan Kranzler
5845630af9 [NEO] Implemented Kaito Shizuki 2021-12-17 18:45:39 -05:00
Alex W. Jackson
f1390faf58 Rework Cephalid Snitch. Fixes #8520 2021-12-15 04:16:29 -05:00
Alex W. Jackson
743f9e4b3b Remove unused (but memory leaking) static field from ProtectionAbility 2021-12-14 22:33:32 -05:00
Alex W. Jackson
ed47416972 Add static filter for 'nonblack creature' 2021-12-11 15:30:15 -05:00
Alex W. Jackson
62bc6ed848 Fix Spectral Prison rules text. Add filter support to BecomesTargetAttachedTriggeredAbility 2021-12-05 02:10:21 -05:00
Daniel Bomar
fe3595c3f6
Fixed cards with multiple kicker costs not being copied correctly 2021-12-04 09:36:58 -06:00
Daniel Bomar
a8f7cfa17d
Fixed kicker costs not getting reset correctly (fixes #8495) 2021-12-03 19:10:02 -06:00
Evan Kranzler
c93af17190 updated static filter test to detect multiple errors at once 2021-12-02 09:11:08 -05:00
Evan Kranzler
2d54a2e313 [UNF] Implemented Saw in Half 2021-11-30 09:36:02 -05:00
Evan Kranzler
e3b2ac15ba added cardutil method for incrementing map values 2021-11-29 21:34:04 -05:00
Evan Kranzler
90ae244fa5 [UNF] Implemented The Space Family Goblinson 2021-11-29 21:05:33 -05:00
Oleg Agafonov
a6b2bea8af Images: added direct image links support in scryfall, added SLD's alternative images from second sides (example: Zndrsplt, Eye of Wisdom); 2021-11-28 01:17:54 +04:00
Evan Kranzler
fba68a7255 removed instances of incorrect quote characters, expanded test 2021-11-24 20:56:31 -05:00
Jeff Wadsworth
cb6498e0d7 - Fixed #8468 2021-11-19 11:52:24 -06:00
Evan Kranzler
8e3c04cac2 fixed a test failure 2021-11-17 22:31:32 -05:00
Evan Kranzler
1aa1d71a96 [VOC] Implemented Breath of the Sleepless 2021-11-17 20:55:11 -05:00
Evan Kranzler
2d14d0647d renamed a static filter 2021-11-17 08:32:38 -05:00
Evan Kranzler
dcb08be4c3 added static filter test, a few other small changes 2021-11-17 08:31:50 -05:00
Oleg Agafonov
afdae939c3 * Becomes a copy abilities: improved support with MDF cards (#8335); 2021-11-17 16:27:18 +04:00
Oleg Agafonov
35b257bd8f Fixed miss lock code in static filters; 2021-11-17 16:00:14 +04:00
Oleg Agafonov
f911a42903 Fixed outdated db version 2021-11-17 15:59:35 +04:00
Jeff Wadsworth
e989c05247 - Fixed #8455 2021-11-15 11:27:47 -06:00
Evan Kranzler
b625aa05c5 updated some fight effect text 2021-11-14 15:30:27 -05:00
Evan Kranzler
7b184a76fa a few more exile from graveyard fixes 2021-11-14 11:10:23 -05:00
Evan Kranzler
53f6bc372a [VOC] various text fixes 2021-11-13 18:58:28 -05:00
Evan Kranzler
652dd49940 updated fight effect text 2021-11-13 18:30:42 -05:00
Evan Kranzler
b286d70447 some text fixes for exile graveyards 2021-11-13 18:01:41 -05:00
Oleg Agafonov
a480e10bd8 DB: added numerical card number field for min/max query (#8383); 2021-11-14 01:27:58 +04:00
Oleg Agafonov
23bcc9dbb5 * GUI: fixed that card viewer or deck editor doesn't show transform button for some cards (#8448); 2021-11-14 00:33:37 +04:00
Evan Kranzler
9c5f63403a [VOC] Implemented Rhoda, Geist Avenger 2021-11-13 12:39:14 -05:00
Evan Kranzler
6b2fc867f4 [VOW] some more text fixes 2021-11-12 19:58:50 -05:00
Evan Kranzler
783a818cb7 [VOW] Implemented Alchemist's Gambit 2021-11-12 09:11:00 -05:00
Evan Kranzler
5260d6d363 [VOW] Implemented Curse of Hospitality 2021-11-12 08:52:57 -05:00
Evan Kranzler
38f0e83274 [VOW] various text fixes 2021-11-11 21:59:56 -05:00
Evan Kranzler
8de8a24227 [VOW] Implemented Ill-Tempered Loner / Howlpack Avenger 2021-11-11 20:04:22 -05:00
Evan Kranzler
03926f114f [VOW] Implemented Voltaic Visionary / Volt-Charged Berserker 2021-11-11 19:47:20 -05:00
Jeff Wadsworth
0600c0e7d5 - Fixed #8436 2021-11-11 16:35:15 -06:00
Daniel Bomar
24fab24440
[VOW] Implemented Jacob Hauken, Inspector / Hauken's Insight 2021-11-11 10:49:26 -06:00
Alex W. Jackson
e1a345339d Merge branch 'master' of https://github.com/magefree/mage 2021-11-11 08:49:00 -05:00
Alex W. Jackson
379550689f Refactor generation of boosters with a special uncommon/rare slot (e.g. WAR planeswalker slot) 2021-11-11 08:48:50 -05:00
Evan Kranzler
ffc3c07b41 fixed a test failure 2021-11-11 08:46:59 -05:00
Evan Kranzler
51e88b8e19 [VOW] Implemented Savior of Ollenbock 2021-11-11 08:14:39 -05:00
Evan Kranzler
ca16f363c8 refactored effects which cause other permanents to enter tapped 2021-11-11 07:51:12 -05:00
Alex W. Jackson
5287e1aa4d CardCriteria: use constants instead of strings for supertype and subtype 2021-11-11 05:50:13 -05:00
Evan Kranzler
f5141843ff [VOW] Implemented Biolume Egg / Biolume Serpent 2021-11-10 21:10:01 -05:00
Daniel Bomar
91300cebed
[VOW] Implemented Chandra, Dressed to Kill 2021-11-10 12:00:38 -06:00
Daniel Bomar
395136259f
[VOW] Implemented Cemetery Illuminator 2021-11-10 09:13:02 -06:00
Evan Kranzler
599e5c2a4f [VOW] Implemented Howlpack Piper / WIldsong Howler 2021-11-10 09:47:45 -05:00
Evan Kranzler
e30ba1b62a [VOW] Implemented Toxrill, the Corrosive 2021-11-10 08:09:57 -05:00
Alex W. Jackson
bb2546badd
Refactor rules text generation for P/T boost effects. Fixes #8421 2021-11-10 06:40:11 -05:00
Evan Kranzler
900f9d845c [VOC] Implemented Ethereal Investigator 2021-11-09 07:49:24 -05:00
Oleg Agafonov
3284cb5b24 GUI: fixed wrong card sides, data and errors for transform and double side cards; 2021-11-09 10:16:39 +04:00
Daniel Bomar
7082b86eb3
[MID] Implemented Disturb mechanic (#8201)
* [MID] Implemented Disturb mechanic

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2021-11-09 10:12:50 +04:00
Evan Kranzler
1195016399 [VOW] Implemented Kaya, Geist Hunter 2021-11-08 20:50:13 -05:00
Evan Kranzler
1656324329 [VOW] Implemented Undead Butler 2021-11-08 20:30:30 -05:00
Evan Kranzler
5dbc8f11f3 [VOW] Implemented Hiveheart Shaman 2021-11-08 20:15:55 -05:00
Daniel Bomar
902fec22dd
[VOW] Implemented Spiked Ripsaw 2021-11-08 09:58:20 -06:00
Evan Kranzler
8856d0a0ea [VOW] Implemented Edgar, Charmed Groom / Edgar Markov's Coffin 2021-11-08 08:33:14 -05:00
Evan Kranzler
10185a0999 [VOW] Implemented Screaming Swarm 2021-11-08 08:04:16 -05:00
Evan Kranzler
3801325a04 added TransformIntoSourceTriggeredAbility to simplify copied code 2021-11-07 08:31:23 -05:00
Evan Kranzler
81c7a29947 [VOW] Implemented Faithbound Judge / Sinner's Judgment 2021-11-06 21:34:31 -04:00
Evan Kranzler
1f2fa8d8dc [VOW] Implemented Gutter Skulker / Gutter Shortcut 2021-11-06 19:30:49 -04:00
Evan Kranzler
fcc1481679 [VOW] Implemented Lacerate Flesh 2021-11-06 13:57:47 -04:00
Evan Kranzler
12588ea40b [VOW] Implemented Rural Recruit 2021-11-05 20:18:36 -04:00
Evan Kranzler
ecfe08cee0 moved TransformAbility into DayboundAbility for simplicity 2021-11-05 19:59:00 -04:00
Evan Kranzler
30afb11cd2
Implementing Daybound/Nightbound mechanic (#8200)
* adding initial day/night support in game state

* remove card exclusion for testing

* added functional implementation to abilities from main branch

* functionally implemented NightCondition

* updated DayNightHint

* added support for nightbound entering transformed at night

* [MID] Implemented Unnatural Moonrise

* [MID] Implemented The Celestus

* added some docs

* changed access for state day/night methods

* added transformation to day/night switch

* re-added unfinished filter, removed day/night cards

* fixed some errors with transforming

* added hints to all day/night cards

* added transformation prevention plus a test

* added Immerwolf test

* [MID] Implemented Tovolar, Dire Overlord / Tovolar, The Midnight Scourge

* refactored some cards to not use isTransformable

* removed transformable parameter

* simplified some transform code

* fixed null pointer exception

* removed unnecessary canTransform method

* fixed a small error

* reworked implementation of rule 701.28f

* small change in transform logic

* fixed failiing test

* fixed verify failure

* small merge change

* added support for day/night switching based on spells cast

* [MID] Implemented Curse of Leeches / Leeching Lurkers

* moved day/night handling to untap step

* added tests for cards which set day and trigger from a change

* [MID] Implemented Ludevic, Necrogenius / Olag, Ludevic's Hubris

* added support for creatures transforming to match day/night when necessary

* fixed verify failures

* fixed another verify failure

* remove temporary verify skip

* added transform message

* removed unnecessary transform message

* [MID] Implemented Angelic Enforcer / Enduring Angel

* updated DayNightHint with more information

* fixed verify failure

* merge fix

* fixed Startled Awake / Persistent Nightmare / Moonmist interaction

* added another test for Moonmist

* merge fix

* merge fix

* [MID] Implemented Baneblade Scoundrel / Baneclaw Marauder

* merge fix

* [MID] various text fixes

* [MID] a few more text fixes

* Merge fix

* Improved transform game logs (hints, source), fixed day/night logs, fixed miss game param (due code style);

* fixed a test failure

* Merge fix

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-11-05 23:11:23 +04:00
Evan Kranzler
950aacd6fc [VOW] Implemented Sanguine Statuette 2021-11-05 09:31:54 -04:00
Evan Kranzler
8091538bbc [VOW] Implemented Sigardian Palading 2021-11-05 08:52:58 -04:00
Evan Kranzler
4088159bf9 [VOW] Implemented Wash Away 2021-11-04 21:56:33 -04:00
Daniel Bomar
b4f81efef8
[VOW] Implemented Manaform Hellkite 2021-11-03 16:10:34 -05:00
Evan Kranzler
6a3b768ca6 [VOW] Implemented Ancient Lumberknot 2021-11-02 19:27:30 -04:00
Evan Kranzler
ee09285d54 small reworking to PermanentsOnTheBattlefieldCondition 2021-11-02 19:00:54 -04:00
Evan Kranzler
fb38ee9b8d [VOW] Implemented Groom's Finery 2021-11-02 09:12:35 -04:00
Daniel Bomar
d0466ff6f3
[VOW] Implemented Investigator's Journal 2021-11-01 09:23:30 -05:00
Evan Kranzler
e36dac83f2 [VOW] Implemented Kessig Wolf Rider 2021-11-01 09:02:51 -04:00
Evan Kranzler
5203714d07 [VOW] Implemented Rending Flame 2021-10-31 15:22:40 -04:00
Daniel Bomar
3bac561d07
[VOW] Implemented Hallowed Haunting 2021-10-31 10:38:08 -05:00
Daniel Bomar
105e1f8ed9
[MID] Teferi, Who Slows the Sunset - Fixed targets on +1 ability (fixes #8423) 2021-10-31 08:28:58 -05:00
Evan Kranzler
492d1ce957 [VOW] Implemented Torens, Fist of the Angels 2021-10-29 22:34:59 -04:00
Daniel Bomar
af290a4771
[VOW] Implemented Grolnok, the Omnivore 2021-10-29 21:24:12 -05:00
Alex W. Jackson
91176a19dd ObjectColor objects are mutable, so let's not assign the 'constant' ones to variables 2021-10-29 13:56:48 -04:00