Commit graph

1949 commits

Author SHA1 Message Date
xenohedron
c84fbfd00e new SetBasePowerToughnessPlusOneSourceEffect 2023-08-26 23:51:33 -04:00
Susucre
be4b568e88
Add modeTag + hint of used modes for "choose one that hasn't been chosen" abilities. (#10860)
* Add modeTag + hint of used modes on Three Bowls of Porridge

* add ModesAlreadyUsedHint to all the cards.
2023-08-26 23:09:04 -04:00
xenohedron
869de1eac6
fix getText() overrides ignoring staticText (#11044)
* fix text: SkipNextPlayerUntapStepEffect

* remove old copyright info

* individual card text fixes

* fix overrides ignoring staticText
2023-08-26 20:47:02 -04:00
Susucre
e39e5ee1b0
[WOC] Implement Alela, Cunning Conqueror (#10870)
Add new batch event `DAMAGED_PLAYER_BATCH_ONE_PLAYER`
2023-08-26 19:33:52 -04:00
Susucre
0b5099746f
Add artifact type to token created by Canoptek Scarab Swarm (#11020)
* Add a new token type for Canoptek Scarab Swarm

* clean the tokens

* touch tokens-database
2023-08-26 16:46:45 -04:00
Susucre
eec5bceb71
fix game log message for Banding (#11021) 2023-08-25 21:10:51 -04:00
Oleg Agafonov
93cb4404e3 game: fixed game error in some multi blocker damage use cases (NPE error); 2023-08-25 19:32:28 +04:00
Oleg Agafonov
640e5394c9 game: fixed game error with battle protector choosing on no opponents; 2023-08-25 19:17:13 +04:00
Oleg Agafonov
f6e625de72 game: fixed miss cards from zone moves in some rare use cases (choose cards order while leave/disconnect) 2023-08-25 18:23:39 +04:00
Susucre
5062c84098
Refactor: removed server side objects from a client side game's data (#10788)
* Clean original values transmitted with CardView.originalObject
* Move RateCard to mage.Common, support cardView as argument.
* Clean PermanentView constructor for TestCardRenderDialog
2023-08-24 12:04:07 +04:00
ssk97
a756529e05
Fix casting commander transformed (#10790)
Remove CastCommanderAbility and instead apply the modification directly
2023-08-24 03:30:09 +04:00
Susucre
7180fd06ff
[WOE] Implement Hylda of the Icy Crown (#10901)
* tap trigger from Icewrought Sentry branch

* [WOE] Implement Hylda of the Icy Crown

---------

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2023-08-21 09:24:44 -04:00
Susucre
343549c4d7
Fix PermanentMeld missing copy constructor ; add more Meld tests. (#10908)
* Add some unit tests on Meld mana value.

* Fix PermanentMeld missing copy constructor. add more Meld tests.

* clean text
2023-08-20 13:30:10 -04:00
xenohedron
0b0ff83c1f improve comments in TokenImpl messy aura target-searching code 2023-08-18 22:15:46 -04:00
theelk801
7e5583d3ae [WOE] Implement Into the Fae Court 2023-08-18 15:36:53 -04:00
Evan Kranzler
b892562b95
Fixing aura token creation (#10858)
* rework aura token creation

* add missing copy constructor

* add message for token if unable to be created

* add a few extra role tests
2023-08-18 13:25:48 -04:00
Evan Kranzler
b20bdcede7
WIP: Implement Role mechanic (#10816)
* [WOE] Implement Embereth Veteran

* add SBA for role tokens

* [WOE] Implement Cursed Courtier

* [WOE] Implement Conceited Witch

* [WOE] Implement Besotted Knight

* [WOE] Implement Syr Armont, the Redeemer

* [WOE] Implement Living Lectern

* add role test

* [WOE] Implement Lord Skitter's Blessing

* [WOE] Implement Faunsbane Troll

* [WOE] Implement Twisted Fealty

* [WOC] Implement Ellivere of the Wild Court

* [WOE] Implement Monstrous Rage

* [WOE] Implement Spellbook Vendor

* add verify skips

* extra fix
2023-08-17 10:18:21 -04:00
xenohedron
9eca83dd7e fix type ordering on some Artifact Creature tokens 2023-08-16 20:39:26 -04:00
Susucre
8fde855026
[WOE] Implement Sharae of Numbing Depths (#10829)
* [WOE] Implement Sharae of Numbing Depths

* change EventType.TAPPED's playerId to be the source's controller

There seems to have been no usage of the previous playerId, and it can be retrieve from the target anyway.

* apply review -- cleaner and check for creatures.
2023-08-16 19:07:07 -04:00
Susucre
853400ef46
[WOE] Implement Rat Out (and new Rat Token) (#10817) 2023-08-16 08:29:26 -04:00
theelk801
e8e243db8c Revert "[WOE] Implement Embereth Veteran"
This reverts commit bd1b657e24.
2023-08-15 21:02:01 -04:00
theelk801
bd1b657e24 [WOE] Implement Embereth Veteran 2023-08-15 21:01:22 -04:00
xenohedron
817e1a813a put getCount method in SpellsCastWatcher and use it where applicable 2023-08-13 01:17:51 -04:00
xenohedron
7d170ef902 make SpellsCastWatcher a default game watcher 2023-08-13 01:17:51 -04:00
Susucre
07ee4661e7
[CMM] Implement Teyo, Geometric Tactician (#10736)
* [CMM] Implement Teyo, Geometric Tactician

* rework as a RestrictionEffect (common class with Mystic Barrier; Pramikon, Sky Rampart)

* add checkMayAttackDefender test

* more Pramikon tests
2023-08-12 19:02:23 -04:00
PurpleCrowbar
6ea286eb89 Add CMM token images 2023-08-10 01:10:17 +01:00
Artemis Kearney
9ba0da00ff
Basic groundwork for extra decks (contraptions, attractions) (#10378)
* extra deck cards not counted in deck size

* extra deck handling in deckbuilder

* move responsibility for extraDeckCard boolean to CardImpl

* remove redundant field copy
2023-08-06 21:06:32 -04:00
sprangg
287df7af21
Wait 2 seconds before making the draft pick for a timed out player (#10733)
* The draft session waits for 5 seconds before making the pick for the timed out player

* Formatting

* Renamed constant

* Tweak

* If the draft pick's timeout value would increase the client's pick's timer, don't set it (might happen if the client or server is lagging)

* Lowered BOOSTER_LOADING_INTERVAL and AUTOPICK_BUFFER

---------

Co-authored-by: sprangg <a@b.c>
2023-08-06 20:00:42 -04:00
theelk801
456ea87107 finish reverting my ill-advised refactor 2023-08-06 19:28:16 -04:00
theelk801
715fca1399 fix error 2023-08-06 15:17:56 -04:00
theelk801
4a67507e2b [WHO] Implement The Eleventh Hour 2023-08-05 22:16:01 -04:00
Susucre
0e5069ccc2
[LTC] Implement Gandalf, Westward Voyager (#10727)
* refactor and cleanup SpellCastControllerTriggeredAbility

* [LTC] Implement Gandalf, Westward Voyager

* throw on unexpected setTargetPointer
2023-08-04 22:26:25 -04:00
Susucre
f75b1c9f0a
Code cleanup: protect all copy constructors (#10750)
* apply regex to change public copy constructors to protected
* cleanup code using now protected constructors
* fix manaBuilder weird casting of Mana into ConditionalMana
2023-08-04 19:34:58 -04:00
Susucre
5c58e28f9b
Fix King of the Oathbreaker (#10747) 2023-08-04 18:37:11 -04:00
Susucre
40e508ac19
Refactor Devour ability; [LTC] Implement Feasting Hobbit (#10708)
* [LTC] Implement Feasting Hobbit

Refactor DevourEffect and its text generation, to be more permissive in the future.

* change DevourAbility to have the constructor parameters of DevourEffect

* only pluralize when there is more than 1 devoured permanent.

* added more unit tests than there are cards with devour

* public -> private filter of Caprichrome.
2023-08-01 09:49:32 -04:00
Oleg Agafonov
3d3358cd05 game: turn modification improves:
- fixed miss phase changed events and logs in some use cases;
 - added source info in turn modification logs;
 - added game logs for take and lost control of the spell (example: Word of Command)
 - added game logs for skip step;
 - added game logs for extra step;
 - added game logs for skip phase;
2023-08-01 16:52:53 +04:00
Susucre
63d9061f6a
[LTC] Implement Assemble the Entmoot (#10711)
* [LTC] Implement Assemble the Entmoot

* rename ControllerGotLifeCount -> ControllerGainedLifeCount
2023-07-31 23:50:29 -04:00
Oleg Agafonov
8d938926b6 refactor: improved usage of one time turn modifications (skip step, extra turn, etc) 2023-07-31 20:16:28 +04:00
Susucre
4554fbc408
[LTC] Implement Denethor, Stone Seer (#10709)
* [LTC] Implement Denethor, Stone Seer

* rename game.damagePlayerOrPlaneswalker.

Reason being that It does actually damage any player or permanent.
2023-07-30 23:06:21 -04:00
Susucre
4856c65443
[BOT] Implement Megatron, Tyrant // Megatron, Destructive Force (#10666)
* [BOT] Implement Megatron, Tyrant // Megatron, Destructive Force

* fix verify test.

* cleanup AbilityCastMode for Disturb & MoreThanMeetsTheEye

* cleanup unecessary checks.

* fix duration of silence static effect

* fix Disturb tests
2023-07-29 13:45:09 -04:00
Alexander Novotny
519b3988be
game timer: Add chess-style buffer time option (#10598)
* UI Changes

* Add new buffer time options

* Main functionality

* Final implementation

Also added player UI for when they are using their buffer time (timer turns green)
2023-07-28 22:05:21 -04:00
Alexander Novotny
a36a7d9b7f
[LTR] Add Goldberry, River-Daughter (#10524)
* Added Goldberry

* Slight optimizaztion

* Happy Path Test

* More unhappy tests

* Sanity check for Goldberry's counter choices

* Updated player.getMultiAmount to support individual constraints

* Some cleanup

Also modified ResourcefulDefense to use new multi amount api

* Updated logging

* Added hint for number of counters

* Fixed issue with Resourceful Defense

* Improvements to defaults

Default list will properly make sure to stay within individual maximums
If a player is asked for a choice that isn't actually a choice because each choice's min and max are equal, instead the default response is immediately returned. This helps with situations like moving a counter off of Goldberry when she only has one counter on her.

* -1/-1 Counter test

* Fixed issue with -1/-1 counters

* Adjusted dialog to properly enforce constraints
2023-07-28 21:29:40 -04:00
Susucre
3e406a9975
GUI: add basic hint for goaded by a player. (#10688) 2023-07-28 19:33:18 -04:00
Susucre
9eb7e2870e
GUI: fix card hints being shown twice on permanents. (#10675) 2023-07-27 17:34:38 +04:00
Oleg Agafonov
9383f5eadd game: fixed miss data in turn mode (possible fix for cards like Sphinx of the Second Sun and Moraug, Fury of Akoum - #10100) 2023-07-23 09:37:25 +04:00
theelk801
03320d1752 [CMM] Implement Battle at the Helvault 2023-07-21 22:23:31 -04:00
theelk801
564a24f7a3 [CMM] Implement Lazotep Sliver 2023-07-21 20:08:15 -04:00
PurpleCrowbar
599473be12 [LTC] Implement Gwaihir, Greatest of the Eagles 2023-07-20 04:48:46 +01:00
PurpleCrowbar
394bd7552e [LTC] Implement Lord of the Nazgul 2023-07-19 04:47:09 +01:00
Susucre
6b616dbf20
refactor: expose startingHandSize in GameImpl constructor. (#10629)
For now, it is 7 in every game mode.
2023-07-16 18:36:26 +04:00