1
0
Fork 0
mirror of https://github.com/correl/mage.git synced 2025-01-26 19:31:10 +00:00
Commit graph

3259 commits

Author SHA1 Message Date
Evan Kranzler
495fc57540 [NEO] Implemented Reconfigure abliity 2022-02-06 12:27:12 -05:00
Evan Kranzler
d030848552
Reworking "as long as you control this" effects (WIP) ()
* 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
Oleg Agafonov
a5eb025155 * Sneak Attack - fixed that it doesn't give haste to MDF cards (); 2021-11-23 00:55:24 +04:00
Oleg Agafonov
524f46e7e5 * Uba Mask - fixed that it doesn't work with MDF cards (); 2021-11-17 19:23:16 +04:00
Oleg Agafonov
afdae939c3 * Becomes a copy abilities: improved support with MDF cards (); 2021-11-17 16:27:18 +04:00
Evan Kranzler
4a99b7689f fixed a test failure 2021-11-14 10:52:08 -05:00
Alex W. Jackson
bb2546badd
Refactor rules text generation for P/T boost effects. Fixes 2021-11-10 06:40:11 -05:00
Oleg Agafonov
3515647c7b [MID] Tests: added test for disturb ability; 2021-11-09 10:14:50 +04:00
Evan Kranzler
30afb11cd2
Implementing Daybound/Nightbound mechanic ()
* 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
5203714d07 [VOW] Implemented Rending Flame 2021-10-31 15:22:40 -04:00
Daniel Bomar
83d37a7f35
Fixed Yixlid Jailer interaction with cards moving to graveyard ()
* Fixed Yixlid Jailer interaction with cards moving to graveyard (fixes )

* Yixlid Jailer - Revert previous workaround and add rules modifying effect
2021-10-24 02:57:02 -05:00
Daniel Bomar
b63623b40f
[AFC] Fixed Belt of Giant Strength cost reduction (fixes ) 2021-10-23 15:40:58 -05:00
Daniel Bomar
060ea7da83
Add sub abilities in TokenImpl.addAbility and PermanentImpl.addAbility (fixes ) 2021-10-22 17:32:51 -05:00
Daniel Bomar
27d4fb13c3
Fixed combat information not being preserved in LKI and added unit test 2021-10-21 20:24:51 -05:00
Daniel Bomar
c89fba48ca
Add unit test for Ward ability 2021-10-18 19:09:08 -05:00
Alex W. Jackson
7926193e34
Refactor ExpansionSet and its subclasses ()
* Don't purge cards-by-rarity cache between tournaments

* Move DOM and WAR specific checks out of base ExpansionSet class

* Move Battlebond specific methods out of base ExpansionSet class

* Refactor ExpansionSet and subclasses

* Zendikar boosters also only have full-art basic lands

* Fix Eldritch Moon ()
2021-10-13 11:47:23 -04:00
Jeff Wadsworth
4f1c91ecb1 - removed some text from test 2021-10-04 09:45:25 -05:00
Jeff Wadsworth
fa18679ce8 - added test for Gisa, Glorious Resurrector 2021-10-04 09:43:32 -05:00
Oleg Agafonov
58ab020065 Dev: pom clean up, improved parent/child structure; 2021-10-03 18:11:56 +04:00
Oleg Agafonov
08407eef25 Dev: migrated to single logger lib (replaced slf4j usage by log4j), clean up and documented pom files, updated some libs; 2021-10-02 11:09:09 +04:00
Oleg Agafonov
074f26d199
Merge pull request from magefree/dependabot/maven/com.sun.xml.bind-jaxb-impl-3.0.2
Bump jaxb-impl from 2.3.3 to 3.0.2
2021-10-01 22:22:45 +04:00
Oleg Agafonov
301539d75b Server improves:
* Server: improved messages on register/reset dialogs;
* Tests: added database compatible tests on new code or libs (auth db);
2021-10-01 21:52:09 +04:00
Oleg Agafonov
1c6eb10bd1 Dev: migrated to single json lib (removed json-simple from deck import code), clean up guava lib usage in cards; 2021-10-01 17:57:54 +04:00
Oleg Agafonov
fa70af6131 Dev: removed test data from resources to data folder; 2021-10-01 14:10:39 +04:00
dependabot[bot]
4e6de42e71
Bump jaxb-impl from 2.3.3 to 3.0.2
Bumps jaxb-impl from 2.3.3 to 3.0.2.

