Commit graph

2411 commits

Author SHA1 Message Date
Oleg Agafonov
f2826cc676
GUI, table: added drafts with single multiplayer and multiple 1vs1 games support (#13701)
- new tourney's single game mode allow to play tourneys/drafts with all players in one game without multiple rounds;
- it's allow to setup classic drafts with 1 vs 1 games and multiple rounds
- added AI opponents supported including draft bots from a public servers;
2025-05-31 10:39:23 +04:00
theelk801
a61851db09 [FCA] a few text fixes 2025-05-30 22:20:13 -04:00
theelk801
9ef2aac469 [FIN] various text fixes 2025-05-30 22:20:12 -04:00
theelk801
fe9e7d3e60 [FIN] Implement The Wandering Minstrel 2025-05-29 11:37:16 -04:00
xenohedron
77830dd24a
Merge pull request #13683 from magefree/from-card
Update effects that find a permanent from a card put to battlefield
2025-05-29 01:00:56 -04:00
Evan Kranzler
abb88e9527
[FIN] Implement Gogo, Master of Mimicry (#13686)
* [FIN] Implement Gogo, Master of Mimicry

* add test

* fix text

* move abstract method definition to interface where it belongs
2025-05-27 22:01:53 -04:00
Evan Kranzler
136988de29
[FIN] Implement Edgar, King of Figaro, rework coin flips (#13672)
* add method for multiple coin flips

* [FIN] Implement Edgar, King of Figaro

* add extra note

* update coin flip logic

* add test
2025-05-27 21:56:23 -04:00
Evan Kranzler
e1f4e9db59
[FIN] Implement Ancient Adamantoise (#13670)
* [FIN] Implement Ancient Adamantoise

* change effect type

* add test
2025-05-27 21:56:07 -04:00
theelk801
ecec7e4476 [FIN] Implement Choco Comet 2025-05-27 17:05:08 -04:00
theelk801
eeb96d1411 [FIN] Implement Rufus Shinra 2025-05-27 15:20:44 -04:00
theelk801
b5eb09e31a [FIN] Implement Gysahl Greens 2025-05-27 08:25:25 -04:00
theelk801
fd29d091ea [FIN] Implement The Final Days 2025-05-26 19:18:20 -04:00
xenohedron
e3b82def84 update cards to use new method 2025-05-26 17:20:02 -04:00
theelk801
501b7e882b fix additional test failures 2025-05-23 18:30:23 -04:00
theelk801
ddb846eda9 [FIN] Implement Quina, Qu Gourmet 2025-05-19 14:08:30 -04:00
Oleg Agafonov
e320bf241c GUI, game: added source info in "choose number/amount" dialogs, added auto-choose for single possible value (part of #13638); 2025-05-17 21:18:45 +04:00
theelk801
94e579543c [FIN] Implement Instant Ramen 2025-05-16 14:24:55 -04:00
Oleg Agafonov
133e4fe425
other: reworked target selection: (#13638)
- WIP: AI and multi targets, human and X=0 use cases, human and impossible targets use cases;
- improved stability and shared logic (related to #13606, #11134, #11666, continue from a53eb66b58, close #13617, close #13613);
- improved test logs and debug info to show more target info on errors;
- improved test framework to support multiple addTarget calls;
- improved test framework to find bad commands order for targets (related to #11666);
- fixed game freezes on auto-choice usages with disconnected or under control players (related to #11285);
- gui, game: fixed that player doesn't mark avatar as selected/green in "up to" targeting;
- gui, game: fixed small font in some popup messages on big screens (related to #969);
- gui, game: added min targets info for target selection dialog;
- for devs: added new cheat option to call and test any game dialog (define own dialogs, targets, etc in HumanDialogsTester);
- for devs: now tests require complete an any or up to target selection by addTarget + TestPlayer.TARGET_SKIP or setChoice + TestPlayer.CHOICE_SKIP (if not all max/possible targets used);
- for devs: added detail targets info for activate/trigger/cast, can be useful to debug unit tests, auto-choose or AI (see DebugUtil.GAME_SHOW_CHOOSE_TARGET_LOGS)
2025-05-16 13:55:54 +04:00
theelk801
c0a1b64266 [FIC] Implement Wrecking Ball Arm 2025-05-15 19:15:04 -04:00
theelk801
181a3306a6 [FIN] Implement Retrieve the Esper 2025-05-14 21:28:10 -04:00
theelk801
6cc717470a [FIN] Implement Sephiroth, Fabled SOLDIER / Sephiroth, One-Winged Angel 2025-05-14 15:30:56 -04:00
theelk801
05ded6d1eb [FIN] Implement Circle of Power 2025-05-14 10:37:30 -04:00
theelk801
0100ba31f2 [FIC] Implement Hermes, Overseer of Elpis 2025-05-13 10:37:31 -04:00
theelk801
16373fda33 [FIC] Implement Summon: Good King Mog XII 2025-05-13 08:37:17 -04:00
theelk801
b26f224ee0 [FIC] Implement Setzer, Wandering Gambler 2025-05-13 08:19:39 -04:00
theelk801
a52f1fd579 [WHO] various text fixes 2025-05-12 14:42:47 -04:00
theelk801
47720cf8be [FIN] Implement Rinoa Heartilly 2025-05-12 09:08:34 -04:00
Balázs Kristóf
52bb919cd4
[FIN] Implement spoilers (#13616)
* [FIN] Implement Commune with Beavers

* [FIN] Implement Adventurer's Inn

* [FIN] Implement Job Select keyword ability

* [FIN] Implement White Mage's Staff

* [FIN] Implement Black Mage's Rod

* [FIN] Implement Ultimecia, Time Sorceress / Ultimecia, Omnipotent
2025-05-10 15:26:25 -04:00
Oleg Agafonov
00dc6f4742 refactor: removed useless getNumberOfTargets from Target (replaced with getMinNumberOfTargets) 2025-05-07 02:55:02 +04:00
theelk801
550562b1a9 [WHO] Implement Day of the Moon 2025-05-05 14:39:38 -04:00
jmlundeen
bcfc84f360 Fix Jaya, Fiery Negotiator Emblem
* Trigger checking wrong zone
2025-04-29 09:42:43 -05:00
Steven Knipe
7a3a86017c Fix problem with trying to distribute negative combat damage 2025-04-28 21:19:09 -07:00
theelk801
33012783a6 [FDN] various text fixes 2025-04-28 19:03:26 -04:00
theelk801
0013e075be [TDC] various text fixes 2025-04-28 14:46:18 -04:00
jmlundeen
aeded36c09 Fix bestow tokens trying to attach
* Bestowed token copies set attached to a permanent now get created as just creatures
* Fixes #13559
2025-04-25 14:42:09 -05:00
theelk801
5dcbd6d318 [PIP] Implement Preston Garvey, Minuteman 2025-04-25 13:50:09 -04:00
theelk801
3267723986 [WHO] Implement Blink 2025-04-23 13:50:53 -04:00
Oleg Agafonov
30d44ce869 Improved server's reconnection and drafts stability:
* draft: fixed miss or empty draft panels on reconnect;
* draft: fixed tourney freezes for richman drafts on disconnects;
* draft: fixed tourney freezes on rare use cases with bad connection;
2025-04-18 09:38:52 +04:00
theelk801
5e27be4dfa [SPE] Implement Sensational Spider-Man 2025-04-17 20:52:49 -04:00
theelk801
5876040be7 fix harmonize implementation (fixes #13531) 2025-04-14 10:19:08 -04:00
theelk801
92e37a05aa [TDC] Implement Rampart Architect 2025-04-11 18:34:48 -04:00
Oleg Agafonov
bae3089abb Reworked cost adjuster logic for better support of X and cost modification effects:
Improves:
* refactor: split CostAdjuster logic in multiple parts - prepare X, prepare cost, increase cost, reduce cost;
* refactor: improved VariableManaCost to support min/max values, playable and AI calculations, test framework;
* refactor: improved EarlyTargetCost to support mana costs too (related to #13023);
* refactor: migrated some cards with CostAdjuster and X to EarlyTargetCost (Knollspine Invocation, etc - related to #13023);
* refactor: added shared code for "As an additional cost to cast this spell, discard X creature cards";
* refactor: added shared code for "X is the converted mana cost of the exiled card";
* tests: added dozens tests with cost adjusters;

Bug fixes:
* game: fixed that some cards with CostAdjuster ignore min/max limits for X (allow to choose any X, example: Scorched Earth, Open The Way);
* game: fixed that some cards ask to announce already defined X values (example: Bargaining Table);
* game: fixed that some cards with CostAdjuster do not support combo with other cost modification effects;
* game, gui: fixed missing game logs about predefined X values;
* game, gui: fixed wrong X icon for predefined X values;

Test framework:
* test framework: added X min/max check for wrong values;
* test framework: added X min/max info in miss X value announce;
* test framework: added check to find duplicated effect bugs (see assertNoDuplicatedEffects);

Cards:
* Open The Way - fixed that it allow to choose any X without limits (close #12810);
* Unbound Flourishing - improved combo support for activated abilities with predefined X mana costs like Bargaining Table;
2025-04-08 22:39:10 +04:00
Jmlundeen
0df5f17603
[TDM] Implement omen mechanic (#13501)
* Abstract AdventureCard to SingleFaceSplitCard

* Fix AdventureCardSpellImpl

* Finish converting adventure card and adventure spell

* Update Brightcap Badger

change finalize call to adventure card

* Update Darksteel Monolith

being cast from hand condition referencing AdventureCardSpell

* Update Tlincalli Hunter

exiled creature condition referencing AdventureCardSpell

* Update Twice Upon a Time

finalizeAdventure called from Adventure card

* Finish abstracting Adventure

missed some more references to adventure cards

* Implement Omen cards

* Implement Dirgur Island Dragon

* Missed some adventureSpellName references

* OmenCardSpell had wrong comma symbol

* Add tests for Omen Cards

* Rename two part card components

change from SingleFaceSplitCard to CardWithSpellOption

* Update comments and variable name
2025-04-08 08:54:18 -04:00
padfoothelix
eac265f4f7
[WHO] Implement Fugitive of the Judoon (#13467) 2025-04-05 14:10:45 -04:00
androosss
730bd8e63d
refactor: improved tokens structure (#13487)
- removed duplicate tokens
- fixed names of some tokens
- corrected tokens used in tokens database
2025-04-01 13:58:05 +04:00
ssk97
969ffa1c98
FDN New Combat Rules (#13279)
* Remove all combat ordering code

* Use MultiAmount division for damage

* Remove damage selection division skipping in tests

* Fix Banding, Multi-block, add tests

* Fix test

* Fix random iteration order, fix new tests

* Add more info to choose dialog, make MultiAmountType class instead of enum

* Don't prompt for trample damage assignment if none possible

* Mark "Assign default damage" on tests, minor other test improvements
2025-03-30 14:42:05 -07:00
PurpleCrowbar
2286dd2bbd Fix Great Arashin City 2025-03-29 01:32:37 +00:00
PurpleCrowbar
fcbf22380e [TDM] Implement Teeming Dragonstorm 2025-03-29 01:16:21 +00:00
Evan Kranzler
ff3174877a
Remove gold from ObjectColor (#13470)
* remove gold

* rework Sword of Dungeons and Dragons, add comments about color

* rework Call to Arms, most common color condition
2025-03-28 10:12:01 -04:00
theelk801
51b7f93466 [TDM] Implement Dragonbroods' Relic 2025-03-27 18:54:17 -04:00