Commit graph

2202 commits

Author SHA1 Message Date
xenohedron
ea843c1bb9 remove unnecessary stringbuilder usage 2024-03-29 00:48:43 -04:00
ssk97
d886b3e450
[WHO] Implement 4 cards, create generic EachOpponentPermanentTargetsAdjuster (#11886)
* Implement Bigger on the Inside
* implement Reverse the Polarity
* Implement Sontaran General
* Implement Everything Comes to Dust
2024-03-29 01:32:38 +04:00
skiwkr
8f6b3e0faf
[WHO] Implement Amy Pond and Rory Williams (#11929)
* [WHO] Implement Amy Pond 

* [WHO] Implement Rory Williams

* Modified ExileSpellWithTimeCountersEffect to include the ability to give the card suspend, simplified Epochrasite

* adjustments

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2024-03-27 23:30:10 -04:00
xenohedron
ad63362c33
fix #9877 (Disorder in the Court) (#11987) 2024-03-23 17:17:50 -04:00
xenohedron
40b55f7a59 fix text gen typo 2024-03-23 01:08:58 -04:00
xenohedron
5df392af64
fix face-down creature spells cost reduction to include disguise (#11962) 2024-03-18 23:09:52 -04:00
xenohedron
d5295b0de3
Improve handling of abilities that let you cast spells from not hand zone once per turn (#11946)
* fix name of existing test

* adjust class name

* generate text

* use common class for Danitha

* add test

* update Gisa and Geralf

* rework Cemetery Illuminator, add test

* simplify effects allowing play from top of library

* simplify common classes which were bloated to support a single card

* simplify another

* remove unused import from test

* rework to check spell ability

* add more test cases

* add test cases

* add failing test case

* common watcher and hint for "once each turn, you may cast..."

* fix Assemble the Players to check spell ability, add test

* apply same improvements to Johann, Apprentice Sorcerer
2024-03-18 23:09:31 -04:00
ssk97
b9bfe2ba48
Megamorph abilities - fixed that face down creatures show megamorph instead morph status (#11957)
* Megamorph should appear as if it were Morph

* review comment
2024-03-18 03:58:02 +04:00
Cameron Merkel
a7f808afb6
Implement [MKM] Connecting the Dots; [PIP] Expert-Level Safe; related refactoring (#11922)
* Switch to common class for exiling top cards of your library

* Replace some custom classes with ReturnFromExileForSourceEffect; text-gen additions to that Effect

* Knowledge Vault: add tap cost to 1st ability, fix text on 3rd ability; Petradon: remove unused import

* [MKM] Implement Connecting the Dots

* [PIP] Implement Expert-Level Safe

* Set staticText in constructor

* Use {this} in Expert-Level Safe text

* Use createObjectRealtedWindowTitle for exile names

* Remove unnecessary field
2024-03-11 00:16:42 -04:00
PurpleCrowbar
e5759bbd9e
[PH17] Implement Inzerva, Master of Insights (#11774)
* Remove superfluous code from fateseal effect
2024-03-07 19:02:52 -05:00
xenohedron
9893032a36
rework Ghastly Conscription and Jeskai Infiltrator to common manifest code (#11898) 2024-03-03 21:16:46 -05:00
xenohedron
bce44f9cb9 fix some text 2024-03-03 21:03:27 -05:00
Oleg Agafonov
11ddfa0087 Manifest abilities - improved combo support for MDF, split and other cards (related to #10803, part of #11873) 2024-03-02 14:49:17 +04:00
Oleg Agafonov
6cd8359fbd merge fix 2024-03-02 12:09:53 +04:00
Oleg Agafonov
00c3efedcf refactor: improved Manifest effects to use shared code, added docs, todos and tests for all simple usages (part of #11873) 2024-03-02 12:01:05 +04:00
Oleg Agafonov
55f1d36695 game: improved visible rules of face down cards, removed visible face up cost (part of #10653, #11884) 2024-03-01 16:47:59 +04:00
Oleg Agafonov
9ea3356b77 [WHO] implemented Disguise ability (new face down type, ability and token image, #10653) 2024-03-01 16:47:59 +04:00
PurpleCrowbar
c39c8be9b6 Fix investigate effect text 2024-03-01 00:11:30 +00:00
Oleg Agafonov
c8a9a1a9db game: improved game logs for faced-down spells and exiled cards - now it support popup hint to view card/permanent (part of #11884, related to #11881, #8781) 2024-03-01 02:08:25 +04:00
Oleg Agafonov
e38a79f231
Face down images and cards rework (#11873)
Face down changes:
* GUI: added visible face down type and real card name for controller/owner (opponent can see it after game ends);
* GUI: added day/night button to view real card for controller/owner (opponent can see it after game ends);
* game: fixed that faced-down card can render symbols, abilities and other hidden data from a real card;
* images: added image support for normal faced-down cards;
* images: added image support for morph and megamorph faced-down cards;
* images: added image support for foretell faced-down cards;

Other changes:
* images: fixed missing tokens from DDD set;
* images: no more client restart to apply newly downloaded images or render settings;
* images: improved backface image quality (use main menu -> symbols to download it);
2024-02-29 01:14:54 +04:00
PurpleCrowbar
0d11a898fc
refactor: GainAbilityControlledSpellsEffect to enforce nonland card filter (#11871) 2024-02-27 22:42:52 -05:00
PurpleCrowbar
3486c57364
[MKC] Implement Printlifter Ooze (#11865) 2024-02-27 22:29:36 +00:00
PurpleCrowbar
ddcd54c0df
[BLB] Implement Byrke, Long Ear of the Law (#11860)
New common class DoubleCountersTargetEffect
2024-02-26 00:12:14 -05:00
Cameron Merkel
4e24ef2e47
[MKM] Implement Flourishing Bloom-Kin and move Cultivate-like searches to common class (#11837)
* Move Cultivate search effect to common class

* [MKM] Implement Flourishing Bloom-Kin

* Use TargetCardInLibrary, minor changes to improve readability

* Announce cards going to hand
2024-02-24 02:03:29 -05:00
xenohedron
f27a0c8b9a fix #11832 (The Enigma Jewel) 2024-02-23 01:36:48 -05:00
xenohedron
4d75402e6d null safety check 2024-02-21 01:04:57 -05:00
Oleg Agafonov
ad8e7daf97 refactor: improved card info 2024-02-18 22:40:30 +04:00
Oleg Agafonov
46d751f996 refactor: improved usage of target pointers 2024-02-18 15:38:53 +04:00
Oleg Agafonov
78612ddc91 multiple changes:
* refactor: improved target pointer init code and logic, added docs and runtime checks;
* game: fixed miss or wrong init calls in some continuous effects;
* game: fixed wrong usage of target pointers (miss copy code, miss npe checks);
2024-02-18 15:05:05 +04:00
xenohedron
ead385a03b fix #11811 (Mob Rule) with new common class to handle logic 2024-02-18 00:32:44 -05:00
xenohedron
d6e7ff6dad new TargetPlayerGainControlSourceEffect
rework Drooling Ogre and others to use it
2024-02-17 22:31:24 -05:00
PurpleCrowbar
63c65680c8 [MKC] Implement Merchant of Truth 2024-02-17 19:29:08 +00:00
Oleg Agafonov
229e8d3075 game engine, tests and other fixes:
tests: fixed wrong permanent structure for battlefield cards (addCard command);
tests: added docs and additional runtime checks;
game: Modal double-faced cards - improved support, no more other side effects on battlefield;
game: Copy abilities - improved stability and cards support;
game: Player under control - improved stability and related cards support (possible NPE errors, additional runtime checks);
server: fixed bloated logs with game timer;
AI: fixed wrong timer in computer games;
2024-02-17 19:35:44 +04:00
xenohedron
824e4c6b7a
fix some inner classes (#11798)
* make inner class static

* rework to remove inner class

* static filter cleanup

* ManaCostsImpl<>

* fix copy constructor

* new TargetPlayerGainControlTargetPermanentEffect

* make some inner classes no longer inner classes
2024-02-16 22:37:30 -05:00
xenohedron
b736f76322 adjust choose message 2024-02-14 22:22:54 -05:00
xenohedron
16a8efa7ea text fixes 2024-02-09 23:26:24 -05:00
xenohedron
8277de894a simplify ReturnFromGraveyardToBattlefieldWithCounterTargetEffect 2024-02-05 22:09:04 -05:00
xenohedron
d5a239526a simplify Pyrrhic Revival and remove unused param
related to #10626
2024-02-05 22:09:04 -05:00
xenohedron
4968f0b18c cleanup BecomesColorTargetEffect
add option to retain color
2024-02-05 22:09:03 -05:00
xenohedron
cc6d49074f remove extraneous license headers 2024-02-05 22:09:03 -05:00
xenohedron
2030dcf169 minor cleanup 2024-02-04 13:08:19 -05:00
xenohedron
f398368c96 refactor: remaining copy() for target pointer from #11743 2024-02-03 16:29:45 -05:00
xenohedron
6cf05a554c
refactor: use copy() for targetPointer (#11751) 2024-02-03 10:21:16 +04:00
xenohedron
b8c78cceec text fixes 2024-02-02 23:13:52 -05:00
Evan Kranzler
99c2ffa231
Implementing "collect evidence" mechanic (#11671)
* [MKM] Implement Axebane Ferox

* add exile to cost, fix text

* add targeting message copied from crew ability

* [MKM] Implement Forensic Researcher

* [MKM] Implement Izoni, Center of the Web

* implement requested changes

* merge fix

* [MKM] Implement Sample Collector

* [MKM] Implement Evidence Examiner

* [MKM] Implement Surveillance Monitor

* [MKM] Implement Vitu-Ghazi Inspector

* [MKM] Implement Crimestopper Sprite

* [MKM] Implement Urgent Necropsy

* [MKM] Implement Analyze the Pollen

* implement requested changes

* add can pay cost check to counter unless pays effect

* fix test failure

* add tests

* fix prompt message
2024-01-27 20:26:14 -05:00
xenohedron
645b79d07e fix typo 2024-01-26 22:00:50 -05:00
xenohedron
1a7edda03d new common class for life drain effects
"Each opponent loses X life. You gain life equal to the life lost this way."
2024-01-26 21:41:30 -05:00
xenohedron
c4aa812862 text fixes 2024-01-26 21:02:52 -05:00
xenohedron
814297c83c adjust MillThenPutInHandEffect
- use standard optional param rather than inverted "mandatory"
- add doc comments
- improve text gen

refactor Tetzin, Gnome Champion to use common class
2024-01-26 20:48:40 -05:00
Cameron Merkel
9f4ec75c3b
[CLU] Implement Rope (#11709)
* [CLU] Implement Rope

* Use ClueAbility

* Move CantBeBlockedByMoreThanOneAttachedEffect to common class with minor changes
2024-01-26 19:47:58 -05:00