Commit Graph

51 Commits

Author SHA1 Message Date
Scott Anderson 70745faac4 Enable strictNullChecks, eqeqeq (#436)
## Description:

Improve type safety and runtime correctness by:
1. Enabling TypeScript's
[strictNullChecks](https://www.typescriptlang.org/tsconfig/#strictNullChecks)
compiler option.
2. Replacing all loose equality operators (`==` and `!=`) with strict
equality operators (`===` and `!==`).
3. Cleaning up of type declarations, null handling logic, and equality
expressions throughout the project.

Currently, the code allows implicit assumptions that `null` and
`undefined` are interchangeable, and relies on type-coercing equality
checks that can introduce subtle bugs. These practices make it difficult
to reason about when values may be absent and hinder the effectiveness
of static analysis.

Migrating to strict null checks and enforcing strict equality
comparisons will clarify intent, reduce bugs, and make the codebase
safer and easier to maintain.

Fixes #466 

## 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>
Co-authored-by: evanpelle <openfrontio@gmail.com>
2025-05-15 16:39:40 -07:00
Aotumuri cddcc681dd Added custom disable settings (#593)
## Description:
I will write an issue later as I don't have time.

![スクリーンショット 2025-04-23 22 04
24](https://github.com/user-attachments/assets/77754140-eee9-46bd-a98f-a3abec35ca6a)
<img width="735" alt="スクリーンショット 2025-04-23 22 04 40"
src="https://github.com/user-attachments/assets/24bb3461-8e05-418c-8dbf-2ba1a624fe27"
/>
<img width="790" alt="スクリーンショット 2025-04-23 22 04 47"
src="https://github.com/user-attachments/assets/33387200-d0af-4394-9d60-af1f88a036e9"
/>

## 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:
aotumuri
2025-05-07 06:14:54 -07:00
Evan 950344c0bd created prestart message: add 2 second delay before starting public games to allow all players to connect 2025-04-03 15:42:25 -07:00
Evan 8b6895d745 add prettier import plugin 2025-03-31 13:09:27 -07:00
evanpelle d8fe41de7a teams (#349) 2025-03-27 20:43:56 -07:00
Readixyee e02361c2f4 Disable nukes option (#237)
This makes it possible to disable all nukes as well as missile silos
from the game in privat lobbies and singleplayer games
2025-03-21 13:52:36 -07:00
evanpelle 6499569240 add winston logger (#289) 2025-03-18 14:36:30 -07:00
evanpelle 70e348c94b Export prometheus metrics (#286) 2025-03-18 09:00:05 -07:00
Evan 364387578b fix lobby duration at 60s now that we limit lobby size. remove "high traffic time" 2025-03-15 17:22:15 -07:00
Evan a56ea5f786 don't check if public when starting game 2025-03-07 07:24:18 -08:00
Evan bad74a0488 schedule game duration based on time of day 2025-03-02 09:39:54 -08:00
Evan a9caee6323 make GameManager more efficient 2025-03-02 09:39:36 -08:00
Evan a029b4277f use node cluster to shard server 2025-03-02 09:39:09 -08:00
NewHappyRabbit 02d5060352 Customizable creative mode 2025-02-24 23:06:50 +02:00
NewHappyRabbit abb06d5bb9 Added frequency settings for the map playlist 2025-02-24 16:56:04 +02:00
Evan 34fff98c99 make europe and world more frequent 2025-02-23 20:46:31 -08:00
Evan 0994fb19bb rate limit start & create private lobby, change max game duration to 3 hours 2025-02-23 19:42:25 -08:00
Evan 528c8c371e only allow 1 ip per game, don't allow modifying public games 2025-02-23 19:42:15 -08:00
NewHappyRabbit 1dfc0aef39 Added Mars. Excluded from public lobby playlist. Changed Africa image background to transparent. 2025-02-20 20:42:17 +02:00
Evan 5f26cf72c8 Make world & europe maps more likely for public multiplayer 2025-02-18 20:36:00 -08:00
evanpelle 4f3ad5c1ac Merge pull request #39 from NewHappyRabbit/map-randomizer
Public lobbies map will now be picked from a randomized playlist, assuring each map is played at least once, without duplicates.
2025-02-18 11:30:10 -08:00
Evan 6a66d0c52d load archived game if not found 2025-02-17 19:30:30 -08:00
NewHappyRabbit 2249f5207e Public lobbies map will now be picked from a randomized playlist, assuring each map is played at least once, without duplicates. 2025-02-17 21:32:36 +02:00
Evan 40966ca3b9 format all files with prettier 2025-02-12 08:28:15 -08:00
NewHappyRabbit 7fcbaa8584 Added creative mode. Everything costs 0 gold, builds instantly and you start with 100k population 2025-02-12 00:15:30 +02:00
NewHappyRabbit 684b0bb2e0 Added checkboxes to disable Bots and NPCs for single player and private lobbies 2025-02-11 03:29:56 +02:00
Evan 6ff4e10a7e public games have random map 2025-02-09 12:29:13 -08:00
Evan 4ee37323f9 format codebase with prettier 2025-02-01 12:05:11 -08:00
evanpelle 0d764eb885 update gamemap, rename gamemap enum => gamemaptype 2025-02-01 12:05:11 -08:00
evanpelle 57cbf5c55e Refactor: Split config into Config and ServerConfig 2024-12-25 14:04:19 -08:00
evanpelle 44d6962b88 have private lobby show players 2024-12-24 11:47:11 -08:00
Evan 2fc81c7d17 store client ips in bigquery table 2024-12-14 10:03:05 -08:00
Evan 7669105a1b record games in gcs 2024-12-07 18:30:04 -08:00
Evan cd09c0a1d6 record game metadata to gcs 2024-12-07 08:54:09 -08:00
Evan 731536931e have game server store game 2024-12-04 18:53:36 -08:00
Evan 56d4b924fa add difficulties 2024-10-23 21:08:24 -07:00
evanpelle 206f6d3333 Can select map on private lobbies 2024-10-16 20:34:57 -07:00
evanpelle 3885b39442 now get message if join sucessful 2024-10-15 17:51:46 -07:00
evanpelle 42a6a2fcef can creater & join lobby 2024-10-14 20:45:31 -07:00
evanpelle 117027779f single player start 2024-10-12 13:50:11 -07:00
evanpelle bf7273ad5a rebalancing 2024-09-07 13:35:07 -07:00
evanpelle 4161b4d71c better random, improved map 2024-09-05 19:19:52 -07:00
evanpelle 0ea670d975 better game join logic, create dev and prod configs 2024-08-17 12:42:18 -07:00
evanpelle 0806ab17c5 unregister interval prevent mem leak; don't reconnect on successfully websocket close 2024-08-16 12:31:05 -07:00
evanpelle 332c2cfcac websocket reconnect on failure 2024-08-16 11:06:01 -07:00
evanpelle f17d1d9816 delete games older than 1 hour 2024-08-14 19:51:36 -07:00
evanpelle 001722bd59 added deployment 2024-08-13 20:07:20 -07:00
evanpelle a4799a3c21 moved attack config to separate config class 2024-08-12 16:31:32 -07:00
evanpelle 1070a5171a render player names efficiently 2024-08-11 13:47:10 -07:00
evanpelle f7b0441f41 working 2024-08-10 14:06:08 -07:00