---
updated-dependencies:
- dependency-name: com.sun.xml.bind:jaxb-impl
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-01 09:43:33 +00:00
Oleg Agafonov
c899c332b8 Dev: updated json lib, added tests; 2021-10-01 13:41:54 +04:00
Evan Kranzler
1b36053b17 [AFC] added passing and failing tests for Belt of Giant Strength () 2021-09-30 20:46:03 -04:00
Oleg Agafonov
f9beed6a89 Dev: clear pom files, fixed wrong test packages and scope, added zip tests; 2021-09-29 16:01:36 +04:00
Oleg Agafonov
0e1abaec5d Dauthi Voidwalker - fixed that it doesn't work with cards (related to a3ca9fc03a); 2021-09-27 23:29:41 +04:00
Oleg Agafonov
42325c7c2e AI improves:
* AI: fixed that AI was able to targeting an invalid player targets in some use cases ();
* AI: fixed that AI was able to ignore targeted triggers in some use cases;
* AI: improved player targeting for not own chooses (if it's make a choice for another player);
2021-09-26 18:40:26 +04:00
jeff@delmarus.com
de378577a6 - Added test for 2021-09-25 09:22:47 -05:00
Oleg Agafonov
95b782d519 Tests for 2021-09-25 18:09:21 +04:00
Jeff Wadsworth
c6e385e321 - Added test for 2021-09-24 09:51:31 -05:00
Evan Kranzler
3a3e3fda48 various files converted from CRLF to LF 2021-09-23 19:37:47 -04:00
Evan Kranzler
4ab41a5b12 [MID] updated Teferi, Who Slows the Sunset emblem 2021-09-22 09:39:21 -04:00
Oleg Agafonov
d35e1fbfb1 * Play card without mana - fixed that some cards did not allow to choose a casting spell from split/mdfc cards (); 2021-09-21 15:30:40 +04:00
Oleg Agafonov
6bc5a00e8a * Alternative costs - fixed that it can be activated on free cast (example: cascade with overload, , , , ); 2021-09-21 14:22:46 +04:00
Oleg Agafonov
c49ca90b84 Tests: execute time stats in logs are disabled by default; 2021-09-21 12:14:22 +04:00
Oleg Agafonov
46081d9185 GUI related improves:
* GUI: fixed that choose triggers/piles dialog doesn't close correctly before cast mode choose ();
* GUI: fixed that some choose dialogs doesn't update battlefield state (example: choose amount, choose mana);
* Game: fixed duplicated json logs at the game's end;
2021-09-20 02:17:22 +04:00
Oleg Agafonov
a3ca9fc03a Dauthi Voidwalker - correct code for and same cards (see comments in fd719ad287); 2021-09-19 04:01:01 +04:00
Oleg Agafonov
2cf005f971 Tests: improved performance in game tests; 2021-09-18 22:10:55 +04:00
Oleg Agafonov
f107c1e4db Tests: improved performance in game tests; 2021-09-18 00:24:10 +04:00
Oleg Agafonov
021a2d251c Improves in some effects:
* ConditionalAsThoughEffect - improved support with target effects (see comments from e6e802033b);
* TargetCardInLibrary - added additional checks on wrong usage (must be used inside effects only, not as ability's target);
* PlayFromNotOwnHandZone - fixed wrong playable mark on battlefield's permanents (AI related too);
2021-09-17 21:21:37 +04:00
Phred
2b2f30a88a
corrected typo: prefered -> preferred
ag -l prefered | xargs sed -i 's/refered/referred/g'
2021-09-11 10:03:10 -05:00
Oleg Agafonov
83017e3c51 Devs: added docs and todo about short living LKI, LKI and current problems; 2021-09-05 18:49:44 +04:00
Oleg Agafonov
bf67c4c6b4 * Tap any number of untapped creatures - added card hint, improved targeting, fixed cheating (example: Harmony Of Nature); 2021-09-05 13:02:16 +04:00
Oleg Agafonov
5f70b92278
Merge pull request from magefree/dependabot/maven/org.glassfish.jaxb-jaxb-runtime-3.0.2
Bump jaxb-runtime from 2.3.3 to 3.0.2
2021-09-05 01:41:57 +04:00
Oleg Agafonov
7ff6e73a19
Merge pull request from awjackson/csp_booster_fix
Fix Coldsnap booster generation
2021-09-05 01:34:46 +04:00
Oleg Agafonov
473a81e13c * Mana pay to cast - fixed random values in games with AI (example: Marath, Will of the Wild, see ); 2021-09-04 20:34:32 +04:00
Oleg Agafonov
3a8e04f2bc * Mana pay to cast - fixed wrong mana calc for commanders (example: Marath, Will of the Wild, see ); 2021-09-04 19:24:35 +04:00
Oleg Agafonov
b56aef9341 * Emergent Sequence - fixed that it doesn't put counters if no land play before (); 2021-09-04 18:45:32 +04:00
Oleg Agafonov
421cac0ce3 * AI: fixed that computer can broke some non mana pays (Echo, Escalate, Recover, Tap source unless pay, Slow Motion, ); 2021-09-03 02:11:21 +04:00
Oleg Agafonov
4d0761fa27 AI: added support of TargetCard targeting in hand, graveyard, exile zones. Added additional checks for tests. 2021-09-03 00:26:39 +04:00
Evan Kranzler
d0b35c7572 fixed a test failure but for real this time 2021-09-01 07:18:17 -04:00
Evan Kranzler
d241ae99bb fixed a test failure 2021-08-31 21:27:57 -04:00
Alex W. Jackson
37df2436a8 Coldsnap boosters don't have a land slot; snow basic lands are regular commons 2021-08-30 20:33:30 -04:00
Oleg Agafonov
2158d682cc Prepare new release 2021-08-30 14:44:03 +04:00
Raphael-Schulz
f03a410b9e
[AFR] Implemented Xanathar, Guild Kingpin ()
* [AFR] Implemented Xanathar, Guild Kingpin

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-08-28 23:55:41 +04:00
Oleg Agafonov
91d577b0af Test framework: fixed that ai play step command doesn't work correctly on declare attackers and blockers steps; 2021-08-27 21:43:44 +04:00
Oleg Agafonov
d481172eb4 Code: added test coverage reports by JaCoCo lib (generate by command like "mvn install -Djacoco.skip=false");
Code: added test coverage support for Sonar reports;
2021-08-27 20:51:42 +04:00
Evan Kranzler
f8d030bef4
Adding dice rolling trigger/replacement (ready for review) ()
* [AFR] Implemented DiceRolledTriggeredAbility
* [AFR] Implemented Brazen Dwarf
* [AFR] Implemented Feywild Trickster
* [AFC] Implemented Reckless Endeavor
* [AFR] Implemented Pixie Guide
* [AFR] Implemented Critical Hit
* [AFR] Implemented Netherese Puzzle Ward
* [AFC] Implemented Neverwinter Hydra
* [AFR] Implemented Farideh, Devil's Chosen
* [AFR] Implemented Barbarian Class
* [AFC] Implemented Vrondiss, Rage of Ancients
* [AFC] Implemented Arcane Endeavor
* Test framework: added planar die rolls support
* Test framework: added random results set up support in AI simulated games;
* AI: improved roll die results chooses in computer games;
* Roll die: improved combo support for planar die and roll die effects;

Co-authored-by: Daniel Bomar <dbdaniel42@gmail.com>
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-08-26 14:06:10 +04:00
Evan Kranzler
3dff1783ac [TSP] fixed Gauntlet of Power adding mana to the wrong mana pool (fixes ) 2021-08-24 08:24:08 -04:00
Evan Kranzler
8fe0467893 reworked mana text generation to fit canonical symbol order 2021-08-23 18:32:21 -04:00
Ingmar Goudt
e10da89463 test for 2021-08-22 14:35:17 +02:00
Ingmar Goudt
271f7b812f fix ,
the sacrifice target cost was optional, but SacrificeCost.canPay first checks if there are valid targets. In this scenario there were none, but the spell should still be playable
2021-08-22 12:01:10 +02:00
Oleg Agafonov
7dcdc12c0f * Target permanent or suspended card - added AI support, fixed rollback errors in AI games (example: Shivan Sand-Mage, see ); 2021-08-21 17:19:45 +04:00
Oleg Agafonov
e9c68d2a5c Test framework improves (related to ):
* added real time command to check card's counters (example: suspended cards with Time counters, see checkCardCounters);
* added target type support: TargetPermanentOrSuspendedCard;
* improves error logs for miss modes and unsupported target types;
2021-08-21 15:02:42 +04:00
Oleg Agafonov
9fa487e60a * Suspend ability - fixed that suspend can be activated from opponent's hand; 2021-08-20 15:40:42 +04:00
Oleg Agafonov
fb4065ba66 Little fixes 2021-08-20 09:38:16 +04:00
Oleg Agafonov
b9db36eb22 Tests: improved performance 2021-08-13 09:17:33 +04:00
Oleg Agafonov
49308bcd4f * Performance: optimized cards database to increase tests and boosters generation; 2021-08-12 23:59:08 +04:00
Oleg Agafonov
a6a02b369f Tests: added test for Intet, the Dreamer and split cards; 2021-08-12 14:16:29 +04:00
Oleg Agafonov
9f882824a0 * Gain ability effect: fixed rollback error with AI games and too many cards (related to d202278ccd); 2021-08-12 00:08:08 +04:00
dependabot[bot]
60bd3caaef
Bump jaxb-runtime from 2.3.3 to 3.0.2
Bumps jaxb-runtime from 2.3.3 to 3.0.2.

---
updated-dependencies:
- dependency-name: org.glassfish.jaxb:jaxb-runtime
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-09 11:01:20 +00:00
Evan Kranzler
b9c55a984d [MH2] added collation info 2021-08-07 20:40:46 -04:00
Evan Kranzler
bcd000ac99 [J21] Implemented Boneyard Aberration 2021-08-06 21:05:20 -04:00
Evan Kranzler
b45514ecfb [J21] Implemented Wingsteed Trainer 2021-08-06 17:35:43 -04:00
Evan Kranzler
9ba9243db5 added test for seek mechanic 2021-08-06 17:35:43 -04:00
Ingmar Goudt
3a6cdd2615 test for 2021-08-06 23:26:24 +02:00
Evan Kranzler
f5687acfad [J21] Implemented Faceless Agent 2021-08-06 08:52:31 -04:00
Oleg Agafonov
53aababd44 * Additional costs - added support of X costs on free cast (example: Kicker X, see Thieving Skydiver and Etali, Primal Storm combo);
* As an additional cost discard X cards - fixed wrong text (example: Channeled Force, Firestorm);
2021-08-05 16:18:04 +04:00
Oleg Agafonov
d62cf17422 * Twinning Glass - removed unnecessary confirm dialog, added additional tests (); 2021-08-05 15:37:07 +04:00
Oleg Agafonov
7a3521b02b Tests: added serialization test for all cards (run manually); 2021-08-04 22:40:24 +04:00
Oleg Agafonov
a5b41ea920 * Marshland Bloodcaster - fixed game freeze on usage;
* Kentaro, the Smiling Cat - fixed game freeze on usage;
2021-08-02 17:40:35 +04:00
jeffwadsworth
237e8344b3 - added test for Kardur, Doomscourge and Kithkin Mourncaller. it was quite useful find another issue that was fixed. removed sim() check from Abandoned Sarcophagus. 2021-07-31 21:27:58 -05:00
Oleg Agafonov
810e1babd5 Tests: added booster stats collection script (see ); 2021-07-31 19:13:00 +04:00
Evan Kranzler
1baf523522 add boolean int method for setChoice 2021-07-31 08:11:57 -04:00
Oleg Agafonov
530cd627cc * Copy spell - improved support for some cards and abilities (); 2021-07-31 15:48:57 +04:00
Oleg Agafonov
6e0184a38d Real fix for 4125d1eb46, updated outdated comments. 2021-07-31 09:47:29 +04:00
Evan Kranzler
0136b986e4 added tests for mana from copied spells, currently fails for scepter plus drain (related to ) 2021-07-30 22:04:15 -04:00
Evan Kranzler
4125d1eb46 fixed tapped for mana events not working for sacrificed tokens 2021-07-30 21:54:00 -04:00
Oleg Agafonov
dc09f279ed Fixed NPE error in card icons 2021-07-29 12:27:23 +04:00
Evan Kranzler
70b040473b updated ManaSpentToCastCount, added tests 2021-07-27 20:53:43 -04:00
Oleg Agafonov
c4dc83dec9 [AFR] fixed Bruenor Battlehammer - correct tests, getPlayable support, additional info in choose pay dialog; 2021-07-27 18:30:24 +04:00
Evan Kranzler
806eba9691 [AFR] fixed Bruenor Battlehammer (fixes ) 2021-07-27 09:59:57 -04:00
Evan Kranzler
960146d554 added boolean set choice 2021-07-27 08:58:27 -04:00
Ingmar Goudt
65211b62fe Fix Extraplanar Lens, solve issue 2021-07-27 00:08:48 +02:00
Oleg Agafonov
c6a3d5e588 Prepare new release 2021-07-25 01:15:33 +04:00
Oleg Agafonov
24847c1fa7 Tests: added name test for +2 mace; 2021-07-24 15:50:18 +04:00
Evan Kranzler
214b688fdb
Update effects and abilities which involve tapping permanents for mana ()
Abilities which use trigger from or replace tapping for mana now save the permanent in case it leaves the battlefield.
fixes , fixes 
* Merge fix and additional comments, Winter's Night fixed

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-07-22 05:09:07 +04:00
Oleg Agafonov
e330ed6c7b Test framework: improves logs in choices errors; 2021-07-21 20:15:47 +04:00
Oleg Agafonov
7ccb390e4d * GUI: added card icon for announced X value (activate ability); 2021-07-19 14:25:51 +04:00
Oleg Agafonov
76082e1d7a * GUI: added card icon for announced X value (card cast); 2021-07-19 13:40:21 +04:00
Oleg Agafonov
fc0ff6c22d Test framework: added support to test client side data in unit tests (getGameView -> CardView, etc); 2021-07-19 13:07:09 +04:00
Oleg Agafonov
f2ba76ca75 Tests: fixed miss commands, fixed debug info for permanents on battlefield; 2021-07-17 19:43:05 +04:00
jeffwadsworth
29a4fbc27a - Added another complex layer test to LayerTests unit test 2021-07-16 16:46:42 -05:00
jeffwadsworth
d2f2578cc4 - Added test unit for Ranar the Ever-Watchful 2021-07-15 16:15:58 -05:00
Evan Kranzler
b316a32ab7 [AFR] Implemented The Tarrasque 2021-07-14 17:45:58 -04:00
Daniel Bomar
29d3f96340
[MH2] Implemented Carth the Lion ()
* [MH2] Implemented Carth the Lion

* [MH2] Carth the Lion - Fixed loyalty cost modification

* Fix copy constructor and add getters/setters

* Call sourceObject.adjustCosts before checking cost modifications

* Add unit test

* Added additional comments, checks and tests;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-07-15 00:12:25 +04:00
Evan Kranzler
5b88484cb6
[AFR] Implementing Class enchantments (ready for review) ()
* [AFR] Implemented Druid Class

* [AFR] Implemented Wizard Class

* [AFR] Implemented Cleric Class

* [AFR] Implemented Fighter Class

* reworked class ability implementation

* fixed an error with setting class level

* small reworking of class triggers

* added class level hint

* added tests

* small change

* added common class for reminder text
2021-07-14 09:17:07 -04:00
Evan Kranzler
572104b8fc
Reworking card types in preparation for implementing Grist, the Hunger Tide ()
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-07-09 07:28:43 +04:00
Evan Kranzler
e9482376f1 fixed text failures 2021-07-08 08:27:28 -04:00
Oleg Agafonov
07ddad6e48 Game: fixed rare bugs in some cards after rollback or cancel actions:
* Cumulative upkeep cost - fixed that it can lost payed state (cards: Aboroth, Karplusan Minotaur, Psychic Vortex, Sheltering Ancient);
 * Effects - fixed that it can lost selected targets or other settings (cards: Citadel of Pain, Crimson Honor Guard, Curfew, Leveler, Mana Cache, Monsoon, Paradigm Shift, Saprazzan Bailiff);
 * Exile all cards from graveyard ability - fixed that it can lost targets (example: Agent of Erebos);
 * Melee ability - fixed that it can lost targets (example: Adriana, Captain of the Guard).
2021-07-07 16:51:53 +04:00
Evan Kranzler
b4355b8f6e
Added treasure mana check ()
* add treasure mana support to mana code

* [AFR] Implemented Hired Hexblade

* [AFR] Implemented Jaded Sell-Sword

* [AFR] Implemented Forsword Paladin

* added test

* fixed test failure

* another test fix

* completely reworked tracking mana sources
2021-07-06 19:43:32 -04:00
Oleg Agafonov
bb4f36fddf Game: fixed mulligan's copy code (can potentially fix empty hands or loses on game start in rare use cases, e.g. with AI); 2021-07-06 13:58:04 +04:00
Oleg Agafonov
b929b28e43 * AI: fixed game freezes with Karn Liberated in the game (); 2021-07-02 15:03:06 +04:00
Evan Kranzler
6046c4e0d7 [AFR] Implemented Hama Pashar, Ruin Seeker 2021-07-01 18:17:03 -04:00
Oleg Agafonov
62d6675be6 AI: fixed that computer can't play commanders (); 2021-07-01 18:21:15 +04:00
Evan Kranzler
a76d6e8c24 [ARB] fixed Sen Triplets (fixes , fixes ) 2021-06-30 22:16:00 -04:00
Evan Kranzler
bb591dd038
[AFR] Implementing dungeon mechanic (ready for review) ()
* added dungeon and dungeon room class

* [AFR] Implemented Tomb of Annihilation

* [AFR] Implemented Shortcut Seeker

* [AFR] Implemented Gloom Stalker

* [AFR] Implemented Nadaar, Selfless Paladin

* added room triggers

* added more venturing code, currently untested

* fixed error

* moved venture into dungeon from player class to game class

* removed unnecessary sourceobject from dungeon

* fixed npe error

* added dungeon completion

* fixed concurrent modification exception

* added logging

* added proper copy methods

* added views

* updated room text generation

* added some missing code

* finished implementing CompletedDungeonCondition

* [AFR] Implemented Ellywick Tumblestrum

* [AFR] Implemented Lost Mine of Phandelver

* added choice dialog for dungeons

* [AFR] Implemented Dungeon of the Mad Mage

* small text fix

* added initial dungeon test

* [AFR] Implemented Cloister Gargoyle

* [AFR] Implemented Dungeon Crawler

* small text change for dungeon rooms

* added more tests

* some simplification to dungeon props

* updated testing helper functions

* added currently failing test for venturing on separate steps and turns

* added tests for dungeon completion

* fixed missing trigger visual and dungeons not persisting through turns

* some text updates

* added rollback test

* added a test for multiple dungeons at once

* added one more condition test
2021-06-29 06:57:43 -04:00
Evan Kranzler
f27f59603c [M21] fixed Hooded Blightfang triggered ability (fixes ) 2021-06-24 08:33:40 -04:00
Oleg Agafonov
9a4489b47f * Cast an instant or sorcery spell this turn - fixed rollback error when you cast graveyard spell as first in turn (); 2021-06-23 05:05:51 +04:00
Evan Kranzler
91eb324847 updated ManaSpentToCastWatcher to default watcher list, reworked it to be game scope 2021-06-21 20:26:39 -04:00
Evan Kranzler
157de01445 fixed a test failure 2021-06-18 20:04:50 -04:00
Evan Kranzler
6ca7b06ab9 some reworking of sagas, added tests 2021-06-18 18:27:37 -04:00
Evan Kranzler
7c9b8e5a29 [MH2] added booster generation test 2021-06-17 09:37:59 -04:00
Evan Kranzler
ee0f35a2cd [MH2] fixed Chatterfang, Squirrel General applying to opponent's tokens (fixes ) 2021-06-14 08:13:48 -04:00
Evan Kranzler
67a5ca5f89 added tests for sagas 2021-06-13 21:38:54 -04:00
Evan Kranzler
a7e57b8352 fixed test failures 2021-06-10 20:48:31 -04:00
Evan Kranzler
7d07c220b0 fixed while on stack effects of copied spells not discarding when copy has left stack 2021-06-10 18:42:47 -04:00
Evan Kranzler
c8154bf018 [MH2] added test for Garth One-Eye 2021-06-10 18:40:56 -04:00
Evan Kranzler
4232b1e789 [MH2] Implemented Zabaz, the Glimmerwasp 2021-06-07 09:42:34 -04:00
Daniel Bomar
df5bf2fa25
[MH2] Implemented Sanctifier en-Vec ()
* [MH2] Implemented Sanctifier en-Vec

* [MH2] Sanctifier en-Vec - Remove unused filter
2021-06-06 18:38:48 -04:00
Evan Kranzler
4fee736a1f [MH2] reworked Academy Manufactor to match ruling 2021-06-04 21:05:36 -04:00
Daniel Bomar
71ea4a51d6
[MH2] Implemented Academy Manufactor ()
* [MH2] Implemented Academy Manufactor

* [MH2] Implemented Chatterfang, Squirrel General
2021-06-02 21:46:51 -04:00
Oleg Agafonov
6ede79aa1f Tests: added additional test for modern format validation (related to 8d0efaabc9) 2021-05-15 20:34:08 +04:00
Oleg Agafonov
fc219f29a4 Tests: fixed Counterspell in modern format test (related to 8d0efaabc9) 2021-05-15 20:18:13 +04:00
Ingmar Goudt
895430b554 remove the SimpleTriggeredAbility class and rewrite old cards using it 2021-05-13 21:48:58 +02:00
Ingmar Goudt
6eef8f9e0c add assertions for winning and losing the game 2021-05-13 13:19:08 +02:00
Ingmar Goudt
3fc28b3c03 add afr tests 2021-05-12 23:52:23 +02:00
Evan Kranzler
d1f51cae2f [ZNR] fixed Ashaya, Soul of the Wild and Volrath's Shapeshifter interaction (fixes ) 2021-05-12 09:41:06 -04:00
Evan Kranzler
f68ed68034 [ZNR] added currently failing test for Ashaya, Soul of the Wild and Volrath's Shapeshifter () 2021-05-12 09:13:05 -04:00
Evan Kranzler
59f02ad17a [KHM] added test for Crippling Fear () 2021-05-11 09:03:35 -04:00
Evan Kranzler
8d0efaabc9 ignored now failing test (not sure what to replace it with) 2021-05-07 08:45:20 -04:00
Evan Kranzler
7915e74208 [ICE] fixed Zur's Weirding not allowing players to choose not to pay life (fixes ) 2021-05-04 09:31:18 -04:00
Evan Kranzler
970427e23f [ULG] reworked Goblin Welder and added currently failing test () 2021-05-04 07:35:53 -04:00
Evan Kranzler
0eb539e016 [PLC] fixed Wild Pair and 0 toughness creatures (fixes ) 2021-05-03 09:26:39 -04:00
Evan Kranzler
77d792bbaf fixed a test failure 2021-04-30 08:32:26 -04:00
Ingmar Goudt
251e141b50 test for issue 2021-04-26 22:49:48 +02:00
Evan Kranzler
d6c3ef33f0 [STX] added booster collation 2021-04-25 22:19:00 -04:00
Ingmar Goudt
45a50d9707 Add Deicide Test 2021-04-26 01:01:50 +02:00
Ingmar Goudt
25ad3705ff add RiteOfPassageTest for 2021-04-26 00:15:16 +02:00
Evan Kranzler
e56264ff74 fixed test failures 2021-04-22 20:45:25 -04:00
Evan Kranzler
054af6afde fixed a test failure 2021-04-21 09:34:45 -04:00
Evan Kranzler
fbbdb2431d moved a misplaced test 2021-04-19 09:33:56 -04:00
Evan Kranzler
e0aad69fe0 fix failing test 2021-04-18 18:44:00 -04:00
Evan Kranzler
40a374b407 un-reverted change, fixed test failure 2021-04-18 08:12:32 -04:00
Evan Kranzler
eda562fcda fixed a test failure 2021-04-18 07:47:42 -04:00
Evan Kranzler
a61d5543fa replaced all instances of converted mana cost with mana value 2021-04-17 17:02:27 -04:00
Evan Kranzler
af0178962d [STX] fixed Plumb the Forbidden ability not triggering (fixes ) 2021-04-17 12:44:49 -04:00
Daniel Bomar
600cac6fc7
[READY FOR REVIEW] Implement a "multi-amount" dialog ()
* Implemented chooseTargetAmount and new GUI dialog (distribute damage, distribute mana)
* Added tests and AI support;
* Test framework: added aliases support in TargetAmount dialogs;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-04-17 14:28:01 +04:00
Evan Kranzler
29f7555ac3 [STX] fixed Star Pupil not adding counters (fixes ) 2021-04-15 09:45:12 -04:00
Evan Kranzler
e4c7b5da53 [STX] Implemented Radiant Scrollwielder 2021-04-13 17:58:47 -04:00
htrajan
10cd439955
[STX] add more cards ()
* implement AcademicProbation
* implement AugmenterPugilist // EchoingEquation
* Implement BalefulMastery
* implement BasicConjuration
* implement ClosingStatement
* Test framework: added custom effect to return card from any zone to hand;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-04-09 17:56:34 +04:00
Evan Kranzler
734bd6f118 fixed Blatant Thievery test failure 2021-04-04 13:19:15 -04:00
Evan Kranzler
8f37428518 [ELD] fixed issues with Robber of the Rich 2021-03-30 17:48:46 -04:00
Evan Kranzler
97af948932 simplified and condensed various effects which discard variable amounts of cards 2021-03-29 21:35:27 -04:00
Evan Kranzler
d54e1c6eac [DTK] updated implementation of spells which reveal dragon cards as a cost 2021-03-23 19:44:45 -04:00
Oleg Agafonov
8a06be7e28 Merge fix 2021-03-20 18:40:22 +04:00
Evan Kranzler
1cbbcddcc6
Improving implementation of cards which use voting (WIP) ()
* created interface for handling voting

* created class for two choice votes, refactored a card to use it

* refactored all cards which use two choice votes

* updated VoteHandler to an abstract class to encapsulate more of its functions

* refactored cards which vote for more than two things

* [CNS] Implemented Brago's Representative

* [CN2] Implemented Ballot Broker

* [CN2] Implemented Illusion of Choice

* [CNS] Implemented Grudge Keeper

* added vote outcomes

* updated implementation of Illusion of Choice to work correctly in multiples

* added test for voting

* updated implementation of extra votes

* simplified vote message handling

* Improved names, additional comments

* Votes: fixed not working getMostVoted

* Votes: added final vote results to game logs;

* Votes: added additional info for the vote choices;

* Votes: added vote step info in choose dialogs, added AI support example for Tyrant's Choice;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-03-20 18:32:54 +04:00
Evan Kranzler
991f154cd7 [IKO] small nonfunctional change to Zirda, the Dawnwaker test 2021-03-15 10:17:04 -04:00
Evan Kranzler
5e2738aab9 [IKO] fixed issue with Zirda, the Dawnwaker static ability not working when reanimated 2021-03-14 18:49:32 -04:00
Evan Kranzler
d4792e3665 reworked/simplified/consolidated effects which exchange life totals, added test (fixes ) 2021-03-14 15:56:48 -04:00
Evan Kranzler
13ac8f2c01 [IKO] added test for Zirda, the Dawnwaker 2021-03-14 11:40:08 -04:00
Evan Kranzler
9c56a98dc9
Refactor implementation of spell copies for cards like Twinning Staff as well as refactor handling of target changing (WIP) ()
* refactored createCopyOnStack to be void

* added new interface for modifying copied spellsspells

* update implementation of Fork to use new applier

* reworked epic effect

* add applier to spell copy code

* updated implementation of Beamsplitter Mage

* updated cards which copy for each possible target

* added support for additional copies having targets changed

* fixed/ignored failing tests

* updated target changing to prevent unnecessary choosing

* added test for Twinning Staff

* updated implementation of spell copy applier

* added new method for choosing order of copies on stack

* fixed test failures

* [TSR] various text fixes

* fixed a test failure

* [SLD] fixed Rick, Steadfast Leader only counting Human creatures

* updated test framework to handle skips without affecting starting player choice

* fixed another test failure

* updated copy messaging for consistency

* added copy messaging to stack abilities
2021-03-12 12:47:49 -05:00
Oleg Agafonov
53a2021a12 * Caller of the Hunt - fixed rollback error on usage, added AI support for the card; 2021-03-07 23:41:52 +04:00
Oleg Agafonov
2906f86324 Test framework: simplified AI logic and tests, added usage comments. Devs recommendations:
* in card's code use player.isComputer instead player.isHuman (it help to split Human/AI logic and test both by unit tests);
* usage example: AI hint to skip or auto-calculate choices instead call of real choose dialogs;
* unit tests for Human logic: call normal commands;
* unit tests for AI logic: call aiXXX commands;
2021-03-07 23:38:10 +04:00
Oleg Agafonov
0e916b6e29 Dev: added additional info to some classes for easy debug; 2021-03-07 17:16:54 +04:00
Oleg Agafonov
b36f915d74 * Copy spell - improved support, now all copied spells are independent (bug example: Seasons Past fizzled after copy resolve, see , 10f8022043); 2021-03-06 19:32:17 +04:00
Evan Kranzler
425c1eda26 [TSR] added set 2021-03-05 18:17:01 -05:00
Oleg Agafonov
712cf4576d * Gain abilities - fixed that objects can get only one instance of triggered ability instead multiple (example: 2+ cascades from copies of Imoti, Celebrant of Bounty, f52753ad61); 2021-03-05 16:22:46 +04:00
Oleg Agafonov
4e79c83784 Test framework: fixed missing range info for added cards (some ETB effects were broken on "put to battlefield" command usage); 2021-03-05 15:12:47 +04:00
Evan Kranzler
28c0bd55e8 added test for Muraganda Petroglyphs/Tarmogoyf/Muraganda Petroglyphs 2021-03-03 09:06:39 -05:00
Evan Kranzler
3b5147f6ee updated some methods to support collections of card subclasses 2021-03-02 09:41:39 -05:00
Oleg Agafonov
098796f86e * Commander: fixed that non hand abilities are castable from command zone (example: Escape, Jumpstart, see ); 2021-03-01 01:14:00 +04:00
Evan Kranzler
6091c7eae3 fixed trample and deathtouch not working when deathtouch is gained by an outside source (fixes ) 2021-02-28 09:34:09 -05:00
Evan Kranzler
2daf1945e7 [RTR] reworked Nivmagus Elemental and added test 2021-02-27 15:35:04 -05:00
Oleg Agafonov
9d72dad674 [ZNE] added images download 2021-02-27 22:16:19 +04:00
Oleg Agafonov
0d885af05e Tests: fixed random fails; 2021-02-27 20:36:06 +04:00
Oleg Agafonov
dda69cd009 * AI: improved support of "as though mana" abilities (now computer can choose correct mana ability to pay, example: Draugr Necromancer);
* Dev: added card's LKI support of multi part cards (mdf/split/adventure);
* Dev: improved support of adding/removing counters from mdf cards;
* Draugr Necromancer - fixed support of mdf/split/adventure cards ();
2021-02-27 20:14:12 +04:00
Daniel Bomar
73f594583f
[KHM] Fixed Draugr Necromancer being unable to cast Adventures 2021-02-26 16:10:46 -06:00
Daniel Bomar
27c0f75302
Fixed Archfiend's Vessel not moving to exile (fixes ) 2021-02-25 16:39:20 -06:00
Evan Kranzler
c01e1cd133 [LEA] added test for Forcefield 2021-02-24 20:55:22 -05:00
Evan Kranzler
f5f7638216 [KHM] updated Draugr Necromancer, added test () 2021-02-23 19:11:21 -05:00
Evan Kranzler
bac2585d83 [KHM] fixed Draugr Necromancer not allowing snow mana to be used for exiled cards 2021-02-23 13:47:23 -05:00
Evan Kranzler
683d5e7c25 [KHM] added new test for Maskwood Nexus 2021-02-23 12:25:08 -05:00
Evan Kranzler
0a68507ef0 reenabled/removed/fixed some ignored tests 2021-02-23 10:37:17 -05:00
Evan Kranzler
2ffa719278 fixed issue with Kruphix, God of Horizons and Horizon Stone causing endless replacement effect loop 2021-02-23 08:41:54 -05:00
Evan Kranzler
5390963d38
Fix handling of damage to permanents (WIP) ()
* initial refactor of damage events

* cleaned up some instances of classes that need to be removed

* removed old damage event classes

* removed outdated imports

* temporarily refactor Everlasting Torment (this will need to be changed more)

* updated damage handling to use new changes

* some reworking of lethal/excess damage plus a test

* updated damage marking to handle planeswalkers

* updated implementation of Phyrexian Unlife

* updated implementation of Everlasting Torment

* added some more excess damage tests

* small change to wither check
2021-02-22 17:11:24 -05:00
Oleg Agafonov
39f6b69391
Merge pull request from weirddan455/cascade
Implemented updated Cascade ruling 702.84a
2021-02-22 23:03:56 +01:00