Commit graph

209 commits

Author SHA1 Message Date
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
6aaaa8cb46 GUI: improved main and battlefield menus (related to #11533):
- main menu: better naming for deck editor;
- battlefield menu: added deck view for computer players, better naming;
- network: improved experimental connection;
2023-12-09 15:20:29 +04:00
Oleg Agafonov
960e896903
Network upgrade and new reconnection mode (#11527)
Network upgrade and new reconnection mode:
* users can disconnect or close app without game progress loose now;
* disconnect dialog will show active tables stats and additional options;
* all active tables will be restored on reconnect (tables, tourneys, games, drafts, sideboarding, constructing);
* user must use same server and username on next connection;
* there are few minutes for reconnect until server kick off a disconnected player from all player's tables (concede/loose);
* now you can safety reconnect after IP change (after proxy/vpn/wifi/router restart);

Other improvements and fixes:
* gui: main menu - improved switch panel button, added stats about current tables/panels;
* gui: improved data sync and updates (fixes many use cases with empty battlefield, not started games/drafts/tourneys, not updatable drafts, etc);
* gui: improved stability on game updates (fixes some random errors related to wrong threads);
* server: fixed miss messages about player's disconnection problems for other players in the chat;
* refactor: simplified and improved connection and network related code, deleted outdated code, added docs;
* tests: improved load test to support lands only set for more stable performance/network testing (set TEST_AI_RANDOM_DECK_SETS = PELP and run test_TwoAIPlayGame_Multiple);
2023-12-07 20:56:52 +04:00
Oleg Agafonov
e534497834 GUI: hand zone - fixed wrong dragging effect while click on card, improved dragging animation, fixed wrong click if user return card to the original place 2023-11-30 09:21:53 +04:00
Oleg Agafonov
01dd8c33ba gui: fixed possible game error with player timer on client side 2023-11-28 21:48:41 +04:00
Oleg Agafonov
d1f9e9cc90 Improved stability and other related fixes:
* server: added limit to max chat message (related to #11285);
* gui: fixed possible error after auto-submit deck;
* gui: fixed possible error after end game dialog;
* refactor: other code improves;
2023-11-25 12:29:54 +04: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
tirth1
83b5511d60 Refactored attemptToFixGame method inside GameController. 2023-11-15 19:52:48 -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
Alexander Novotny
a36a7d9b7f
[LTR] Add Goldberry, River-Daughter (#10524)
* Added Goldberry

* Slight optimizaztion

* Happy Path Test

* More unhappy tests

* Sanity check for Goldberry's counter choices

* Updated player.getMultiAmount to support individual constraints

* Some cleanup

Also modified ResourcefulDefense to use new multi amount api

* Updated logging

* Added hint for number of counters

* Fixed issue with Resourceful Defense

* Improvements to defaults

Default list will properly make sure to stay within individual maximums
If a player is asked for a choice that isn't actually a choice because each choice's min and max are equal, instead the default response is immediately returned. This helps with situations like moving a counter off of Goldberry when she only has one counter on her.

* -1/-1 Counter test

* Fixed issue with -1/-1 counters

* Adjusted dialog to properly enforce constraints
2023-07-28 21:29:40 -04:00
Oleg Agafonov
6529ead72f refactor: simplified extra turn code, fixed NPE error on usage (Alchemist's Gambit) 2023-06-30 06:39:01 +04:00
Oleg Agafonov
5c705a92a3 Cheats: added error dialog on wrong cheat command, added chat message about cheat try; 2023-05-09 00:22:00 +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
DeepCrimson
de9fcfc7ee
Refactor: Fix Spelling of userRequestingRollback (#9307) 2022-07-22 23:06:22 -04:00
DeepCrimson
4546623fb6
Refactor: Fix spelling of DENY_PERMISSION_TO_ROLLBACK_TURN (#9114) 2022-06-16 22:16:03 -04:00
Oleg Agafonov
46081d9185 GUI related improves:
* GUI: fixed that choose triggers/piles dialog doesn't close correctly before cast mode choose (#8225);
* GUI: fixed that some choose dialogs doesn't update battlefield state (example: choose amount, choose mana);
* Game: fixed duplicated json logs at the game's end;
2021-09-20 02:17:22 +04:00
Oleg Agafonov
d41ccd11bc Game: fixed empty range error on game startup 2021-07-24 05:36:56 +04:00
Oleg Agafonov
28473c7bd0 * GUI: added popup menu to view player's outside/sideboard at any time (allows to view only own or computer's sideboards); 2021-07-21 13:44:35 +04:00
Daniel Bomar
600cac6fc7
[READY FOR REVIEW] Implement a "multi-amount" dialog (#7528)
* Implemented chooseTargetAmount and new GUI dialog (distribute damage, distribute mana)
* Added tests and AI support;
* Test framework: added aliases support in TargetAmount dialogs;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-04-17 14:28:01 +04:00
Oleg Agafonov
81e0cc6403
Merge pull request #7158 from fburato/app-wiring-refactor
Application wiring refactor and externalise configuration path for server
2020-12-26 07:42:46 +01:00
Oleg Agafonov
a87c0b1ff6 Fixed potentially rollback errors with missing game data (#7273); 2020-12-24 23:43:53 +04: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
a95e92455c Fixed NPE on freeze fix in non started games 2020-09-18 22:00:11 +04:00
Oleg Agafonov
adbe84c540 Improved freeze checks and canRespond/isInGame usage 2020-07-01 13:48:22 +04:00
LevelX2
b0ad0126ca * Phase info added to the /Fix command. Some code cleanup. 2020-06-05 10:24:29 +02:00
Oleg Agafonov
2e73f9d1c5 * UI: added turn number and step info in game logs 2020-02-28 20:27:07 +04:00
Oleg Agafonov
d202df1649 Code cleanup 2020-02-21 19:34:04 +04:00
Oleg Agafonov
459524b565 * Game: improved forced join on connection problem (player must leave game, more info in join message); 2020-02-21 12:41:20 +04:00
Oleg Agafonov
58d7a96031 * Game: improved fix command (more info and fixes);
* Game: improved game startup message (more info about private messages and players stats);
2020-02-21 12:10:54 +04:00
Oleg Agafonov
f4a0c70cf3 Server: improved ping info (added last activity time) 2020-02-01 10:49:00 +04:00
Oleg Agafonov
2079065af3 * Server: added /pings chat command to show players and watchers ping info; 2020-01-31 22:30:31 +04:00
Oleg Agafonov
56c0dc485c Return old working version of force join (join all the time) 2020-01-18 09:52:07 +04:00
Oleg Agafonov
ce60a9d75b * UI: choose ability to play improves (see 8add25fa12) 2020-01-18 08:02:31 +04:00
Oleg Agafonov
8add25fa12 * UI: choose modes dialog improves:
* Added hotkeys to select options (1-9 for choice, SPACE/ENTER for done, ESC for cancel);
 * "Up to" modes choose dialog - added "done" button in dialog;
 * "Up to" modes choose dialog - fixed that user can't cancel if already selected one mode;
 * Added extra info about source object, selected and remaining modes to select, ability number for hotkey;
 * Fixed that mode choose dialog doesn't close on cancel (#6199);
2020-01-18 06:30:44 +04:00
Oleg Agafonov
4eacadb9f1 Server: added fix command call result to logs; 2020-01-15 07:22:36 +04:00
Patrick Hulin
1c9cd592bd Send message to client instead of forcing rejoin if player is still connected. 2020-01-09 23:33:38 -05:00
Oleg Agafonov
6ce1e973f3 Additional improves to #6150 2020-01-07 12:01:34 +04:00
Patrick Hulin
dda8c904b6 Force-join players to a game if they haven't joined after 5 seconds.
This check has always occurred for disconnected players; expand it to all players.
2020-01-06 17:39:34 -05:00
Oleg Agafonov
d6f2b52f1e Merge fix 2020-01-03 19:06:21 +04:00
Oleg Agafonov
cc0679b6d3 Server: added logs about fix command usage; 2020-01-03 18:59:10 +04:00
Oleg Agafonov
335f046357 Server improves:
* improved /fix command to support disconnected/freezed players;
 * added chat messages about connection problem with opponents (checks players status every minute);
 * reduced timeout before remove disconnected player from waiting game dialog (from 4 to 2 minutes);
 * reduced timeout between client's pings (from 60 secs to 20 secs);
2019-12-31 03:23:10 +04:00
ssouders412
50bd6cbc32
More pronoun fixes 2019-12-06 15:17:44 -05:00
Ingmar Goudt
178da75e4d Sonar fixes 2019-07-09 21:57:55 +02:00
Oleg Agafonov
9a9b304fd5 * UI: improved hand request dialog (users can ask your hand once per game, reset it by re-activate button); 2019-05-28 13:46:29 +04:00
Oleg Agafonov
6206616af4 Added some comments and timeouts info 2019-04-22 15:58:32 +04:00
Oleg Agafonov
1ccd1c2f2d Fixed NPE error on "/FIX" chat command; 2019-03-11 20:34:22 +04:00
Ingmar Goudt
7c2f55eda0 couple of sonar fixes 2019-01-17 12:03:22 +01:00
Ingmar Goudt
7b4acbe386 clean up some null checks 2018-09-27 22:16:32 +02:00