Commit Graph

1226 Commits

Author SHA1 Message Date
Drills Kibo fbd55ba71d Merge branch 'v24' into evan-checkout-flow 2025-07-28 17:22:47 +02:00
Aotumuri 543d97a69d mls (v4.3) (#1578)
## Description:

mls for v24
Version identifier within MLS: v4.3

## 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 aggreement (only required once).

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

Aotumuri
2025-07-26 00:05:02 -04:00
evanpelle 58fa523c52 move ally button back to root radial (#1575)
## Description:

The ally slot was removed in v24, add it back

## 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:

evan
2025-07-25 17:17:38 -07:00
DevelopingTom afc5709a1b Add missing factory in player info panel (#1507)
## Description:

The player info panel is missing the factory count. Also only displays
the units available in the current game.
 
Every unit:
<img width="185" height="238" alt="image"
src="https://github.com/user-attachments/assets/52eca7c8-99e0-4234-98d4-8efe1644a92c"
/>

City only:
<img width="186" height="142" alt="image"
src="https://github.com/user-attachments/assets/87aef9f8-697c-4aa0-8bc5-92f016886a9d"
/>


## 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 aggreement (only required once).

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

IngloriousTom
2025-07-25 23:47:54 +00:00
evanpelle 1cca6e2ebc fix player overview overlay on mobile (#1572)
## Description:

Regression in v24 that prevented the player overlay from showing when
clicking on mobile.

## 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
- [ ] I have added relevant tests to the test directory
- [ ] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [ ] I have read and accepted the CLA aggreement (only required once).

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

evan
2025-07-25 12:01:06 -07:00
Aotumuri 1c6aa2bfc3 Improve language code matching logic for locale fallback (#1534)
## Description:

This pull request improves the logic for matching language codes to
supported languages.
Now, the function tries to find the most specific language by splitting
the input code with “-” or “_”, and searching from the longest
combination to the shortest.
If no direct match is found, it searches for all supported language
codes that start with the same base (first two letters) and chooses the
most specific one.
If nothing matches, it defaults to English.

## 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 aggreement (only required once).

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

aorumuri
2025-07-25 14:08:35 -04:00
VariableVince ff17d321c7 Fix: display actual Alliance extension message instead of translation key (#1532)
## Description:

On Alliance extension, the key "events_display.alliance_renewed" is
displayed in the Event Panel. Reported in
https://discord.com/channels/1284581928254701718/1397197460085932184

Since displayMessage doesn't expect or do translations, just puts out
hardcoded English messages so far, it doesn't do anything with the
recieved key and just puts it in the Event Panel as is. This PR fixes it
as a follow-up of #1359.

With this, it also introduces a base which can be used to translate
hardcoded messages coming from other Executions. That is out of the
scope of this PR.

PRs #1532 and #1536 both fix issues with Alliance Renewal in v24. If
possible approve 1532 (this one) first and then 1536 not too far after
if github can indeed merge them.

BEFORE:
<img width="533" height="353" alt="alliancerenewbefore"
src="https://github.com/user-attachments/assets/b97f7279-8daf-4049-96fb-1d5a1e360ec4"
/>

AFTER: 
(tested locally with Nations by not checking their answer; they normally
don't answer to alliance renewal request which is another issue)

<img width="787" height="406" alt="After fix"
src="https://github.com/user-attachments/assets/9fc3a0e2-b151-486f-b6ef-692177e387ad"
/>

## 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 aggreement (only required once).

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

tryout33
2025-07-23 18:44:57 +00:00
Scott Anderson 0489c63f4b Validate spawn tile (#1512)
## Description:

Enforce valid tile during spawn, to prevent the game from crashing for
all players.

## 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
- [ ] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [ ] I have read and accepted the CLA aggreement (only required once).
2025-07-20 20:17:29 -07:00
Aotumuri e31495645f Fix language code mismatch during language switching (2) (#1511)
## Description:
Fix casing issues in language file imports and mapping keys for pt_BR,
sv_SE, and zh_CN
These mismatches were causing translation loading issues in environments
with case-sensitive file systems.

## 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 aggreement (only required once).

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

aotumuri
2025-07-20 19:43:11 -04:00
Aotumuri b7cfdb7376 Make SpawnAd loading text translatable using translateText (#1393)
## Description:
Replaced the hardcoded "loading" text in the SpawnAd component with
`translateText("spawn_ad.loading")` for proper localization.

## 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-07-20 07:23:12 +00:00
Aotumuri 20821e99aa Fix issue where territory-patterns-modal is occasionally not translated (#1505)
## Description:

Fixes a problem where the territory-patterns-modal sometimes appears in
the previous language if it is opened immediately after changing the
language.

## 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 aggreement (only required once).

## Please put your Discord username so you can be contacted if a bug or
regression is found:
aotumuri
2025-07-20 07:20:07 +00:00
Scott Anderson 123787e299 Attempt to fix bigint serialization issue (#1501)
## Description:

Attempt to fix bigint serialization issue

## 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
- [ ] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [ ] I have read and accepted the CLA aggreement (only required once).
2025-07-19 18:35:57 -07:00
Aotumuri 11e92246f2 Fix modal not closing when game starts (#1504)
## Description:
When a player joins a public game and opens a modal (such as the news
modal) while waiting for the game to start, the modal is not dismissed
when the game begins. This leaves the modal visible even after the match
has started.

<img width="1374" height="841" alt="スクリーンショット 2025-07-20 10 25 16"
src="https://github.com/user-attachments/assets/e7170e79-0f4c-442a-bbb9-cce23aa676e7"
/>

This PR fixes the bug described above.

## 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 aggreement (only required once).

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

aotumuri
2025-07-19 18:27:52 -07:00
Aotumuri cf2b6494ff Make footer links translatable (#1417)
## Description:

This PR makes the footer link labels ("Privacy Policy" and "Terms of
Service") translatable via the i18n system.

## 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-07-19 18:14:25 +00:00
Aotumuri 705c1ff00c mls (v4.2) (#1492)
## Description:

mls for v24
Version identifier within MLS: v4.2

## 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 aggreement (only required once).

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

aotumuri
2025-07-18 18:48:44 -04:00
evanpelle cef2a853dc increase player panel z index so it is on top of spawn timer (#1488)
## Description:

The spawn timer menu was blocking the exit button of the player panel on
mobile

## 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 aggreement (only required once).

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

evan
2025-07-18 10:55:21 -07:00
DevelopingTom 7b2a204b8e Add close button to emoji table (#1479)
## Description:

Add a close button for the Emoji table, and switch the modal to
TailWind.

<img width="698" height="1161" alt="image"
src="https://github.com/user-attachments/assets/45c998d8-e584-4d83-9177-036679828586"
/>




https://github.com/user-attachments/assets/999baf1b-1cdb-409c-a1f0-12d8298dc638



## 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 aggreement (only required once).

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

IngloriousTom
2025-07-18 13:46:30 -04:00
Aotumuri 028f1cad87 Fix language code mismatch during language switching (#1416)
## Description:
fixes #1413 
https://github.com/openfrontio/OpenFrontIO/issues/1413
## 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
2025-07-18 17:41:28 +00:00
evanpelle 58cad61041 fix pop & gold not showing up on mobile UI (#1484)
## Description:

The Pop & gold was not visible on mobile devices.

## 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 aggreement (only required once).

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

evan
2025-07-18 09:16:39 -07:00
Aotumuri 2292993995 bug fix?: Hide UnitDisplay frame when all unit types are disabled (#1392)
## Description:

This PR updates the UnitDisplay component so that when all unit types
(City, Factory, Port, Defense Post, Missile Silo, SAM Launcher) are
disabled in the game config, the UI frame itself will also be hidden.

This is a box that shows how many and what types of units the player
currently owns.
There’s a feature where, if unit types are disabled in the settings, the
corresponding parts of the UI will disappear.

However, if all unit types are disabled, for some reason the outer
container still remains visible.
While this might not be a critical issue, I feel it’s unnecessary and
redundant, so I’d like to remove it.

Alternatively, we could consider keeping the box as a kind of
placeholder to indicate that some kind of menu might appear there.
But since it serves no purpose during gameplay in that state, I think it
would just be meaningless UI.

before
<img width="1049" alt="スクリーンショット 2025-07-10 12 49 37"
src="https://github.com/user-attachments/assets/b0cf12ba-0c20-4b21-bf9f-cb17fec6817b"
/>
<img width="44" alt="スクリーンショット 2025-07-10 12 49 47"
src="https://github.com/user-attachments/assets/61e1960b-56d4-4dc8-80e7-27e49cb2d0e3"
/>

after
<img width="967" alt="スクリーンショット 2025-07-10 12 48 08"
src="https://github.com/user-attachments/assets/dfc90243-e4d6-4663-bff5-5be34453e80b"
/>

## 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-07-18 08:55:55 -07:00
evanpelle 259b73e58d fix build menu not showing correct # units 2025-07-18 08:51:57 -07:00
evanpelle d4755a71fe remove spawn ad (#1482)
## Description:

It is not being destroyed on start for some users.

## 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 aggreement (only required once).

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

evan
2025-07-18 08:47:46 -07:00
evanpelle 9fca546745 alert on ws 1002 error (#1472)
## Description:

Alert the error when a user is unauthorized to join a game. Previously
it would just log an error and the user would have no idea why they
couldn't join a game (if for example they were using a restricted
pattern). Now the user gets an alert. We should make this a proper modal
in the future.

## 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 aggreement (only required once).

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

evan
2025-07-17 16:03:01 -07:00
evanpelle 1d5d721c50 fix control panel & events display scaling on mobile (#1471)
## Description:

The Control panel & events display were not scaling properly on mobile,
now when screen is small enough they take the entire width, this keeps
the behavior in line with v23.

## 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 aggreement (only required once).

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

evan
2025-07-17 14:57:38 -07:00
evanpelle d89babea04 leaderboard bugfix: show by default for medium to large screens. (#1470)
## Description:

removes the unnecessary check in tick() which was causing the
leaderboard to not be shown by default on smaller screens.

## 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 aggreement (only required once).

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

evan
2025-07-17 11:19:58 -07:00
evanpelle 6bad34a2a3 fix team leaderboard margin (#1469)
## Description:

The team leaderboard had a large top margin. This PR aligns the team
leaderboard with the player leaderboard.

<img width="758" height="541" alt="Screenshot 2025-07-17 at 8 55 04 AM"
src="https://github.com/user-attachments/assets/9c9b6b67-e448-4419-8625-644e6e8584c7"
/>

## 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 aggreement (only required once).

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

evan
2025-07-17 09:00:20 -07:00
VariableVince 161f7dbd00 Fix: attack on ally even with greyed out button (#1460)
## Description:

Bugfix for: when clicking the central radial menu button (attack button)
on an ally, the ally would be attacked. And you'd inadvertently get a
traitor debuff. Even if the button was greyed out (#1426), the attack
would still happen.

BEFORE:

https://github.com/user-attachments/assets/833bf587-211f-4e6e-86b8-6374ca6f3d6c

AFTER:

https://github.com/user-attachments/assets/38e4ae6d-caac-47c9-9b0d-57bacdd7a846

## 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
- [ ] 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:

tryout
2025-07-16 18:53:57 -07:00
VariableVince c7af6c04c5 Fix: "Game speed" not "Replay speed" during Single player game (#1457)
## Description:

Fix for regression. In #1145, "Game speed" was added to show in Single
player instead of "Replay speed", and then in #1243 again. But after the
changes in #1415 it no longer worked, although some code remained.

Before:
<img width="417" height="161" alt="Replay speed when in single player
game"
src="https://github.com/user-attachments/assets/ff9aac99-6948-4c10-bb30-36ba5973c12e"
/>

After:
<img width="392" height="178" alt="Game speed instead of Replay speed"
src="https://github.com/user-attachments/assets/3beb712a-2539-46c5-a50a-eda593a5417c"
/>

## 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
- [] 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:

tryout33
2025-07-16 20:35:16 -04:00
VariableVince af3dcb77bd Fix: anonymized name isn't used in chat message (#1265)
## Description:

Bugfix:
- Anonymized name isn't used in Event Panel message, instead actual
player name is displayed even if "Hidden names" is enabled. Neither for
the 'P1' name in the chat message, nor for the name in "From name:
message" and "Sent name: message". Fix: in QuickChatExecution, instead
of sender.name() and recipient.name(), send their id(). In
EventsDisplay, from that PlayerID get their displayName.

- There was more in this PR to try to improve readibility and remove
some unused/uncommented code. This was moved later to #1275, which may
be re-opened and brought up-to-date after this PR is merged.

Example screenshot of the bug before the fix, send chat to anonymized
name 'Norwegian Sisterhood' but in Event Panel real name 'Mister Goo'
was displayed:
![Sent Mister Goo instead of anonymous Norwegian
Brotherhood](https://github.com/user-attachments/assets/197e2808-aa85-4271-9c96-c53fe10f6546)

## 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
- [ ] 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
2025-07-15 19:43:31 -04:00
evanpelle 5dd7826192 make radial menu thicker (#1446)
## Description:

The root radial elements had a dead space, causing accidental misclicks.
This PR makes the wider. It also shrinks the back button to prevent
overlap.

## 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:

evan
2025-07-15 12:08:07 -07:00
evanpelle d4794840f6 Have radial menu refresh when open (#1437)
## Description:

There was a regression where the radial menu would not refresh while
open (eg open radial menu, then get enough gold to build something, the
radial wouldn't update).

Also refactored a bit

## 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:

evan
2025-07-15 11:54:33 -07:00
g-santos-m 31381f67f4 Enable @typescript eslint/prefer nullish coalescing eslint rule (#1420)
## Description:

Fixes #952 
Enabled @typescript-eslint/prefer-nullish-coalescing rule and worked
through every error, introducing ?? and ??= operators or disabling
errors with inline comments where appropriate, to the best of my
ability.

## 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:

g_santos_m
2025-07-15 03:00:06 +00:00
floriankilian 211c2ff49d Followup: news-button: blue-glow; simpler localStorage (#1431)
## Description:

Changed the localStorage key from "news-button-last-seen-version" to a
simpler "version" in the NewsButton component.
And reverting a coderabbit recommendation in the css file, that
eliminated the blue glow effect.

Follow-up to #1385

<img width="808" height="845" alt="Screenshot 2025-07-14 205018"
src="https://github.com/user-attachments/assets/8c26c36c-ee2e-4a53-af61-f371eefd102a"
/>

## 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:

[UN]nvm
2025-07-14 15:12:12 -04:00
DevelopingTom 29b587cdae Factory spawns trains (#1408)
## Description:

- Change trains so it spawns from factories only
- Increase train frequency as they will now spawn from a single
structure.
- Factory will spawn more trains depending on its level
- Fix port to connect to nearby railroads
- Add factory description

## 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:

IngloriousTom

---------

Co-authored-by: Tom Rouillard <trouilla@mathworks.com>
Co-authored-by: evanpelle <evanpelle@gmail.com>
2025-07-14 08:59:51 -07:00
evanpelle 1e73293d4f remove radial animation, fix back button (#1427)
## Description:

Removed the animation from the radial menu, it now pops up instantly
Also fixed bug where back button was grayed out

## 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:

evan
2025-07-14 08:57:38 -07:00
evanpelle 79505c41c8 radial menu attack self bugfix (#1426)
## Description:

bugfix where the radial center button was active when clicking on your
own territory.

## 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:

evan
2025-07-13 18:09:41 -07:00
evanpelle da8aeedd8b Leaderboard improvements (#1424)
## Description:

1. Made leaderboard smaller
2. replaced show top 5/show all with a +/- to save space
3. show leaderboard by default on larger screens

<img width="458" height="393" alt="Screenshot 2025-07-13 at 5 27 10 PM"
src="https://github.com/user-attachments/assets/c18c732b-8b1e-4b71-89aa-b807ceb91e30"
/>

## 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:

evan
2025-07-13 17:48:04 -07:00
evanpelle 9c03813f63 fix team bar (#1422)
## Description:

On team games the bar was about 80 pixels below the top of the screen

## 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:

evan
2025-07-13 15:01:15 -07:00
evanpelle fab1f265cb fix build menu shortcut 2025-07-13 13:08:49 -07:00
evanpelle f877756125 move player overview higher up (#1418)
## Description:

It was too low, causing it to overlap with the events panel on smaller
screens.
<img width="310" height="382" alt="Screenshot 2025-07-13 at 12 41 32 PM"
src="https://github.com/user-attachments/assets/09be06f8-17d8-4bb0-80d1-73bb75969bb9"
/>

## 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:

evan
2025-07-13 12:44:56 -07:00
evanpelle d9f4e86968 Remove top bar & revert control panel (#1415)
## Description:

Reverting control panel back to v23. Once we remove the worker/troop bar
we can revisit moving it to back to the top.

## 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:

evan
2025-07-13 12:29:41 -07:00
evanpelle 61ec324eb9 remove levels player overview panel (#1414)
## Description:

Since unit levels are really just stacking, there's not reason to show
number of units & sum of all units

## 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:

evan
2025-07-13 12:25:29 -07:00
Aotumuri 9d45f21730 mls (v4.1) (#1357)
## Description:

mls for v24
Version identifier within MLS: v4.1

## 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
2025-07-13 07:09:42 +00:00
evanpelle fd947ba2a9 improve checkout flow 2025-07-12 10:22:24 -07:00
Scott Anderson 0d7c58d5b8 Unit count (#1402)
## Description:

Use an iterative approach to counting units to reduce array allocations.

## 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
- [ ] 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
2025-07-12 09:24:44 -07:00
DevelopingTom e4e17ffb13 Redraw existing railroads when redrawing the complete layer (#1410)
## Description:

Fix bug that made railroads disappear when switching to dark mode.

## 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:

IngloriousTom
2025-07-11 20:19:47 -07:00
Aotumuri f15b78174b Internationalization: Add i18n support for login/auth messages in main (#1406)
## Description:
Internationalized all authentication-related messages shown before login
or when unauthorized (e.g. "Login is required to access this website.")
using the `translateText` function.

## 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-07-11 11:40:29 -04:00
evanpelle 488ffc5c9e Improve unit updates & reloading (#1394)
## Description:

Previously upgrading a unit would have it reload immediately, eg
upgrading missile silo 1=>2 gives it 2 missiles immediately. With this
change it must reload the missile. Same with SAMs. This prevents users
from spamming upgrades as missiles are coming in.

Fix the progress reloading bar. Previously it only showed the SAM/silo
as reloading when it was completely out of missiles. Now it shows
roughly how many missiles are available (eg level 5 fires 3 missiles,
now progress bar is at 40%). It also shows progress of missiles
reloading. If no missiles are available, progress bar is empty

There was a bug where if a silo of SAM was in cooldown it would be
updated each tick, causing the sprite/icon to be rerendered each tick.

## 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:

evan
2025-07-10 10:06:05 -07:00
floriankilian be8b7a5cb4 feat(news-button): highlight button when new version is available (#1385)
Introduced a visual indicator for the NewsButton component to notify
users about new content upon version update. This change adds an
`isActive` state to the NewsButton that checks against the version
stored in localStorage. If a new version is detected, the button is
highlighted with specific styling defined in styles.css, including a
pulsing notification effect to draw user attention. The state resets to
inactive upon button click. This enhancement improves user engagement by
ensuring they are aware of new updates.

Fixes #1369 

## Description:

![CleanShot Google Chrome 2025-07-09 at 15 38
19@2x](https://github.com/user-attachments/assets/68928e61-6ec5-472a-9933-0732e88788b5)
![CleanShot Google Chrome 2025-07-09 at 15 38
50](https://github.com/user-attachments/assets/bec96517-e4a3-4dce-a8fa-3d405ce62337)


## 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:

[UN]nvm
2025-07-09 14:29:29 -04:00
Scott Anderson d8d5220948 Require login to connect to staging (#1360)
## Description:

Complete:
- Add support for cookie-based auth (ref
https://github.com/openfrontio/infra/pull/83)
- Restrict game server API access to users with a specific flare
- Restrict join game to users with a valid token and an allowed flare
- Unauthorized landing page
- Token cache
- Destroy token cookie on logout

## 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
2025-07-09 03:57:08 -04:00