Commit graph

194 commits

Author SHA1 Message Date
Oleg Agafonov
7916af0e52 server, refactor: added client side info about current table and parent table (tourney's sub-tables with matches); 2024-08-11 19:29:42 +04:00
Oleg Agafonov
e209ce1c97 server: fixed wrong cheater detection in some tourney sideboardings (closes #11877) 2024-06-11 00:30:00 +04:00
Oleg Agafonov
92b722d3ca server: fixed bloated logs about table owner's invalid deck 2024-04-17 12:27:41 +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
Oleg Agafonov
6ac2f44cc1 game, refactor: improved player related code, fixed miss reset fields between games like commanderIds (#11081, #11628) 2024-01-15 05:03:21 +04: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
Oleg Agafonov
36ccfb0a2a Performance: fixed memory leaks on each card viewer or draft open (10 Mb per call, related to #11285, fixes #9548) 2023-10-14 12:39:49 +04:00
Oleg Agafonov
10ccab3caa AI: fixed memory leaks on game's end without humans (4 Mb per game, related to #11285, #5023) 2023-10-12 06:28:01 +04:00
Artemis Kearney
41874b0b4b
new feature: Emblem Cards (#10498)
* new feature: Emblem Cards

Allows match/tournament creator to specify cards to give each player
emblem versions of (or just the starting player for symmetric effects).

Technical details:
- new UI for specifying emblem cards (.dck files)
  - available for all match/tournament types
- new class `EmblemOfCard`
- new method `copyWithZone` on `AbilityImpl` (used to make abilities
  work from command zone)
- new fields on `GameOptions` and `MatchOptions` for emblem cards
- emblems are granted after mulligans, before first turn (technically
  after Planechase starting plane creation)

* fixes

* defaults for emblem cards in match options (fixes quick game buttons)

* minor fixes

* use DeckCardInfo instead of Card for emblem cards options

* restore accessible parent properties

* fix images for card emblems

* look up cards in a way that preserves which art

* fix typos; make Emblem.sourceObject protected

* add descriptions to planechase and emblem cards

* fixes

* add some unit tests for known working cards

* fix author name

* add explanation comment

* fix up tests

* copyWithZone: no longer modifies zone for singleton abilities

* directly check for MageSingleton
2023-09-26 22:47:13 -04:00
Oleg Agafonov
5ded8468f7 * Game: fixed that server can close non started tables with one player by random (#8209); 2021-09-04 17:19:55 +04:00
Oleg Agafonov
e488997124 * Server: fixed that multiplayer game can be closed on "1x human + 1x AI" remain (see #6178); 2021-08-19 01:42:35 +04:00
Francesco Burato
6e3750d50a [app-wiring-refactor]: Apply review comments:
- Add reference to original library in `FluentBuilder`.
- Change `I<Name>` notation to `<Name>Impl` notation.
- Move error config to test resources
- Add comment with config instruction
- Add config to the documentation
2020-11-12 20:12:50 +00:00
Francesco Burato
d0c2135e17 [app-wiring-refactor]: Remove static initialisation
- Remove all enum static managers
- Introduce interfaces for the managers
- Define new application wiring class (`ManagerFactory`)
- Externalise the configuration
2020-11-12 20:12:48 +00:00
Oleg Agafonov
5831ba81fc
Merge pull request #7030 from BrunoChevalier/master
Additional fixes for pvs-studio report, see #7021 
* Rename BasicSaheekiSublimeArtificerTest.java to BasicSaheeliSublimeArtificerTest.java
* S3Uploader.java: Remove redundant null check
* Effects.java: remove redundant check. When in the else part, the lastRule already is guaranteed to not end on a dot
* TableController.java: change warning message when match == null to avoid nullpointer exception
* Reverted already fixed line from, see #7021
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2020-09-08 23:04:30 +02:00
Oleg Agafonov
cf640b734b * Server: added stats about correctly ended tourneys and games in news feed; 2020-09-04 02:46:30 +04:00
Bruno Chevalier
672b78982f TableController.java: change warning message when match == null to avoid nullpointer exception 2020-08-31 14:14:25 +02:00
Oleg Agafonov
e95b9f145c GUI: deck legality improves:
* Added partly valid status for deck legality panel (if all cards are fine but user must add more cards to complete, see #6854);
 * Improved legality errors sorting (important errors visible at the top now, e.g. commander's errors);
2020-08-03 02:03:54 +04:00
Oleg Agafonov
2e73f9d1c5 * UI: added turn number and step info in game logs 2020-02-28 20:27:07 +04:00
Oleg Agafonov
de4befb9c2 * Sideboarding: fixed that it possible to auto-submit 40 cards deck instead 60 in constructed formats (#5579);
Sideboarding: fixed that cheated deck with sideboard can be used instead lose the game;
2019-04-01 07:34:46 +04:00
Ingmar Goudt
50f28a2bf7 add some Java8 magic to the server 2019-01-19 09:31:50 +01:00
Oleg Agafonov
452b889fe7 Fixed some exceptions on slow servers; 2018-12-15 18:45:00 +04:00
Aaron Miller
5cd57199c7 Merge branch 'master' into add-minimum-rating-option 2018-09-29 19:15:46 -07:00
Aaron Miller
81c2a62250 Add "minimum rating" option to matches and tournaments 2018-09-29 19:14:39 -07:00
Ingmar Goudt
7b4acbe386 clean up some null checks 2018-09-27 22:16:32 +02:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
LevelX2
fcc6174e5e Some null exceptions checking and fixed some other minor problems. 2018-05-26 01:22:28 +02:00
spjspj
c8b741f0bf Continuing implementation of Planechase. 2018-04-12 00:07:24 +10:00
LevelX2
b073ce1c42 * Added to all toUpperCase/toLowerCase calls the Locale.ENGLISH to prevent problems with some languages (e.g. Turkish). Removed some unused import statements. (#4634). 2018-03-18 18:18:54 +01:00
LevelX2
7e5f4f580d * Fixed wrong user active check for table health. 2018-02-25 12:33:57 +01:00
LevelX2
89b6aeacd6 * Added a test related to #4539. 2018-02-20 16:16:26 +01:00
LevelX2
2f016c8ea6 Fixed some more exception and/or logging problems. 2018-01-27 13:19:20 +01:00
LevelX2
84fe04b92d Replaced exception handling of invalid deck submitting by a user message. 2017-09-01 20:05:26 +02:00
LevelX2
52897094b3 * Some chnages to chat, user and player handling. 2017-08-26 18:26:55 +02:00
LevelX2
d7ee6db923 Fixed condition for deck manipulation report. 2017-08-19 07:47:13 +02:00
LevelX2
fea9dfe8f8 Some more changes to the user handling. 2017-08-18 00:12:38 +02:00
LevelX2
4c33359fe2 * Some minor changes to logging and return code handling. 2017-07-23 11:06:23 +02:00
LevelX2
0fd72c3010 * Added check if the deck was modified during sideboarding. 2017-06-05 20:23:09 +02:00
Anders Åstrand
ad0507e739 Ban ignored users from watching
This commit bans ignored users from watching
games where the creator has them on their ignore list.
2017-05-29 21:36:42 +02:00
LevelX2
c085ea148a * Changed some logging messages. 2017-04-23 14:11:02 +02:00
ingmargoudt
8b44327312 wrong negation 2017-04-11 09:15:09 +02:00
ingmargoudt
211d433ea9 playertype, enum singleton 2017-04-02 22:09:20 +02:00
ingmargoudt
ff6c6405aa rewrites to optionals 2017-03-19 19:48:32 +01:00
ingmargoudt
234cfe9519 rewrote singleton to enum where applicable 2017-03-14 16:32:47 +01:00
spjspj
4681232d18 Refactor color restriction in edh... 2017-03-01 09:11:29 +11:00
spjspj
faee8fb298 Refactor color restriction in edh. Change to look at commander color identity. 2017-03-01 08:56:52 +11:00
vraskulin
eb58391fe2 Redundant StringBuilder creation. 2017-02-28 11:07:40 +03:00
ingmargoudt
afbf5ce2b6 Merge pull request #2891 from kubikrubikvkube/master
Nulls to optional. Also there was bug with AetherChaser
2017-02-27 17:51:35 +01:00
spjspj
aec46f366b Merge pull request #2894 from spjspj/master
Allow limiting a colour in edh
2017-02-27 23:35:57 +11:00
spjspj
5365f9cac5 Allow limiting a colour in edh 2017-02-27 23:33:58 +11:00
doncarton
5eaaa67d1e Nulls to optional. Also there was bug with AetherChaser "you may pay" was not set to optional 2017-02-26 15:15:54 +03:00