Commit graph

3560 commits

Author SHA1 Message Date
Oleg Agafonov
e8e2f23284 server: improved server stability (#11285) and reworked triggers/playable logic (#8426):
* game: now all playable calculations done in game simulation, outside real game (no more freeze and ruined games by wrong Nyxbloom Ancient and other cards with wrong replacement dialog);
* game: fixed multiple problems with triggers (wrong order, duplicated calls or "too many mana" bugs, see #8426, #12087);
* tests: added data integrity checks for game's triggers (3 enabled and 3 disabled due current game engine logic);
2024-04-16 23:10:18 +04:00
Susucre
f68e435fc4 rework and test Phyrexian Ingester 2024-04-14 12:33:26 +02:00
Susucre
017286ed94
fix ContinuousEffect that access affectedObjectsSet before it is initialized (#12080) 2024-04-13 16:50:06 +02:00
Susucre
cce7f79d89 fix and test Lara Croft, Tomb Raider (#11945)
Fix #11945
2024-04-13 13:21:29 +02:00
Susucre
fc011ac7e0 fix Opposition Agent (#10576)
Fix #10576
2024-04-13 12:59:52 +02:00
Susucre
607d55f16b
[OTC] Implement 2 cards, refactor some exile effects ("Gonti-like") (#12118)
[OTC] Implement Gonti, Canny Acquisitor
[OTC] Implement Dream Thief's Bandana
2024-04-13 12:21:05 +02:00
Susucre
c77634c843
separate 'you may play'|'you may cast' AsThoughtEffect approuvers
Also, reworked Gonti, Lord of Luxury and checks it now works properly with Zoetic Cavern.
2024-04-13 12:10:53 +02:00
Susucre
72a2e32d1c
fix 514.3a, give player priority on cleanup when something happened (#12115) 2024-04-12 15:31:53 +02:00
Oleg Agafonov
367defd995 tests: added tests for non-stack delayed trigger and details docs about problem 2024-04-11 22:46:25 +04:00
Oleg Agafonov
7fa4648316 refactor: code clean 2024-04-11 22:46:25 +04:00
Susucre
8a29dcc735 fix Obeka, Splitter of Seconds (#12085)
Now adding BeginningPhases with all but Upkeep skipped.
Previously upkeep steps were added during combat phase, which was incorrect.

fix #12085
2024-04-11 13:24:56 +02:00
jimga150
50e8a3b530
[REX] Implement Blue, Loyal Raptor (#12099) 2024-04-11 00:37:18 -04:00
jimga150
40b1dcc526
Fix DestroyPlaneswalkerWhenDamagedTriggeredAbility (#12093) 2024-04-10 23:42:44 -04:00
Susucre
113630c1ab fix Deep Gnome Terramancer triggering out of extra lands played 2024-04-10 20:52:18 +02:00
Oleg Agafonov
c3862e7196 server: improved server stability after some memory overflow errors (card not found errors, related to #11285); 2024-04-10 22:35:48 +04:00
Oleg Agafonov
7817a5cac6 deck improves:
* gui: removed public deck hash info;
* gui: improved xmage dck-file - now it correctly load a card's amount (related to files from third party services);
* server: fixed wrong cheating warning on deck construction (closes #11877);
* refactor: removed outdated hash code and calculations;
* other: added docs, added multiple deck hash tests;
2024-04-10 22:18:07 +04:00
Susucre
fd0da67e46 [PIP] Implement Lumbering Megasloth 2024-04-09 22:34:01 +02:00
Susucre
8ba277236f [OTC] Implement Heartless Conscription 2024-04-09 20:57:22 +02:00
Susucre
db5dc89776 [OTC] Implement Smoldering Stagecoach 2024-04-09 20:57:22 +02:00
Susucre
69b480a150 [OTC] Implement Vihaan, Goldwaker 2024-04-09 18:46:33 +02:00
Susucre
9da91b51ea [OTC] Implement Savvy Trader 2024-04-06 18:52:08 +02:00
Susucre
b233fcf4d8 Consolidate, cleanup & test a few MayCastTargetCardEffect cards 2024-04-06 17:37:32 +02:00
Susucre
a86b629abe [OTC] Implement Smirking Spelljacker 2024-04-06 16:26:16 +02:00
Susucre
233e3f57c6 [OTC] Implement Dune Chanter 2024-04-06 14:45:04 +02:00
Susucre
e217b3d0d8 [OTC] Implement Cataclysmic Prospecting 2024-04-06 02:33:18 +02:00
Susucre
5dfe480a5e
[MKM] Implement Perimeter Enforcer & Projektor Inspector (#11719) 2024-04-05 23:55:18 +02:00
Susucre
6240d6ea0c Fix Court of Locthwain not allowing free cast of DFC (#12073) 2024-04-05 20:32:40 +02:00
Susucre
1ff8cf01cf [MKM] Implement Fugitive Codebreaker 2024-04-05 20:16:28 +02:00
Susucre
acf5f47fe7 [MKM] Implement Conspiracy Unraveler 2024-04-05 20:16:28 +02:00
Susucre
821b0d069f
Return to battlefield transfromed - fixed that it was able to return non transformable cards, fixed #12066 (#12072) 2024-04-05 20:51:34 +04:00
Susucre
8a6b39c912 Fix [NEO] Kairi, the Swirling Sky buggy targetting 2024-04-05 13:23:51 +02:00
Susucre
896423ad40 Fix Ojer Axonil not checking that you control the source (#12066) 2024-04-05 12:39:10 +02:00
Susucre
d317dd1307 Add test for Voja, Jaws of the Conclave 2024-04-05 12:13:01 +02:00
Susucre
2d7349a7bb Fix faulty logic in AddCounters effects amount computation.
When set with DynamicValue, and that value computes to 0,
the amount of counters added was incorrectly the Counters amount.
2024-04-05 11:53:19 +02:00
Susucre
d591a89495 [OTJ][BIG] Cleanup some card implementation 2024-04-05 11:53:12 +02:00
jimga150
525e013ebd
Fix damage triggers (#12033)
* Fix DealtDamageAttachedTriggeredAbility and update test

* Fix AegarTheFreezingFlameTriggeredAbility and add test

* fix enum reference for DealtDamageAttachedTriggeredAbility

* fix Pious Warrior

* Fix souls of the faultless

* fix Stuffy Doll

* Fix Vengeful Pharoah and add test

* fix Wall of Essence

* fix Wall of Souls

* fix Rite of Passage and add test

* incorporate simple fixes - these cards use no methods that aren't re-implemented in DamagedBatchForOnePermanentEvent

* fix Chandra's Spitfire

* fix Darien, King of Kjeldor

* fix Jace, Cunning Castaway

* fix Mindblade Render

* fix Popular Entertainer

* fix Swarmborn Giant

* fix The Raven's Warning

* fix War Elemental

* fix Wildfire Elemental

* make simple player damage trigger fixes

* Add isCombatDamage to DamagedBatchForOnePermanentEvent and utilize in trigger fixes

* fix Fall of Cair Andros

* fix Toralf, God of Fury

* optimize some imports
2024-04-04 22:16:44 -04:00
Susucre
62279bbe6a
[OTJ] Implement Satoru, the Infiltrator and Freestrider Commando (#12052) 2024-04-05 00:17:14 +02:00
Susucre
d1de8b8cd3
[OTJ] Implement Tinybones, the Pickpocket + refactor MayCastTargetThenExileEffect (#12040) 2024-04-05 00:16:53 +02:00
Susucre
3e75f93c20 [OTJ] Implement custom play booster generation
Much can be improved from there, but it is a rough
first implementation of a slot-based play booster.
2024-04-05 00:09:21 +02:00
ssk97
f5168e7c98
[MKM] Implement 3x cards (#12020)
* Agency Outfitter

* Bite Down on Crime

* Bubble Smuggler (and test for Hooded Hydra's similar ability)

* Frantic Scapegoat

* Immediate review comments, will investigate further Agency Outfitter improvements

* Remove Agency Outfitter, will be a separate PR

* Fix Scapegoat not losing suspected

* Fix import

* use ZoneChangeBatchEvent instead of ZoneChangeGroupEvent

* Move suspected check to checkInterveningIfClause
2024-04-04 16:21:25 -04:00
Evan Kranzler
f0307394e3
[OTJ] Implement Riku of Many Paths (#12060) 2024-04-04 11:12:26 -04:00
Susucre
39008586d0 [OTJ] Implement Kambal, Profiteering Mayor
This is slightly bugged due to effect creating different tokens
creating them not at the same time.

See Bestial Menace unit test & #10811 for more info
2024-04-03 21:45:28 +02:00
Susucre
0d090ed3f8 [OTJ] Implement Assimilation Aegis 2024-04-02 20:06:31 +02:00
Susucre
4bbdc3c543
[OTJ] Implement Fblthp, Lost on the Range (#12042) 2024-04-02 14:55:09 +02:00
Susucre
12e08411ec [OTJ] Implement Vraska, the Silencer 2024-04-01 22:22:03 +02:00
Susucre
86ca3673ff [OTJ] Implement Obeka, Splitter of Seconds 2024-04-01 19:54:59 +02:00
Susucre
569d693177
Refactor and test [AVR] Outwit & [OTJ] Ertha Jo, Frontier Mentor. (#12036) 2024-04-01 14:55:01 +02:00
theelk801
20865c4c3e [OTJ] add test for saddled this turn 2024-03-31 14:33:36 -04:00
Evan Kranzler
ba20e97b71
[OTJ] Implementing "spree" mechanic (#12018)
* [OTJ] Implement Unfortunate Accident

* fix errors

* a few more things

* [OTJ] Implement Three Steps Ahead

* [OTJ] Implement Caught in the Crossfire

* [OTJ] Implement Insatiable Avarice

* add test

* [OTJ] Implement Explosive Derailment

* [OTJ] Implement Requisition Raid

* [OTJ] Implement Rustler Rampage

* add comment to test

* [OTJ] Implement Metamorphic Blast

* [OTJ] Implement Final Showdown

* rework cost addition, add test

* move cost application to its own loop
2024-03-31 12:11:34 -04:00
Susucre
97ab8074b3
[OTJ] Implement Plot mechanic (+8 cards) (#12017)
[OTJ] Implement Aloe Alchemist
[OTJ] Implement Aven Interrupter
[OTJ] Implement Longhorn Shapshooter
[OTJ] Implement Kellan Joins Up
[OTJ] Implement Make Your Own Luck
[OTJ] Implement Jace Reawakened
[OTJ] Implement Lilah, Undefeated Slickshot
[OTJ] Implement Doc Aurlock, Grizzled Genius
2024-03-31 17:06:55 +02:00