Commit graph

2257 commits

Author SHA1 Message Date
Sidorovich77
37bf7a68cd
[WHO] Implement Vrestin, Menoptra Leader (#12643)
Added Alien Insect token.
2024-08-14 21:09:39 -04:00
Oleg Agafonov
7916af0e52 server, refactor: added client side info about current table and parent table (tourney's sub-tables with matches); 2024-08-11 19:29:42 +04:00
theelk801
8d6c5f6795 [BLC] Implement Rolling Hamsphere 2024-08-06 12:53:51 -04:00
xenohedron
b78956d286
text errata updates: various "enters the battlefield" -> "enters" (#12626)
* enters the battlefield, -> enters,

* {this} enters the battlefield -> {this} enters

* EntersBattlefieldAbility

* , it enters

* enters the battlefield under your control -> you control enters

* rework some trigger phrase logic

* fix tests
2024-08-02 18:43:59 -04:00
ssk97
ab803079b9
Minor fixes (#12632)
* Fix Nefarious Imp, Bewitching Leechcraft

* Include zone of cast in game log
2024-08-02 18:43:49 -04:00
jimga150
f2d3850250
refactor: simplify DrawCardSourceControllerEffect text generation (#12621) 2024-07-31 22:46:22 -04:00
Oleg Agafonov
e1cffbde40 download: reworked connection:
- added shareable code with default proxy, headers and other settings for download tasks like images, symbols, mtgjson, etc;
- use XmageURLConnection.downloadText for text resources
- use XmageURLConnection.downloadBinary for any file resources
- added user agent with app version for all requests;
- added http logs and improved error messages;
2024-07-31 21:25:56 +04:00
Susucre
c0eab28626
implement [MH3] Primal Prayers ; use choice panel for cast mode choice ; allow some restricted "as thought as it had flash" to work only on matching alternative cast. (#12420) 2024-07-30 15:47:39 +02:00
PurpleCrowbar
4f90270fa1 Add BLB token images 2024-07-29 22:07:02 +01:00
PurpleCrowbar
831313bcb9
[BLB] Implement Vren, the Relentless (#12615) 2024-07-29 21:45:54 +01:00
PurpleCrowbar
21f5f93dd6 [BLB] Implement Wick, the Whorled Mind 2024-07-28 17:25:51 +01:00
PurpleCrowbar
9db54d7892 [BLB] Implement Ral, Crackling Wit 2024-07-28 15:20:23 +01:00
PurpleCrowbar
43d7da9581 Fix players who have lost being valid attack targets 2024-07-27 19:45:22 +01:00
Oleg Agafonov
393dbc4047 Can't be activated effects - fixed that some restricted effects show abilities as playable (example: Sharkey, Tyrant of the Shire and Karakas, fixed #10642) 2024-07-27 15:38:13 +04:00
Oleg Agafonov
521a0f6e32 GUI: introduced default card hints:
* refactor: added helper emblems instead rad counter's inherent emblems (use initGameDefaultHelperEmblems to define new card hints or other fake objects);
* refactor: added card hints support for emblems, planes and other command objects;
* GUI: added storm counter as default card hint (use hints tool to see it, closes #12360);
2024-07-27 09:40:41 +04:00
theelk801
b6bf126dd2 [BLB] Implement Builder's Talent 2024-07-23 17:38:27 -04:00
ssk97
3933364e6e
[ACR] Implement 4x Equipment-related cards (#12593)
* Assassin Gauntlet

* Fix many minor mistakes in ACR cards

* Battlefield Improvisation

* Phantom Blade

* Misthios's Fury

* Fix unset target tag, missing damage amount text

* Remove now-unneeded setText calls for DamageTargetControllerEffect
2024-07-23 02:20:18 -04:00
ssk97
e8808c3ae3
Remove duplicate code for X costs (#12551)
* Replace "([a-zA-Z]+).getManaCostsToPay().getX()" with CardUtil.getSourceCostsTag(game, $1, "X", 0)
Fix Disrupting Shoal

* Change final card .getX() calls

* Condense all ManacostVariableValue enum values into "instance"

* Further removal of getX, Display X symbol for non-mana X cards

* Fix test

* Fully remove ManaCosts.getX

* Replace all different X dynamic values with GetXValue

* Remove individual cards checking getAmount for X values (leaving cost reduction that does not use X)

* Add null check for game object inside getSourceCostsTagsMap

* fix build errors

* fix Vicious Betrayal

* text fix
2024-07-23 01:57:47 -04:00
ssk97
78649c1a62
Remove KickerAbility.getSpellKickedCount (#12553)
* Remove KickerAbility.getSpellKickedCount

* Check spell LKI instead of only current spell object

* Remove bad LKI storage under wrong ID
2024-07-22 23:13:48 -04:00
theelk801
f3d5f6d06a [BLB] Implement Blacksmith's Talent 2024-07-20 16:04:43 -04:00
theelk801
57503550fe [BLB] Implement Jolly Gerbils 2024-07-18 20:47:12 -04:00
Oleg Agafonov
a974af3c61 GUI: improved choose creature type dialog - important creature types added to the start of the list and marked as my/opponent (closes #8478) 2024-07-19 03:17:53 +04:00
theelk801
3d92428453 [BLB] Implement Stormchaser's Talent 2024-07-17 14:25:16 -04:00
Evan Kranzler
43e95fd0cf
[BLB] Implement forage mechanic (#12569)
* [BLB] Implement Corpseberry Cultivator

* [BLB] Implement Thornvault Forager

* fix verify failure
2024-07-10 22:57:22 -04:00
theelk801
2b970d676c [DSK] Implement Toby, Beastie Befriender 2024-07-06 14:42:40 -04:00
ssk97
7cb669603f
[WHO] Time Reaper, Add target adjuster for "that player controls/owns" damage trigger targets (#12528)
* Implement Time Reaper, start rework

* Create DamagedPlayerControlsTargetAdjuster, convert Aberrant to use it

* Always add targets for EachOpponentPermanentTargetsAdjuster

* Improve target name, finish Time Reaper

* Convert some cards

* Improve documentation, more cards

* More cards, fix cards that needed to use owner instead of controller

* Fix unfinished AlelaCunningConqueror changes

* more cards

* All remaining cards

* Fix target type

* Remove outdated attempt at TargetController.SOURCE_EFFECT_TARGET_POINTER

* Finish removal of SOURCE_EFFECT_TARGET_POINTER

* Change targetAdjuster blueprint target to be set inside setTargetAdjuster, add error checking

* Always add Target Adjuster after Target

* Add comment

* Fix TolarianContemptTest to skip opponent with no valid targets

* Forgot to git add the new abstract GenericTargetAdjuster

* Test now possible after merge, fix missed ChangeOfPlans adjuster order

* Text and optional-ness fixes

* Always set target pointer
2024-07-02 08:46:14 +04:00
Oleg Agafonov
bccf323c0f refactor: clean, added comments and todos to meld related code, fixed miss copy (related to #12544) 2024-07-01 22:43:58 +04:00
Oleg Agafonov
ce15d190e1 refactor: additional todos for players lists 2024-07-01 16:25:55 +04:00
Oleg Agafonov
1e2d179410 multiple player/opponent choose - fixed that game ask players in random order instead APNAP (closes #12532);
game: fixed wrong player restore for TestPlayer and SimulatedPlayer2;
2024-07-01 13:22:58 +04:00
ssk97
0e84fd02a0
[MKM] implement remaining 4 Cloak cards (#12509)
* EtrataDeadlyFugitive

* refactor: remove need for Zone.BATTLEFIELD for DealsDamageToAPlayerAllTriggeredAbility with opponent restriction

* ExposeTheCulprit

* HideInPlainSight

* VannifarEvolvedEnigma

* Fix for not turning manifested non-permanents face-up, per 701.34g

* Add comment on Etrata's unusual behavior
2024-06-25 22:55:58 -04:00
theelk801
605538f145 [ACR] Implement Distract the Guards 2024-06-23 10:08:19 -04:00
Oleg Agafonov
7d675de876 server: fixed server app freeze on another instance already running, improved threads usage (related to #11285); 2024-06-23 15:58:25 +04:00
theelk801
8a56cd0445 [ACR] Implement Origin of the Hidden Ones 2024-06-19 07:59:40 -04:00
theelk801
bac4e7b507 (refactor) break out assignment into its own package 2024-06-18 13:44:11 -04:00
PurpleCrowbar
f83073081d Add M3C token images 2024-06-15 01:41:10 +01:00
xenohedron
fdd244786b refactor: improve method name (related to 86fa9278) 2024-06-13 00:43:51 -04:00
xenohedron
b85d2883e3 style: remove some static imports 2024-06-11 23:47:48 -04:00
xenohedron
d61de05eb8
refactor: simpler processAction syntax (#12458)
* game.processAction() instead of game.getState().processAction(game)

* add simpler method name and docs

* find/replace to new method

* remove old method

* deprecate applyEffects
2024-06-11 22:55:43 -04:00
Oleg Agafonov
e209ce1c97 server: fixed wrong cheater detection in some tourney sideboardings (closes #11877) 2024-06-11 00:30:00 +04:00
Oleg Agafonov
fe4814680e game, AI: fixed bloated logs in AI and other games 2024-06-10 20:29:40 +04:00
xenohedron
0d4acf26e5 refactor: improve method name - checkShortLivingLKI 2024-06-09 22:13:33 -04:00
xenohedron
aeaeccb63b
Fix bugs with dies triggers due to short living LKI reset (#12438)
* replace applyEffects() with processAction() for card usages

* update Goblin Welder and test

* add test for Historian's Wisdom

* enable other related tests

* only reset short living LKI for process action, not all apply effects

* update docs

* remove applyEffects from condition in Historian's Wisdom

* add another test case
2024-06-09 18:56:19 -04:00
theelk801
ee479d24c9 [ACR] Implement The Spear of Leonidas 2024-06-09 11:47:49 -04:00
Evan Kranzler
08c7d2ab8f
implement [M3C] Planar Nexus [MH3] Omo, Queen of Vesuva and [UNF] Nearby Planet ; introduce AllNonbasicLandTypes status (#12203) 2024-06-07 18:36:41 +02:00
Oleg Agafonov
c2ae1386ff server: improved conceding logic with more protection from game errors/freeze (related to #11285, #11460) 2024-06-07 12:52:42 +04:00
Evan Kranzler
720d6075ea
(Don't merge yet) Rename totem armor to umbra armor (#12270)
* rename totem armor to umbra armor

* merge fix

* merge fix
2024-06-06 20:52:37 -04:00
grimreap124
976097e1e8
Implement [WHO] The Rani (#12369) 2024-06-06 19:23:10 -04:00
grimreap124
af879be1d2
Implement [M3C] Aether Refinery (#12337) 2024-06-06 19:22:55 -04:00
theelk801
1b2de47e78 fix Tarmogoyf token name, Tarmogoyf Nest ability cost order 2024-06-06 15:39:33 -04:00
Susucre
2d625f0364 implement [MH3] Volatile Stormdrake ; provide source Ability to canBeTargetedBy and HexproofBaseAbility::checkObject 2024-06-06 17:36:11 +02:00