What's Changed
- Bugfix: don't allow other players to move warships by @evanpelle in #879
- Proper alliance timer naming by @tnhnblgl in #886
- Add naval combat animations by @DevelopingTom in #858
- Use array index access instead of .at by @scottanderson in #889
- mls by @Aotumuri in #888
- Revert "add addinplay ads" by @evanpelle in #897
- Fix Toki Pona by @Duwibi in #898
- remove player id from Schemas, fix archive bug by @evanpelle in #907
- Unit menu by @Aotumuri in #867
- Convert stats to bigints by @scottanderson in #909
- Flag fixes for Europe map and for Brittany in flag menu and Gateway To the Atlantic map by @VariableVince in #910
- Add deploy concurrency configuration by @scottanderson in #911
- Add Github Logo on footer by @LucasLion in #875
- Revert "Population visualization (#842)" by @evanpelle in #908
- floor by @scottanderson in #913
- remove known world by @evanpelle in #914
- Main menu UI cleanup by @Demonessica in #857
- Improve territory drawing performances by @DevelopingTom in #696
- bug: Clicking out of bounds throws uncaught exception by @scottanderson in #920
- Removes CSS rule causing performance issues by @1brucben in #925
- Always delete tradeship on pathfinding fail by @scottanderson in #921
- Fix bigint serialization error by @scottanderson in #916
- Revert tradeship path caching by @evanpelle in #927
- Meta Adjustments from [UN] clan test by @1brucben in #932
- fix alternate view regression by @evanpelle in #937
- fix warship targetting range by @evanpelle in #938
- Add instructional overlay message during spawn phase by @spicydll in #934
- Add test coverage script by @aqw42 in #929
- Added two checkboxes to the default pull request template by @aqw42 in #930
- Fix slow singleplayer timer by @evanpelle in #943
- improved perfomance of PseudoRandom by @falcolnic in #933
- Change deploy concurrency group by @scottanderson in #944
- Set singleplayer gitCommit in the client by @scottanderson in #945
- Simplify bots retaliation logic by @scottanderson in #946
- Add close label by @drillskibo in #949
- Remove ClientID from GameRenderer by @scottanderson in #878
- Resolve code scanning warning about HTML injection by @scottanderson in #953
- Fix invalid username popup being behind public game button by @Demonessica in #951
- Server role lookup by @scottanderson in #954
- Flag fixes in several maps by @VariableVince in #957
- Fix map jsons by @Duwibi in #960
- change defaults to reflect meta by @1brucben in #942
- Even more flag flair by @VariableVince in #959
- Only load tiles when viewed by player by @1brucben in #887
- Hide login button by @scottanderson in #965
- Fix discord user schema by @scottanderson in #969
- Balance Adjustment for Attack Mechanism by @1brucben in #973
- Prevent Attack Spam by @1brucben in #977
- Update HeadsUpMessage.ts to support translations by @spicydll in #981
- Cap lobby sizes at 150 by @Duwibi in #984
- Fix Translations showing as untranslated keys by @Duwibi in #983
- Another Balance Change by @1brucben in #987
- make bots weaker by @evanpelle in #985
- Remove shield icon from bots by @evanpelle in #986
- Balance Update by @1brucben in #996
- Revert meta by @evanpelle in #1002
- Fix text overflow in instructions for longer translations by @ERHash in #971
- Add dynamic sorting to leaderboard by tiles, gold, and troops by @ERHash in #961
- Fix Player Name Monospaced Text Overflow on PlayerInfo by @ERHash in #975
- Scroll bar Behavior on Chromium Browsers, c-modal_content by @andrewNiziolek in #976
- Synced the single player and host files together, and fix issue withc… by @shaan150 in #991
- Equalize team sizes by @scottanderson in #992
- Added support for dark mode icons for Alliance Request Icon and Embargo Icon by @Vermylion in #993
- Use bigint for gold by @scottanderson in #1000
- Fix : Donation when max pop already reached by @aqw42 in #904
- Validate incoming API data with zod by @scottanderson in #891
- this is a fix for the "possibly null" error. dosent seem to cause runtime issues but does cause the compiler to throw an error by @Jerryslang in #1005
- Fixnukeboatbug by @rldtech in #1011
- added ratio controls by @falcolnic in #963
- Add a status check for the milestone field by @scottanderson in #1029
- Fix discord login issue by @scottanderson in #1028
- Changed consolex to console logging by @falcolnic in #1036
- Center map on start by @Demonessica in #1013
- Rev: Update "Japan and Neighbors" map to "East Asia" by @andrewNiziolek in #1007
- Close socket on ClientMessageSchema, improve zod error by @scottanderson in #1003
- SAMs should target only nukes aimed at nearby targets by @DevelopingTom in #1038
- AI nukes avoid SAM launchers by @scottanderson in #1045
- Show alliances on the PlayerPanel by @Maaxion in #1053
- Improve readability of alliance acceptation logic for bots and add tests by @Nephty in #1049
- [Cleanup] Pass Player into execution constructor instead of PlayerID by @LJoyL in #1022
- Monitoring client connections by @aqw42 in #941
- have master create tunnels for all workers #780 by @evanpelle in #1042
- Add Boat hotkey by @tnhnblgl in #1060
- bug: logout by @scottanderson in #1073
- fix cloudflare tunnels by @evanpelle in #1076
- Duo partner SP always same: randomize players before team assignment by @VariableVince in #1051
- Multi-level radial menu by @oleksandr-shysh in #1018
- Fix broken flag images by @VariableVince in #1078
- kick existing client when duplicate persistent id is found by @evanpelle in #1077
- Update PlayerImpl.ts by @E-EE-E in #1079
- Add back #646 - trade ship gold by travelled distance by @Maaxion in #1085
- #1086 prevent clicking on other structures than your own by @Maaxion in #1087
- rename Event interface -> GameEvent by @Maaxion in #1094
- refactor radial, fix boat on terra nullius not working fixes by @evanpelle in #1095
- Disable donations public ffa matches by @evanpelle in #1097
- Nations can spawn cities without a port by @scottanderson in #1072
- Ci coverage by @scottanderson in #1099
- Revert "Ci coverage" by @scottanderson in #1101
- Add filters tabs to EvensDisplay to let users filter events by @Maaxion in #1080
- Fix bug in FakeHumanExecution by @scottanderson in #1102
- Fix: Hide username validation error in-game by @VariableVince in #1110
- cloudflare fixed tunnel name by @evanpelle in #1096
- Remove duplicate gold accumulation in team stats calculation by @rldtech in #1010
- Optimizations for botbehaviour by @VariableVince in #1114
- fix: correct mac modifier and emoji key detection in input handler by @Ble4Ch in #1118
- fix duplicate websocket handler by @evanpelle in #1124
- Adding unit info modal translation support. by @its-sii in #1122
- increase nuke speed from 4 to 6 by @evanpelle in #1125
- Avoid using as to cast values by @scottanderson in #1115
- Fix Māori flag name by @VariableVince in #1133
- use newer attack, delete existing attack by @evanpelle in #1134
- counter attack doesn't cancel out attack by @evanpelle in #1132
- Move version and changelog to files by @scottanderson in #1109
- Fix non valid SafeString flag codes by @ghisloufou in #1135
- Add a Replay speed control feature by @ghisloufou in #1106
- Add progress bars to show loading time and healthbars by @jrouillard in #1107
- feat: assign unique colors for players by @Ble4Ch in #1063
- lazy loading and current data var by @falcolnic in #988
- fix(client): use the right language-modal selector by @ghisloufou in #1136
- Simple Upgradable Structures (Cities, Ports, SAMs and Silos) by @Egraveline in #1012
- Rename Replay speed to Game speed in Singleplayer by @VariableVince in #1145
- discriminatedUnion by @scottanderson in #1130
- Fixed bad translation string bug for unit info modal. by @its-sii in #1143
-
- fix timer overflow by @DiesselOne in #1148
-
- optimize leaderboard by @DiesselOne in #1151
- Fix regression cooldown bars by @jrouillard in #1154
- favor transport ships, no reload penalty by @evanpelle in #1153
- dynamic radial menu build options by @evanpelle in #1152
- Update building images and adjust border/territory radii for unit configuration by @rldtech in #1037
- Fixed quick chat text injection by @Aotumuri in #1144
- Rework leaderboard and team stats by @DiesselOne in #1164
- Extend token lifetime to 3 days by @scottanderson in #1172
- Redraw stacked buildings sprites by @jrouillard in #1170
- Fix Nations building more than allowed by @VariableVince in #1176
- Set a targetable status for nukes by @jrouillard in #1174
- fixed giantworldmap key by @Aotumuri in #1188
- Fix Leaderboard: convert NaN into 0% by @VariableVince in #1190
- Update pr-description regex by @scottanderson in #1181
- discriminatedUnion by @scottanderson in #1193
- UsernameSchema, FlagSchema by @scottanderson in #1185
- feat: colors are better mixed up when players count is low by @Ble4Ch in #1149
- Improve handling of HTTP 401 by @scottanderson in #1194
- increase worker connections by @evanpelle in #1179
- Fix: Handle not spawned player focus by @tnhnblgl in #1186
- Fix Radial menu undefined params error during spawn phase by @VariableVince in #1192
- Better handling of bad tokens by @scottanderson in #1180
- Hash-based routing by @scottanderson in #1198
- cache busting: Import version, changelog by @scottanderson in #1201
- REV - Improved Username Censoring by @andrewNiziolek in #1119
- Jest v30 by @scottanderson in #1206
- Release workflow by @scottanderson in #1202
- Fix unnecessary join check by @evanpelle in #1209
- fix websocket error by @evanpelle in #1208
- add playwire ads by @evanpelle in #1128
- Update webpack-dev-server to 5.2.2 by @scottanderson in #1207
- Add a 30 minute timeout to actions by @scottanderson in #1210
- Update release workflow by @scottanderson in #1212
-
- update leaderboard align by @DiesselOne in #1189
- Fix gutter ads, move in-game add to bottom right corner. by @evanpelle in #1214
- have worker send error back to client by @evanpelle in #1178
- Fix build menu on water tile by @VariableVince in #1216
- Update default version number by @scottanderson in #1218
- Schema cleanup by @scottanderson in #1219
- ads on death screen by @evanpelle in #1223
- Delay win modal by @evanpelle in #1224
- Dependency removals and updates by @VariableVince in #1215
- add spawn ads by @evanpelle in #1228
- upgrade to zod 4 by @omrih4 in #1161
- Record MIRV warhead intercepted stats, perf improvements by @scottanderson in #1220
- Simplfiy LangSelector by @scottanderson in #1226
- Pot issue fix by @tnhnblgl in #1233
- Logout Button Fix by @tnhnblgl in #1234
- fix bad tile crash by @evanpelle in #1237
- fix is valid ref by @evanpelle in #1240
- Remove babel-jest from devDependencies by @VariableVince in #1247
- Refactor radial menu by @evanpelle in #1246
- Simplify ClientMessage handling by @scottanderson in #1235
- Add trains by @DevelopingTom in #1159
- Add back the trade ship send stat by @evanpelle in #1253
- Remove maxTokenAge by @scottanderson in #1255
- Patterned territory by @Aotumuri in #786
- Discounts can only be used one time by @scottanderson in #892
- Fix singleplayer check by @scottanderson in #1260
- Move maps generation out of repo, new map structure by @evanpelle in #1256
- Show a red alert frame when the player is betrayed by @devalnor in #1195
- Allow boat discount based on number of units owned by @devalnor in #1261
- Move map metadata to map manifest by @evanpelle in #1262
- Refactor cosmetics.json by @scottanderson in #1263
- bug: StatsSchema zod validation error by @scottanderson in #1267
- White Rabbit pattern by @scottanderson in #1264
- Cleanup log spam in TerritoryPatternsModal by @scottanderson in #1269
- Fix pattern locking logic by @scottanderson in #1270
- Keybind Ground Attack by @dengh in #1258
- UrlEncode patterns in cosmetics.json by @scottanderson in #1273
- improve astar perf by @evanpelle in #1268
- Log public id by @scottanderson in #1278
- clarify license by @evanpelle in #1277
- Fix sam targetting everything by @jrouillard in #1280
- Add Creative Commons License to resources/non-commercial by @evanpelle in #1284
- Sword pattern by @scottanderson in #1283
- Display OFM25 ad in WinModal by @scottanderson in #1281
- QR code pattern by @scottanderson in #1288
- custom flag (1) by @Aotumuri in #1257
- Allow railroad loops by @DevelopingTom in #1274
- patterns by @scottanderson in #1290
- Split build & deploy scripts by @evanpelle in #1239
- New icons by @jrouillard in #1287
- Add GitHub deployment support by @scottanderson in #1291
- bug: Fix version number and changelog by @scottanderson in #1293
- Revert "counter attack doesn't cancel out attack (#1132)" by @evanpelle in #1301
- Graceful handling of ping before join by @scottanderson in #1295
- refactor cosmetics out of PlayerInfo by @evanpelle in #1299
- Remove unused MON_* credentials by @scottanderson in #1304
- Add new patterns by @scottanderson in #1294
- Fix error-modal filling up the whole screen by @fraxxio in #1298
- Reapply "enable otel logs and metrics for staging environments" by @scottanderson in #1310
- Separate prod release environments by @scottanderson in #1311
- Change news title to release notes by @scottanderson in #1312
- Add localization support for leaderboard and team-related UI elements by @TomaszOleszko in #1308
- Better In Game UI by @DiesselOne in #1243
- w-320 by @PilkeySEK in #1316
- Patterns by @scottanderson in #1318
- Show structure levels by @jrouillard in #1305
- fix alliance expired message by @evanpelle in #1323
- Mark train stations and factories as experimental by @DevelopingTom in #1309
- allow alliance extension Fixes #491 by @evanpelle in #1314
- Additional patterns and subclass creation by @Sgt-lewis in #1327
- fix healthbars not being removed by @jrouillard in #1329
- lighten pattern by @evanpelle in #1326
- custom flag (2) by @Aotumuri in #1303
- Make patterns puchasable with stripe by @evanpelle in #1313
- Improve icons readability by @jrouillard in #1321
- remove select on hover by @evanpelle in #1330
- Fix role lookup by @evanpelle in #1335
- Extend winner schema by @scottanderson in #1333
- mls 4.0 by @Aotumuri in #1336
- upgrade unit when building a unit of same type by @evanpelle in #1328
- remove unit menu by @evanpelle in #1338
- unit upgrade minor improvements by @evanpelle in #1337
- Add gold fx when a tradeship lands by @DevelopingTom in #1322
- validate coords in construction execution by @evanpelle in #1339
- fix pattern and role bugs by @evanpelle in #1343
- Disable trains in public games by @evanpelle in #1342
New Contributors
- @LucasLion made their first contribution in #875
- @spicydll made their first contribution in #934
- @falcolnic made their first contribution in #933
- @drillskibo made their first contribution in #949
- @ERHash made their first contribution in #971
- @andrewNiziolek made their first contribution in #976
- @shaan150 made their first contribution in #991
- @Vermylion made their first contribution in #993
- @Jerryslang made their first contribution in #1005
- @rldtech made their first contribution in #1011
- @Maaxion made their first contribution in #1053
- @Nephty made their first contribution in #1049
- @LJoyL made their first contribution in #1022
- @oleksandr-shysh made their first contribution in #1018
- @E-EE-E made their first contribution in #1079
- @Ble4Ch made their first contribution in #1118
- @its-sii made their first contribution in #1122
- @ghisloufou made their first contribution in #1135
- @Egraveline made their first contribution in #1012
- @omrih4 made their first contribution in #1161
- @devalnor made their first contribution in #1195
- @dengh made their first contribution in #1258
- @fraxxio made their first contribution in #1298
- @TomaszOleszko made their first contribution in #1308
- @Sgt-lewis made their first contribution in #1327
Full Changelog: v0.23.16...v0.24.0-beta1