Commit graph

11537 commits

Author SHA1 Message Date
Jeff Wadsworth
58739cf2d6 Fixed #11623 2024-01-10 17:24:42 -06:00
Oleg Agafonov
72d6a7134d Merge fix 2024-01-08 23:28:17 +04:00
Oleg Agafonov
eedb9e6054 server, tests: improved game error and AI logs, added docs, added error stats in load test's result table (related to #11572); 2024-01-08 23:21:44 +04:00
PurpleCrowbar
19e829a959 Fix typo in creature types 2024-01-08 16:46:52 +00:00
Oleg Agafonov
b3c55555a1 tests: fixed error on load tests end (related to #11572), improved logs, improved session lifecycle on load tests;
tests: added additional test for Mana Maze and deep copy (related to #11572);
docs: added more info to network related code;
2024-01-08 04:14:27 +04:00
xenohedron
98a3d8b947
fix that Manamorphose can't be used to cast Imperiosaur (#11620) 2024-01-07 14:22:20 -05:00
xenohedron
5376e81d90 minor cleanup to ManaPool 2024-01-07 14:21:59 -05:00
xenohedron
c55be4b7c8 minor adjustment to Convoke ui 2024-01-07 14:21:59 -05:00
PurpleCrowbar
41bdd5258c Add LCI token images 2024-01-07 19:19:34 +00:00
xenohedron
906145bad6 fix error in FightTargetsEffect 2024-01-06 15:13:00 -05:00
jimga150
068f5db976
[PIP] Implement Mr. House, President and CEO (#11610)
* move Cybernetic Datasmith's robot token to RobotCantBlockToken since Mr. House has a more generic version

* Update tokens database
2024-01-06 15:09:14 -05:00
xenohedron
aa4d1654c7 fix unwanted null check in FightTargetsEffect 2024-01-06 15:05:14 -05:00
xenohedron
784a0f564b fix #11606 (PreventDamageToSourceEffect zcc check) 2024-01-06 14:57:56 -05:00
Oleg Agafonov
e79f562f4a server: improved logs for some use cases (related to #11572) 2024-01-05 23:13:20 +04:00
Oleg Agafonov
fac5f8c752 dev: removed magediag file, now game/tourney logs goes to default console/file (related to #11572) 2024-01-05 23:13:20 +04:00
xenohedron
518407be73 fix regression: Michiko Konda, Truth Seeker
missing a check in SourceDealsDamageToYouTriggeredAbility::checkTrigger

added test
2024-01-03 01:14:46 -05:00
xenohedron
0631521787 merge cleanup 2024-01-03 00:21:09 -05:00
xenohedron
248b78677c remove unused param from ProwlAbility 2024-01-02 19:23:16 -05:00
xenohedron
e6bd35eb77
refactor selecting cards from multiple zones (#11584)
* refactor selecting cards from multiple zones

fix MV <= controlled lands predicate

fix filter checks without source parameter

* fix test choice
2023-12-31 14:25:25 -05:00
jimga150
53d62c7f44
[LCC] Implement Pantlaza, Sun-Favored (#11590) 2023-12-31 14:24:55 -05:00
xenohedron
9b3ff32a33
Rework sacrifice effects to support "can't be sacrificed" (#11587)
* add TargetSacrifice and canBeSacrificed

* SacrificeTargetCost refactor, now uses TargetSacrifice, constructors simplified, subclasses aligned

* fix text errors introduced by refactor

* refactor SacrificeEffect, SacrificeAllEffect, SacrificeOpponentsEffect

* cleanup keyword abilities involving sacrifice

* fix a bunch of custom effect classes involving sacrifice

* fix test choices

* update Assault Suit implementation

* fix filter check arguments

* add documentation to refactored common classes

* [CLB] Implement Jon Irenicus, Shattered One

* implement "{this} can't be sacrificed"

* add tests for Assault Suit and Jon Irenicus

* refactor out PlayerToRightGainsControlOfSourceEffect

* implement [LTC] Hithlain Rope

* add choose hint to all TargetSacrifice

---------

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
Co-authored-by: PurpleCrowbar <26198472+PurpleCrowbar@users.noreply.github.com>
2023-12-31 14:10:37 -05:00
xenohedron
1bdacc6676
cleanup: CardsImpl and related (#11585)
* minor cleanup of unused params in ExileZone

* cleanup CardsImpl

standardize logic for different methods

remove unused ownerId param
2023-12-29 22:39:56 -05:00
xenohedron
062a9514fb
refactor: ReturnFromGraveyardAtRandomEffect (#11582) 2023-12-26 16:15:37 -05:00
ssk97
429043d7b5
[WHO] Implement Adipose Offspring (#11570)
* EmergeAbility take a string instead of a ManaCosts object

* Save Emerge's sacrificed creature MOR in a costs tag

* Implement Adipose Offspring

* Fix costs tag clearing while permanent still on the battlefield

* improved version of game.getPermanentOrLKIBattlefield with MageObjectReference

* Use correct Alien token

* cleanup imports

* merge fix
2023-12-26 15:22:43 -05:00
xenohedron
1737a0a9eb
Changeling - improved combo support for creature type triggers and changeling spells (example: Volo, Itinerant Scholar) (#11569) 2023-12-23 16:42:05 +04:00
Oleg Agafonov
9ad456239e GUI: stack - added card icon with targets info (announced and triggered targets, target choices); 2023-12-23 16:26:37 +04:00
Jeff Wadsworth
7adbf45258 Added Tarrian's Journal // The Tomb of Aclazotz 2023-12-23 00:01:59 -06:00
xenohedron
eec5c5b2e2
refactor: deduplicate combat damage steps (#11566) 2023-12-21 22:44:01 -05:00
xenohedron
66716a4314 cleanup usage of SubType from string 2023-12-21 22:07:16 -05:00
xenohedron
e449282c8f text fixes 2023-12-17 21:38:17 -05:00
Oleg Agafonov
d4a1e27a44 GUI: improved choose X or number dialog (added source ability and card hint support, added limits info);
game: choose X - added source ability info to game logs;
2023-12-18 01:22:14 +04:00
Oleg Agafonov
d97b034711 cheats: fixed broken emblem commands (example: emblem:Human:ElspethSunsChampionEmblem:1) 2023-12-16 02:25:03 +04:00
Oleg Agafonov
595b0e0070 fixed few errors like NPE 2023-12-15 16:51:12 +04:00
Oleg Agafonov
0dbd86fb58 Merge fix 2023-12-14 22:25:45 +04:00
Oleg Agafonov
10641f8d63 GUI: hand - added default card sorting on mulligan (lands > other > creatures; mana value, name); 2023-12-14 22:13:07 +04:00
arcox
4e1a2218b2
[LCC] Implement March of the Canonized (#11540) 2023-12-12 00:00:53 -05:00
xenohedron
5a6c5b01b9 Revert "text fix"
This reverts commit 3bc28d63c3.
2023-12-10 21:53:00 -05:00
ssk97
ec0166bf7f
[LCI] Implement Fabrication Foundry; Unstable Glyphbridge (#11521)
* First pass at Fabrication Foundry

* misc cleanup

* First pass at Unstable Glyphbridge/Sandswirl Wanderglyph

* Set up backside correctly

* Fix Unstable Bridge cast condition

* Improve Fabrication Foundry to use Crew-like hint

* Fix equality check

Tested, though only manually.

Alongside the direct card implementations, I also:

-   Fix Oaken Siren's mana to not be able to pay for soft counterspells from artifact sources
-   Change PlayersAttackedThisTurnWatcher to follow the rules better and to have a separate section for planeswalkers' controllers who were attacked (needed for Sandswirl Wanderglyph)
-   Removed an unused constructor in ExileTargetCost (though I didn't end up using that cost in the end)
-   minor cleanup in CrewAbility
2023-12-10 21:30:20 -05:00
xenohedron
3bc28d63c3 text fix 2023-12-10 21:28:46 -05:00
Oleg Agafonov
d5b582c1b3 images: fixed miss images for double faced tokens like Incubator/Phyrexian (closes #11535); 2023-12-10 15:59:27 +04:00
Oleg Agafonov
725a27d6ad Double faced tokens - fixed wrong abilities on the back side (example: Incubator/Phyrexian tokens with transform, fixes #10351); 2023-12-10 15:01:00 +04:00
Oleg Agafonov
00a7cc645d Copy abilities - fixed wrong copy of transformed tokens like Incubator/Phyrexian (related to #11535, #11307, #10801, #10263); 2023-12-10 14:49:47 +04:00
Oleg Agafonov
50fd029c3b tests: improved show playable abilities to print playable list instead unique (see showAvailableAbilities), added custom effect for transform tests (see addCustomEffect_TransformTarget); 2023-12-10 14:31:55 +04:00
xenohedron
3b603595a2 fix #11532 (Animist's Might) 2023-12-09 16:14:32 -05:00
PurpleCrowbar
1006115912 Add Incubator token images. Related to #11535 2023-12-09 21:12:14 +00:00
Oleg Agafonov
f5c47686ac server: fixed broken games with banned players (regression) 2023-12-09 18:28:21 +04:00
ssk97
6cd8649857
GUI: lobby - improved details info about match (#11438) 2023-12-09 16:35:09 +04:00
Oleg Agafonov
6aaaa8cb46 GUI: improved main and battlefield menus (related to #11533):
- main menu: better naming for deck editor;
- battlefield menu: added deck view for computer players, better naming;
- network: improved experimental connection;
2023-12-09 15:20:29 +04:00
Oleg Agafonov
960e896903
Network upgrade and new reconnection mode (#11527)
Network upgrade and new reconnection mode:
* users can disconnect or close app without game progress loose now;
* disconnect dialog will show active tables stats and additional options;
* all active tables will be restored on reconnect (tables, tourneys, games, drafts, sideboarding, constructing);
* user must use same server and username on next connection;
* there are few minutes for reconnect until server kick off a disconnected player from all player's tables (concede/loose);
* now you can safety reconnect after IP change (after proxy/vpn/wifi/router restart);

Other improvements and fixes:
* gui: main menu - improved switch panel button, added stats about current tables/panels;
* gui: improved data sync and updates (fixes many use cases with empty battlefield, not started games/drafts/tourneys, not updatable drafts, etc);
* gui: improved stability on game updates (fixes some random errors related to wrong threads);
* server: fixed miss messages about player's disconnection problems for other players in the chat;
* refactor: simplified and improved connection and network related code, deleted outdated code, added docs;
* tests: improved load test to support lands only set for more stable performance/network testing (set TEST_AI_RANDOM_DECK_SETS = PELP and run test_TwoAIPlayGame_Multiple);
2023-12-07 20:56:52 +04:00
xenohedron
9e1645a1bc text fixes 2023-12-06 23:14:58 -05:00