Commit graph

462 commits

Author SHA1 Message Date
Susucre
bab07a421d
[LCI] Implement Starving Revenant (#11378) 2023-11-02 15:17:30 +01:00
Oleg Agafonov
b7ce9c80f0 refactor: improved ability's modes code (related to #11333) 2023-10-28 15:46:03 +04:00
Oleg Agafonov
d57a3c100d Performance: fixed server's big memory usage in long games and in big stack sizes (related to #11285, fixes #9302) 2023-10-14 15:54:10 +04:00
Oleg Agafonov
fe8b8e1def server: fixed npe error on load tests (miss buffer timer), code refactor 2023-10-11 14:15:15 +04:00
xenohedron
d7afa37893
Remove superfluous addManaCost method (#11288)
* no need to specify mana cost, just add cost

* handle all mana costs through addcost method only

* eliminate another constructor

* more constructor cleanup
2023-10-09 15:25:19 -04:00
xenohedron
9456650693
Merge pull request #11178 from ssk97/MorphRework_v2
Morph rework and check spell characteristics
2023-10-02 23:01:40 -04:00
Susucre
7c454fb24c
Rework AsThough handling to allow choosing/affecting a specific alternate cast (#11114)
* Rework AsThoughEffect

* some cleanup of MageIdentifer

* refactor ActivationStatus

* fix bolas's citadel

* fix a couple of the Alternative Cost being applied too broadly.

* fix Risen Executioneer

* allow cancellation of AsThough choice.

* fix One with the Multiverse

* cleanup cards needing their own MageIdentifier

* last couple of fixes

* apply reviews for cleaner code.

* some more cleanup
2023-10-02 18:42:54 -04:00
Steven Knipe
3f44e8e0e9 Remove dedicated land-morph special casing 2023-09-18 06:11:11 -07:00
Oleg Agafonov
4b3a19b4d5 refactor: improved target usage, replaced setNotTarget by withNotTarget 2023-09-07 05:35:54 +04:00
PurpleCrowbar
371eb87e0b Fix text of surveil window 2023-09-01 22:17:28 +01:00
arcox
2f0c1d84c5
Lint: fix 'declarations should use interfaces instead of classes' bugs (#11082) 2023-08-31 21:42:45 +04:00
Susucre
566f4dc7f7
[WOM] Implement (not yet official) Mosswood Dreadknight (#10792) 2023-08-28 18:27:28 -04:00
Alex Vasile
a2162ec3e7
Refactor: private fields and performance tweaks (#9625)
1a. Make `costs`, `manaCosts`, and `manaCostsToPay` private in `AbilityImpl` with access through getters/setters 
1b. fix cost adjuster for imprinted cards affected by the above

2a. Lazy instantiation for rarely used `data` field in `TargetPointerImpl`

3a. Pre-allocate certain array sizes in `Modes` and `CostsImpl`

4a. Make `manaTemplate` private in `BasicManaEffect`, copy when passing outside the class 
4b. Don't copy `manaTemplate` in copy constructor since it doesn't change 
4c. Add comments explaining copy usage for `manaTemplate` 
4d. Remove redundant variable assignment and make fields final 

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-08-27 17:58:19 -04:00
Susucre
eef8f508e4
[CMM] Implement Demon of Fate's Design (#10737)
* refactor SacrificeCostManaValue to be an enum.

* [CMM] Implement Demon of Fates Design

* Add Unit Tests, including one bug on alternative cost.

* fix alternativeCosts made from dynamicCost returning that they were not activated when paid.

* fix small issues, add hint

* cleanup tests and add a couple

* Capitalize enum instances

* Minor fixes

* simplify the ContinuousEffect

* use the ConditionPermanentHint made for the Demon

* fix text
2023-08-12 15:49:06 -04:00
Artemis Kearney
9ba0da00ff
Basic groundwork for extra decks (contraptions, attractions) (#10378)
* extra deck cards not counted in deck size

* extra deck handling in deckbuilder

* move responsibility for extraDeckCard boolean to CardImpl

* remove redundant field copy
2023-08-06 21:06:32 -04:00
Oleg Agafonov
3d3358cd05 game: turn modification improves:
- fixed miss phase changed events and logs in some use cases;
 - added source info in turn modification logs;
 - added game logs for take and lost control of the spell (example: Word of Command)
 - added game logs for skip step;
 - added game logs for extra step;
 - added game logs for skip phase;
2023-08-01 16:52:53 +04:00
Alexander Novotny
519b3988be
game timer: Add chess-style buffer time option (#10598)
* UI Changes

* Add new buffer time options

* Main functionality

* Final implementation

Also added player UI for when they are using their buffer time (timer turns green)
2023-07-28 22:05:21 -04:00
xenohedron
9e81362ea4
Add logic to PlayerImpl for protection effects when damage can't be prevented (#10652)
* add failing test

* Check against prevent damage event when damaging player

* Add back game log message
2023-07-27 00:23:27 -04:00
Susucre
d658bf2265
refactor: expose Player->incrementLandsPlayed for some custom effects. (#10632)
* Expose Player->incrementLandsPlayed for some custom effects.
* also expose resetLandsPlayed
2023-07-17 03:53:22 +04:00
xenohedron
8372c358b2
refactor: some code linting (#10624)
* remove obsolete check method
* code clean: PermanentImpl
* code clean: PlayerImpl
* protected constructors in CardImpl
2023-07-16 01:50:24 +04:00
Susucre
14235b6320
Rework Ring-bearer implementation. Add GUI + gamelogs. (#10596)
* Fix Ring-bearer choosing & add some GUI + logs

* use a ring svg in a separate gold panel

* use a fontawesome svg

* add a couple null checks, group icon with commander

* rework rinbearer logic according to review

* fix typo in game log

* small fixes
2023-07-12 19:40:09 -04:00
Alex Vasile
6b5d4abb69
Add documentation to Cards and CardsImpl (#9019)
* Added minor documentation and TODO questions

* Fixed typo

* Address one set of comments

* merge fix

* remove commented code

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-07-02 18:20:28 -04:00
Oleg Agafonov
94dfbdfed4 gui: fixed miss playable mark for emblems and other objects from command zone (example: momir emblem) 2023-06-17 17:32:02 +04:00
Evan Kranzler
60e488cf05
rename classes (#10383) 2023-05-17 18:49:30 -04:00
Oleg Agafonov
550d719498 Fixed NPE error in drafting and timeout 2023-05-09 16:54:22 +04:00
Evan Kranzler
3503513c4e
Implement The Ring Tempts You mechanic (#10320)
* remove skip

* initial implementation of the ring mechanic

* some changes

* rework ring-bearer choosing

* [LTR] Implement Call of the Ring

* update ring-bearer condition
2023-05-07 14:32:28 -04:00
Daniel Bomar
92b6d7a531
[BRO] Implemented Gix, Yawgmoth Praetor (#9765)
* [BRO] Implemented Gix, Yawgmoth Praetor

* Add missing TestPlayer, PlayerStub implementations
2023-04-23 11:49:52 -04:00
Oleg Agafonov
689b93d005 Refactor: improved choose cards method to use source param (fixed NPE like #10233, #9974 and other bugs with choose cards) 2023-04-21 11:02:57 +04:00
Oleg Agafonov
a15a0daa04 Fixed potential NPE errors in getPhase usage (fixed Berserker's Frenzy, etc) 2023-03-25 16:01:27 +04:00
Oleg Agafonov
a7480aeab1 * Game: fixed random sort order of choices in choose dialogs 2023-03-21 03:11:55 +04:00
PurpleCrowbar
03b82ff7ee Fix multiple cards not saying which revealed cards were chosen to put into hand. Closes #9949 2023-03-12 22:01:11 +00:00
theelk801
4acd7d6604 [ONE] Implement Bloated Contaminator 2023-01-14 14:34:24 -05:00
Evan Kranzler
4cb8466d07 [BRO] Implement The Temporal Anchor 2022-11-08 08:31:12 -05:00
Alex W. Jackson
a9cf4154e5 [DMC] Fix Historian's Boon. Remove unused and incorrectly-implemented EventType.ABILITY_TRIGGERED 2022-11-05 04:49:15 -04:00
Alex W. Jackson
7c1e823deb [ELD] Fix Once and Future. Remove unused Player.putInHand method 2022-10-20 00:51:54 -04:00
Evan Kranzler
58c55bf08c fix test failures 2022-10-15 11:21:40 -04:00
Evan Kranzler
fb11a59099 fix test failure 2022-10-15 10:56:39 -04:00
Evan Kranzler
09797d4cf6 rework effects which increase loyalty abilities (closes #9626) 2022-10-10 18:01:58 -04:00
Alex Vasile
55a6acba22
Refactor: Significant speed-up for ManaOptions (#9233) 2022-10-04 00:08:20 -04:00
Alex Vasile
b14af42280
[DMU] Karn's Sylex (#9507) 2022-09-17 22:37:56 -04:00
DeepCrimson
97b34e3129
Refactor: Remove Redundant Variable Assignment in getPlayableObjects (#9309) 2022-07-22 23:07:51 -04:00
Alex Vasile
484e6c20f1
Fixes to casting calculations (#9049) 2022-07-08 22:00:19 -04:00
Alex Vasile
96f6fbefc8
GUI: Autochoose targets if choice can be made (#9206) 2022-07-08 21:58:42 -04:00
Alex Vasile
69f9331d87
[AFC] Fix OneOrMoreDiceRolledTriggeredAbility to not trigger from Chaos Dragon (#9201) 2022-07-08 21:40:05 -04:00
DeepCrimson
545b7c143d
Refactor: Fix spelling (#9238) 2022-07-08 21:39:08 -04:00
DeepCrimson
f507a6605c
Refactor: Remove Unused triggerId variable (#9237) 2022-07-08 21:31:50 -04:00
DeepCrimson
882afbf8b5
Fix remaining raw unparameterized usages of ManaCostImpl 2022-06-16 14:53:44 -07:00
Evan Kranzler
e22648a385 [CLB] Implemented Zellix, Sanity Flayer 2022-05-31 18:06:29 -04:00
Evan Kranzler
cec8c54401 [SNC] Implemented Ziatora's Envoy 2022-04-24 17:20:57 -04:00
Evan Kranzler
0e3252d256
Implementing Blitz mechanic (WIP) (#8835)
* added blitz mechanic (mostly copy/paste of dash)

* renamed class

* reworked alt cost abilities, greatly reduced redundant code

* updated text generation

* removed all skips

* added test for blitz

* changed blitz implementation

* [SNC] Implemented Tenacious Underdog
2022-04-24 12:03:25 -04:00