Commit graph

2046 commits

Author SHA1 Message Date
xenohedron
6155f2d403 remove DamageDoneWatcher from default watchers 2023-11-30 00:59:21 -05:00
xenohedron
c164d70135 remove PlayersAttackedThisTurnWatcher from default watchers 2023-11-30 00:56:32 -05:00
xenohedron
1f764515f6 merge MorbidWatcher with CreaturesDiedWatcher 2023-11-30 00:11:10 -05:00
xenohedron
1ac4fe4e4a add doc comments for usage of default watchers 2023-11-29 20:57:12 -05:00
xenohedron
cd439ab8c8 remove another game default watcher with one usage 2023-11-29 20:40:57 -05:00
xenohedron
f801c9851e move watchers used only in Arboria effect 2023-11-29 20:37:47 -05:00
xenohedron
395d858056 text fix 2023-11-28 17:28:38 -05:00
xenohedron
05e2cf11e7
refactor: replacement effects don't use apply method now (#11484) 2023-11-28 11:17:28 +04:00
Oleg Agafonov
99cbddb8b8
Merge pull request #11431 from Susucre/lci-mana-tracking
[LCI] Implement Thousand Moons Smithy // Barracks of the Thousand and Brass's Tunnel-Grinder // Tecutlan, the Searing Rift
2023-11-25 17:13:54 +03:00
Oleg Agafonov
53add71826 Improved network stability and other related fixes:
* server: fixed that a critical errors ignored in user commands threads (now it will be added to the logs);
* network: fixed frozen user responses in some use cases;
* network: fixed accidental and incorrect user responses (only latest response will be used now);
* network: improved freeze logs, added problem method name and code's line number;
* cheats: removed outdated deck and card load logic (only init.txt commands supports now);
* cheats: fixed wrong priority after add card dialog (closes #11437);
* cheats: improved stability and random errors on cheat executes (related to #11437);
* docs: added details on network and thread logic, human feedback life cycle, etc (see HumanPlayer, ThreadExecutorImpl);
2023-11-24 21:22:16 +04:00
Oleg Agafonov
75958e3710 refactor: improved and reorganized client-server api, added additional logs, fixed miss admin checks for some commands 2023-11-23 09:12:02 +04:00
ssk97
e43e918c67
Conditional mana - fixed that some mana cant be used for paying “counter unless” cost and other things (#11447)
* Add tests for conditional mana usage with soft counterspells

* Fix "to cast" conditions on common ManaCondition classes

* Add fix to all remaining ManaCondition classes

* SimpleActivatedAbilityConditionalMana is tested to pay for a soft counterspell activated ability

* Remove now-unused imports
2023-11-23 01:37:45 +04:00
ssk97
2cc9957753
Costs Tag Tracking part 4: Convoke (#11446)
* Switch Convoke to using costs tag system

* Add Convoke copy/clone tests

* update author name on sufficiently changed files

* Remove now-unused CONVOKED event
2023-11-23 01:31:56 +04:00
xenohedron
4977fea307
Merge pull request #11417 from ssk97/TagTracking3_KeywordAbilities
Costs Tag Tracking part 3: Most keyword abilities
2023-11-20 21:28:40 -05:00
Susucre
f45c9e8ee9 [LCI] Implement Thousand Moons Smithy // Barracks of the Thousand 2023-11-19 17:54:57 +01:00
Oleg Agafonov
74862c83b2 Merge fix 2023-11-19 19:28:04 +04:00
Oleg Agafonov
27c9543f62 The Ring Emblem - fixed not working 3rd effect with blocker sacrifice (closes #11425), added docs and usage example for BLOCKER_DECLARED and CREATURE_BLOCKED game events 2023-11-19 19:16:55 +04:00
xenohedron
f4920b60ed text fixes 2023-11-19 00:09:35 -05:00
Steven Knipe
660288dfd7 Use generics to ensure the correct class types stored inside the costs tags. 2023-11-17 02:37:06 -08:00
ssk97
bea33c7493
Costs Tag Tracking part 2: Tag system and X values, reworked deep copy code (#11406)
* Implement Costs Tag Map system

* Use Costs Tag Map system to store X value for spells, abilities, and resolving permanents

* Store Bestow without target's tags
Change functions for getting tags and storing the tags of a new permanent

* Create and use deep copy function in CardUtil, add Copyable<T> to many classes

* Fix Hall Of the Bandit Lord infinite loop

* Add additional comments

* Don't store null/empty costs tags maps (saves memory)

* Fix two more Watchers with Ability variable

* Add check for exact collection types during deep copy

* Use generics instead of pure type erasure during deep copy

* convert more code to using deep copy helper, everything use Object copier, add EnumMap

* fix documentation

* Don't need the separate null checks anymore (handled in deepCopyObject)

* Minor cleanup
2023-11-16 23:12:32 +04:00
ssk97
ec4c79e0e0
Fix copying subabilities to no longer duplicate them (#11399)
* Fix Subability copy bug (fix #10526 )

* Cards which copy abilities of other cards should not copy subabilities.

* Enable previously-failing tests

* Find more addAbility that should be done without subabilities

* Add documentation to addAbility function

* Add warning about not using basic addAbility when copying from a source

* Invert withSubabilities to fromExistingObject
2023-11-12 19:57:39 -05:00
xenohedron
d937f7279e fix Contested Game Ball 2023-11-09 22:05:22 -05:00
xenohedron
933d694b08 implement [LCI] Market Gnome 2023-11-09 21:42:57 -05:00
xenohedron
ded7eeeaa8 align DISCOVERED event to naming convention
no need for custom event class
2023-11-09 20:44:52 -05:00
Oleg Agafonov
d6c858ecaf performance: added day/night performance test for transform ability (disabled by default, see DayNightTest, related to #11285), added day/night rules ref 2023-11-07 01:25:15 +04:00
Oleg Agafonov
dfbd6627e5 game: fixed miss watchers from second side of transformable cards (closes #11329); 2023-11-06 10:40:05 +04:00
xenohedron
5275c87a41 implement [LCI] Twists and Turns
expand explore tests
2023-11-01 23:28:07 -04:00
Evan Kranzler
595955a3cc
Add finality counters (#11379)
* [LCI] Implement Soulcoil Viper

* add finality counter test

* fix bug, add extra test

* [LCI] Implement Uchbenbak, the Great Mistake
2023-11-01 22:08:57 -04:00
Susucre
bc335b949b [LCI] Implement Curator of Sun's Creation 2023-11-01 20:12:49 +01:00
Susucre
726f72dd12 [LCI] Implement Corpses of the Lost 2023-11-01 15:44:59 +01:00
xenohedron
ebf71941a9
cleanup EntersBattlefieldAllTriggeredAbility and subclasses (#11372)
* comment out rule override to use generated text instead

* new ETB Opponent trigger class

* text improvements

* update ETB cast trigger

* remove controlledtext parameter

* more text improvements

* more fixes

* lots of other fixes

* most of the remaining fixes

* fix halana text

* fix smoke shroud text

* improve text gen

* remove rule param from constructors

* minor adjustments

* whenever a player puts

* final fixes

* standardize when/whenever phrase generation
2023-10-31 21:00:45 -04:00
theelk801
1388972d4c [LCI] Implement Nicanzil, Current Conductor 2023-10-30 21:16:44 -04:00
PurpleCrowbar
30b1ef5491
[WHO] Implement The Master, Multiplied (#11356) 2023-10-29 21:42:02 +00:00
Susucre
0c485ec593
[LCI] Implement The Millennium Calendar (#11359)
new UNTAPPED_BATCH event.
2023-10-29 12:43:24 +01:00
xenohedron
ad66b91642 fix #11353 (InvestigateTargetEffect)
add some test cases
2023-10-28 16:54:27 -04:00
xenohedron
9733786e5d add GameEvent.EventType.EXPLORE
add tests for explore multiple times
2023-10-28 14:43:25 -04:00
Susucre
a681325f66 [LCI] Implement Master's Guide-Mural 2023-10-28 18:46:53 +02:00
Susucre
bcd8687285 [LCI] Implement Poetic Ingenuity 2023-10-28 18:46:53 +02:00
theelk801
fdb309c5f3 [LCI] Implement Broodrage Mycoid 2023-10-28 10:31:10 -04:00
Susucre
c1e6748470 [LCI] Implement Palani's Hatcher 2023-10-27 18:15:02 +02:00
Susucre
b6cedee854 [LCI] Implement Ojer Taq, Deepest Foundation 2023-10-26 19:49:29 +02:00
Susucre
27b8d3e198
[LCI] Implement Deeproot Pilgrimage (#11350) 2023-10-26 18:06:10 +02:00
Susucre
1c4b35baa8 [LCI] Implement Vito, Fanatic of Aclazotz 2023-10-26 12:50:39 +02:00
theelk801
993cc44f69 [LCI] Implement Waterwind Scout 2023-10-24 20:39:08 -04:00
Susucre
d440cf5b08
[LCI] Implement Kellan, Daring Traveler (#11332)
Also adds Map Token, a new Token with implicit rules:
> {1}, {T}, sacrifice {this}: target creature you control explores. Activate only as a sorcery.
2023-10-24 19:36:16 +02:00
Susucre
5996cfbce2
[MIR] Implement Teferi's Imp (#11326) 2023-10-22 14:34:45 +02:00
Susucre
1907f55583
[LCI] Implement Huatli, Poet of Unity (#11331) 2023-10-22 14:34:12 +02:00
Susucre
49093873c2 [WHO] Implement Dinosaurs on a Spaceship 2023-10-22 14:16:26 +02:00
Oleg Agafonov
c148e2f5d7 Prismatic Piper and same cards - fixed game error on disconnected player before game begin 2023-10-21 17:41:41 +04:00
Susucre
a37fc0589a
[LCI] Implement The Skullspore Nexus (#11327) 2023-10-21 15:26:38 +02:00