Commit Graph

21 Commits

Author SHA1 Message Date
evanpelle 02e35c3fca vote for winner (#1565)
## Description:

Have at least 2 clients and majority vote to decide a winner

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced

---------

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-08-13 00:59:10 -04:00
Tyler Hanavan 488188ff86 Fix the stale disconnected (Zzz) icon persisting when a client reconnects (#1631)
Fix the stale disconnected (Zzz) icon persisting when a client
reconnects

## Description:

Refer to issue #1630 

This change modifies the GameServer.addClient function to send the
mark_disconnected = false intent when a client that was previously
disconnected gets replaced by a newly joined client with the same
clientID. Under the old logic, this mark_disconnected = false intent is
not sent if the client was disconnected for longer than 60 seconds
before reconnecting.



https://github.com/user-attachments/assets/5e0ce1c3-9519-4f39-aa80-e46f1275649c

Left side browser (player with red tiles) is the disconnected client
that was disconnected at 00:14 game clock time. It reconnected around
03:56 game clock time.
Right side browser (player with green tiles) is the other client. Use
the game clock time from the right side for the live game clock time.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I have read and accepted the CLA agreement (only required once).

## Please put your Discord username so you can be contacted if a bug or
regression is found:

slyty

---------

Co-authored-by: Drills Kibo <59177241+drillskibo@users.noreply.github.com>
2025-08-01 04:24:15 +00:00
Aotumuri b71acdc993 Patterned territory (#786)
## Description:
This is meant to give players more customization options.
Permission handling hasn’t really been implemented yet.
## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aotumuri
2025-06-22 23:57:24 -04:00
Théodore Léon a4fffce7f3 Monitoring client connections (#941)
## Description:
Disconnected client detection :
If a client haven't send a ping to the server since more than 30 seconds
They will then be marked disconnected with a dedicated icon.
No action are yet taken, this allows for extensive in-game test before
adding the *consequences* of the player leaving the game.
I also added extensive unit tests, lessening the risk of regression for
the future.


![image](https://github.com/user-attachments/assets/884e5e99-15e8-4544-bd52-7524542cc82a)



## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:
theodoreleon.aetarax

---------

Co-authored-by: evanpelle <evanpelle@gmail.com>
2025-06-06 13:30:23 -07:00
Scott Anderson a02037ae1c Fix discord login issue (#1028)
Fixes #1016

## Description:

Fix the zod user schema validation to make roles optional. This was
causing a validation error when looking up the user's roles.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-06-03 19:33:35 -07:00
Scott Anderson 2a3240da1c Server role lookup (#954)
## Description:

- Validate that user tokens are accepted by the API server, in case of
token revoked / remote logout.
- Lookup user roles by their token.
- Sets the groundwork for validating custom flag codes, patterns, etc.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-30 09:10:00 -07:00
evanpelle 2b1f2dca6e remove player id from Schemas, fix archive bug (#907)
## Description:

Remove all references to playerID in the archive schema, since we
reference players by client id.
Also fixed the game not archiving bug, due to invalid reference.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

<DISCORD USERNAME>
2025-05-27 16:34:32 -07:00
Scott Anderson c39ffa91f9 Transition flag from null to undefined (#831)
## Description:

Replace `null` with `undefined` for player flags.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

---------

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-21 01:53:42 -04:00
Scott Anderson f8a052a6ce Client JWT authentication (#723)
## Description:

Send JWT to the game server for verification.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [ ] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

---------

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-05-12 11:51:40 -07:00
Evan 08c2c01dae bugfix: flags not showing in game 2025-04-06 10:27:52 -07:00
Evan 8b6895d745 add prettier import plugin 2025-03-31 13:09:27 -07:00
evanpelle ab3f4fbac1 All players must join game before spawn (#380)
## Description:
The server stores all players that have joined, and once the game starts
it sends a list of players to all clients. Players cannot join after the
game has started. Server now generated the PlayerID instead of the
client.

The is necessary for team mode, we need to know how who is playing the
game before it starts so we can properly assign teams based on clans.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

evan
2025-03-30 17:04:29 -07:00
evanpelle 33292aec5c feat: replay archived games, gamestate hash verification (#195)
create endpoint to load archived game. when joining game client first
checks if the game is active, if not it requests the game archive from
the server. the archive is sent to LocalServer to replay the game
locally. Every 10 ticks a hash is stored on the archive, and during
replay the LocalServer verifies this hash.
2025-03-09 14:24:39 -07:00
Evan e0938253df send game hash to server each second 2025-03-02 09:29:10 -08:00
Evan 4ee37323f9 format codebase with prettier 2025-02-01 12:05:11 -08:00
evanpelle 1417808c14 store user's persistent id in bigquery 2024-12-17 14:30:16 -08:00
Evan 722165c401 adding persistent id 2024-12-17 14:30:16 -08:00
Evan b8db74247f add heartbeats, better websocket disconnection handling 2024-12-07 08:54:09 -08:00
evanpelle 026a0cddbe use structed logging 2024-09-01 12:51:20 -07:00
evanpelle 332c2cfcac websocket reconnect on failure 2024-08-16 11:06:01 -07:00
evanpelle 05f55c490f First Commit 2024-08-04 19:51:23 -07:00