Commit graph

4388 commits

Author SHA1 Message Date
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
2bf6e3e3a2 GUI: added mana and other symbols support in choose spell dialog (closes #12155) 2024-07-27 10:17:22 +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
xenohedron
5cc4901580 fix #12575
add test for AddManaInAnyCombinationEffect

cleanup Grand Warlord Radha, add test

simplify some abilities to common class

remove unused constructors
2024-07-25 01:35:51 -04:00
ssk97
be3065789d
[BLB] Consumed by Greed, Thought Shucker, Mabel's Mettle, Heaped Harvest (#12600)
* Consumed by Greed

* Fix Gift text

* Thought Shucker

* Mabel's Mettle

* Heaped Harvest
2024-07-24 20:25:44 -04:00
theelk801
12aa81cbf4 [BLB] Implement Mind Spiral 2024-07-23 15:21:23 -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
0f33ac298c [BLB] Implement Wax-Wane Witness 2024-07-19 17:45:22 -04:00
theelk801
b92c22d602 [BLB] Implement Ruthless Negotiation 2024-07-19 16:15:02 -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
Oleg Agafonov
7b2e9b390c GUI: added card hints in choose replacement effect dialog 2024-07-19 00:06:18 +04:00
Evan Kranzler
7fe6ba9c57
Implement "Promise a gift" mechanic (#12578)
* [BLB] Implement Wear Down

* [BLB] Implement Valley Rally

* [BLB] Implement Dawn's Truce

* add initial test

* [BLB] Implement Kitnap

* [BLB] Implement Long River's Pull

* [BLB] Implement Peerless Recycling

* [BLB] Implement Into the Flood Maw

* add more tests

* add verify skip

* remove skip

* a few requested changes

* [BLB] Implement Nocturnal Hunger

* add test for gifting a food token

* [BLB] Implement Starforged Sword

* add comment to activation ket

* add test for adding extra cards
2024-07-18 09:15:45 -04:00
ssk97
96b08ee6bf
Fix effects where the source's controller sacrifices it (#12583)
* Fix effects where the source's controller sacrifices it. Added test. Fixes #12582

* Update Evoke rules text
2024-07-18 00:28:50 -04:00
xenohedron
680f14b49d add hint for YouGainedOrLostLifeCondition
update Starseer Mentor to use common condition
2024-07-17 23:57:02 -04:00
theelk801
f7eeb75545 [BLB] Implement Star Charter 2024-07-17 10:19:13 -04:00
xenohedron
bac604fa4c simplify Hired Claw, add hint 2024-07-15 21:49:38 -04:00
Evan Kranzler
204f67c5f0
Implement offspring mechanic (#12572)
* implement offspring mechanic

* create offspring test
2024-07-12 23:38:29 -04:00
theelk801
dc096e4b1b [BLB] Implement Darkstar Augur 2024-07-12 14:12:15 -04:00
Susucre
3fdeb8c2fc implement [BLB] Starseer Mentor 2024-07-12 18:18:02 +02:00
Susucre
233d714e00 simplify "you gained life this turn" condition constructor 2024-07-12 17:42:00 +02:00
Susucre
c36b3959a8 implement and test ExpendTriggeredAbility 2024-07-11 17:57:16 +02:00
theelk801
7c54362e9d [BLB] Implement Wandertale Mentor 2024-07-11 10:04:23 -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
Evan Kranzler
f036bc75fb
refactor: dedicated condition for threshold (#12570)
* create threshold condition, refactor cards to use it

* fix threshold condition

* a couple more text fixes

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2024-07-10 20:21:17 -04:00
theelk801
cadeeeee66 [BLB] Implement Tender Wildguide 2024-07-10 16:27:03 -04:00
xenohedron
65217d7f89 merge fix 2024-07-09 23:44:51 -04:00
xenohedron
219eac2087 text fixes 2024-07-09 23:40:48 -04:00
xenohedron
ec399ba09f cleanup CardsInHandCondition 2024-07-09 23:29:43 -04:00
xenohedron
122df0d6fb fix regression on The End 2024-07-09 23:04:38 -04:00
xenohedron
03e90f9f5b adjust ValiantTriggeredAbility 2024-07-09 22:44:47 -04:00
theelk801
6a323a467c [BLB] Implement Seedglaive Mentor 2024-07-09 16:36:01 -04:00
theelk801
1d9cc2a87f [DSK] Implement Chainsaw 2024-07-06 14:56:15 -04:00
Susucre
3acab4a76d implement [DSK] Screaming Nemesis 2024-07-06 18:55:53 +02:00
Susucre
9bc1289341 implement [ACR] Senu, Keen-Eyed Protector ; small refactor on AttacksAndIsNotBlockedTriggeredAbility's setTargetPointer 2024-07-06 18:29:53 +02: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
eee1462eba Aclazotz, Deepest Betrayal // Temple of the Dead - added card hint for second side, refactored to use standard methods 2024-07-01 13:11:23 +04:00
Susucre
2709614508 tweak [BLB] Salvation Swan's effect, and add test with Meld. 2024-06-30 13:57:31 +02:00
xenohedron
9863e23435 refactor: ChoiceImpl constructor must specify whether required
changed a few others to required where clearly applicable
2024-06-29 22:57:47 -04:00
xenohedron
5aaf6fe773 fix required choice on ability counter 2024-06-29 22:39:41 -04:00
Susucre
62a99a0497 implement [BLB] Salvation Swan 2024-06-29 18:38:00 +02:00
Susucre
b59f8e889d implement [BLB] Carrot Cake 2024-06-29 17:03:33 +02:00
theelk801
f53fb22916 [DSK] Implement Cursed Recording 2024-06-28 15:27:30 -04:00
theelk801
f0a77a8551 [DSK] Implement Leyline of Hope 2024-06-28 15:12:14 -04:00
Oleg Agafonov
3f5d2bb9b5 Implement [M3C] Gluttonous Hellkite (part of #12206, related to #12393) 2024-06-26 10:18:55 +04:00
ssk97
2daa2b8820
[PIP] and [WHO] card implementations (#12482)
* Last Night Together

* Nanogene Conversion

* Return the Past

* Rose, Cutthroat Raider

* Diamond City

* Fix Apostrophe

* Various fixes

* Replace Diamond City and Celebration Watchers

* LastNightTogether improvements, add hint to ReturnThePast

* Add AttackedThisTurnOpponentsCount hint, ignore new failing Celebration test

* Review fixes, also create ValueConditionHint for value hints with a conditional threshold

* Comments improvements

* Requested changes to make ValueConditionHint extend ConditionHint

* single super call in ValueConditionHint constructor
2024-06-25 23:22:45 -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