mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-30 15:02:12 +00:00
0801798fbdb75612bf950f88486fb51f13d60ec0
24 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
eedb90ffb5 |
Fix game ID display for team games 🪪 (#3734)
## Description: Game ID display was looking weird in team games... Before: <img width="389" height="321" alt="image" src="https://github.com/user-attachments/assets/cf39b490-cfba-4c3a-86af-8f9498380eae" /> After: <img width="394" height="323" alt="image" src="https://github.com/user-attachments/assets/9e828169-b267-4627-85eb-548dca224a8a" /> ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: FloPinguin |
||
|
|
4e04bed44c |
Show game ID ingame 🪪 (#3674)
## Description: Instead of begging youtubers to share their game id to be able to debug: Display the current game ID in the top-right corner of the in-game leaderboard panel (there was unused space) <img width="391" height="326" alt="image" src="https://github.com/user-attachments/assets/8b0aa7c2-fc8c-48e5-ae11-edd60fd40de9" /> ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: FloPinguin |
||
|
|
05e2bc9f0a |
Improve cacheability with content-hashed public assets and a cacheable app shell (#3494)
## Description: This reworks asset delivery and cacheability across the app and moves non-bundled public resources onto immutable, content-hashed URLs. Vite bundle outputs continue to live under `/assets/**` and remain content-hashed by Vite. Public resources that were previously fetched from stable paths in `resources/` now go through a custom hashed namespace under `/_assets/**`, backed by a generated asset manifest that is available to the server, browser, and worker runtime. In parallel, the root app shell is now cacheable shared HTML instead of request-time `no-store` HTML. Dynamic and live routes remain explicitly uncached. ## Why - Improve browser and Cloudflare cacheability for static assets. - Remove query-string and release-version cache busting for runtime-fetched assets. - Allow unchanged public assets to keep the same URL across releases. - Reduce avoidable work on `/` by serving a shared app shell instead of rendering HTML on every request. - Make cache behavior explicit instead of relying on mixed framework defaults and file-extension heuristics. ## What Changed ### 1. Content-hashed public asset pipeline - Added a build-time public asset manifest and hashing pipeline for non-Vite resources. - Production now emits hashed public assets under `/_assets/**`. - Added runtime manifest loading for Node so server-rendered paths resolve against built hashed files instead of rebuilding from source at runtime. - Emitted the runtime asset manifest as an ESM module for server consumption. Result: - `/assets/**` = Vite-managed hashed bundle outputs - `/_assets/**` = custom content-hashed public resources ### 2. Runtime asset URL migration - Added a shared `assetUrl(...)` resolution path. - Migrated runtime references away from query-string versioning and stable source paths. - Updated browser, worker, and server-side rendering paths to resolve through the asset manifest. - Moved map manifests, map binaries, thumbnails, sprites, sounds, fonts, flags, icons, screenshots, and other runtime-fetched resources onto hashed URLs. ### 3. Map and preview fixes - Fixed directory and per-file map asset resolution so map manifest and binary fetches resolve to the correct hashed URLs. - Updated preview metadata and map thumbnail paths to use the hashed asset namespace. - Fixed runtime manifest loading in prod after deployment. ### 4. Explicit cache policies - Added explicit immutable cache headers for: - `/assets/**` - `/_assets/**` - worker-prefixed equivalents under `/wN/...` - Added explicit `no-store` headers for live and dynamic APIs. - Removed the old `/api/env` bootstrap request and baked `gameEnv` into the HTML bootstrap instead. ### 5. Cacheable root app shell - Refactored the root HTML path to serve a shared app shell with: - `Cache-Control: public, max-age=0, s-maxage=300, stale-while-revalidate=86400` - `/` and the SPA fallback now serve shared cacheable HTML instead of request-time `no-store` rendering. - `/game/:id` remains dynamic and `no-store`, but now reuses the shared shell before injecting preview tags. ### 6. Matchmaking instance handling - Because the app shell is now cacheable, `INSTANCE_ID` was removed from shared HTML. - Added `/api/instance` as a temporary `no-store` runtime lookup used only by matchmaking. - This preserves correctness with the current random-per-boot `INSTANCE_ID` model while keeping `/` cacheable, but it is not the intended long-term design. ## Behavior Changes ### Asset URL contract Production URLs for non-Vite public resources now change from stable paths such as: - `/maps/...` - `/images/...` - `/manifest.json` to content-hashed paths under: - `/_assets/...` Examples: - `/_assets/maps/<map>/manifest.<hash>.json` - `/_assets/images/Favicon.<hash>.svg` ### Bootstrap/config - `/api/env` is removed. - `gameEnv` is now bootstrapped from HTML. ### HTML caching - `/` and the SPA fallback are now cacheable shared HTML. - `/game/:id` remains dynamic. ## Cache Matrix After This Branch - `/_assets/**`: `public, max-age=31536000, immutable` - `/assets/**`: `public, max-age=31536000, immutable` - live `/api/**`: explicit `no-store` - `/api/health`: explicit `no-store` - `/api/instance`: explicit `no-store` - `/game/:id`: explicit `no-store` - `/` and SPA fallback: `public, max-age=0, s-maxage=300, stale-while-revalidate=86400` ## Notes / Tradeoffs - `/api/instance` is a temporary compromise. It exists because `INSTANCE_ID` is currently random per boot, which is not safe to embed into cacheable shared HTML. - The current matchmaking flow still asks the client to provide `instance_id` during `matchmaking/join`. That is functional, but it is the wrong ownership boundary: instance selection should be handled by the matchmaking service, not by the browser. - The cleaner end-state would be: - make `matchmaking/join` stop requiring `instance_id` from the client, and let the matchmaking service select a healthy instance from worker check-ins - This branch makes the origin behavior edge-cache-friendly, but Cloudflare still needs matching cache rules if HTML itself should be cached at the edge. ## Validation Verified during development with: - `npx tsc --noEmit` - `node node_modules\\vite\\bin\\vite.js build` - `node node_modules\\vitest\\vitest.mjs run tests/server/RenderHtml.test.ts tests/server/NoStoreHeaders.test.ts tests/server/StaticAssetCache.test.ts tests/core/configuration/ConfigLoader.test.ts` Additional targeted tests added: - `tests/AssetUrls.test.ts` - `tests/core/game/FetchGameMapLoader.test.ts` - `tests/core/configuration/ConfigLoader.test.ts` - `tests/server/NoStoreHeaders.test.ts` - `tests/server/StaticAssetCache.test.ts` - `tests/server/RenderHtml.test.ts` ## Known Existing Warnings The production build still reports pre-existing warnings that are not addressed by this branch: - inconsistent JSON import attributes for `resources/countries.json` - inconsistent JSON import attributes for `resources/QuickChat.json` - large chunk warnings from Vite ## Rollout Notes - Cache rules should treat `/_assets/**` and `/assets/**` as immutable. - Cloudflare will still classify HTML as dynamic after deploy unless matching edge cache rules are configured for it. ## Follow-ups - Remove `/api/instance` by changing `matchmaking/join` so the server selects the target instance, or by making `INSTANCE_ID` deploy-stable if the current contract must remain. ## Please complete the following: - [ ] I have added screenshots for all UI updates - [ ] 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: DISCORD_USERNAME |
||
|
|
b045608c89 |
ui: reduce HUD transparency for control, attacks, events, and hover panel (#3429)
## Description: Reduce HUD transparency for better readability by making the Control Panel, Attacks panel, Events/Chat panel, and Hover panel more opaque while keeping a subtle blur effect. ## Please complete the following: - [ x] I have added screenshots for all UI updates - [ ] 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: HulKiora Before : <img width="518" height="134" alt="image" src="https://github.com/user-attachments/assets/dd714a8e-5b8c-4754-b68d-a86a0f82afcf" /> After : <img width="519" height="138" alt="image" src="https://github.com/user-attachments/assets/828b88be-a071-474c-a4a2-80d1c679b3df" /> |
||
|
|
1d1b076672 |
Rename/fix: change Bots to Tribes (#3290)
## Description: Resolves #3285. As discussed on Discord. However, in at least one instance "Tribes" feels a bit off: in Humans vs Nations, team "Tribes" feels as human too while they are just bots. This PR changes Bots to Tribes outwardly by - Changing default EN translation. - Changing (untranslated) alt text in PlayerPanel. - To change "Team Bot" into "Team Tribes" too in PlayerInfoOverlay and TeamStats (team leaderboard in-game), translate team names in there from now on too. - This way we also fix a bug where team names were not translated yet in there. To add to that fix, also translate team names in LobbyPlayerView in the same way. For this we re-use the existing getTranslatedPlayerTeamLabel function from GameLeftSideBar by moving it to Utils. - No translation key was present yet for Humans and Nations teams, so added those to now be used in PlayerInfoOverlay, LobbyPlayerView and TeamStats for completeness. - No internal code changes so nothing breaks. **BEFORE (showing old team name Bot and also that team names weren't translated yet in TeamStats)**   **AFTER** (translations in Dutch only shown as proof here, did not include nl.json in the PR)      ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: tryout33 |
||
|
|
f7598369ed |
refactor: consolidate platform detection across client components (#3325)
## Description: This PR consolidates ad hoc platform/environment/viewport detection into a single shared utility. It is scoped to this refactor only, and serves as groundwork for the mobile-focused feature work planned for the v31 milestone. ### What changed - Introduced a shared `Platform` utility centralising: - OS detection (with `userAgentData` + UA fallback) - Electron environment detection - Viewport breakpoint helpers (`isMobileWidth`, `isTabletWidth`, `isDesktopWidth`) - Replaced duplicated inline checks across client files with the shared API. - Normalised Mac detection to derive from the consolidated OS logic rather than a separate regex. ### Why - Multiple client files each independently ran `navigator.userAgent` regexes or copy-pasted `isElectron` logic — this unifies all of that. - Puts a stable, tested abstraction in place before v31 mobile work lands, so mobile feature branches have a consistent surface to build against. ## Please complete the following: - [x] I have added screenshots for all UI updates (N/A: refactor only, no visible UI changes) - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file (N/A: no new user-facing strings) - [x] I have added relevant tests to the test directory (N/A: refactor only) - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: skigim |
||
|
|
18f52c01bb |
Improve moble UI again ✨ (#3226)
## Description: - Fix HeadsUpMessage appearing above Settings modal - Fix HeadsUpMessage appearing above Leaderboard - Remove PlayerInfoOverlay show/hide animation (we need quick access to the data!) - Close PlayerInfoOverlay on tap outside the map (gray area) - Fix error when tapping gray area outside the map - Close PlayerInfoOverlay on click/tap on itself ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: FloPinguin |
||
|
|
086a7e9000 |
Improve mobile UI ✨ (#3217)
## Description: ### Leaderboard cut off Previous: <img width="285" height="255" alt="Screenshot 2026-02-15 171617" src="https://github.com/user-attachments/assets/affb7559-3885-4cc3-bc1a-f653dcb13fb2" /> Now: <img width="302" height="299" alt="Screenshot 2026-02-15 171603" src="https://github.com/user-attachments/assets/623fe424-d744-46f7-99aa-710b010c4084" /> ### Attack ratio popup cut off Previous: <img width="276" height="806" alt="Screenshot 2026-02-15 171542" src="https://github.com/user-attachments/assets/2ac0ec19-feea-465a-b04b-323a18309d4d" /> Now: <img width="278" height="807" alt="Screenshot 2026-02-15 171533" src="https://github.com/user-attachments/assets/7e06aa96-04ba-4454-ba0e-cdaad74f79be" /> Also fixed this text overlap problem on boat retreat: <img width="359" height="192" alt="Screenshot 2026-02-15 172603" src="https://github.com/user-attachments/assets/e4cef05c-5dc3-4960-ab21-a2f0740e3380" /> ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: FloPinguin |
||
|
|
0c7da790f1 |
Improve Ingame UI ✨ (#3212)
## Description: - **Dynamic sidebar offset for top bars** - GameLeftSidebar, GameRightSidebar, and PlayerInfoOverlay now shift down when SpawnTimer and/or ImmunityTimer bars are visible (7px per bar). Implemented via events. - **Fixed text overflow** in HeadsUpMessage.ts (Random spawn message is long) - **Fixed inconsistent text sizing** in EventsDisplay - **Alliance icon horizontal** in PlayerInfoOverlay so the size of the overlay doesn't change if there is an alliance - **Nation relation coloring** - Nation player names are now colored based on their relation - **Background & Blur Unification** - **Border Radius & Page Edge Gap Standardization** - **EventsDisplay collapsed button:** Fixed badge hidden / inline-block CSS conflict (conditional rendering), added gap-2 between text and badge - **Right panel spacing:** Changed right container from sm:w-1/2 to sm:flex-1 to fill remaining space - **Leaderboard**: Rounded grid corners (rounded-lg overflow-hidden), removed last-row border, added `willUpdate` for auto-refresh on hide/show click, plus button styled to match toggle buttons - Other little CSS fixes (margins etc) Showcase: (Note the red mexico name on betrayal) https://github.com/user-attachments/assets/f0ed91de-3a07-4564-a209-3d7723edee55 Two progress bars at the top, mobile UI not cut off: https://github.com/user-attachments/assets/83f1fd64-ceab-4a74-8d16-6e1eeea1709d HeadsUpMessage text overflow fixed, SpawnTimer does not cut off the PlayerInfoOverlay: <img width="516" height="929" alt="Screenshot 2026-02-14 214410" src="https://github.com/user-attachments/assets/74f0edea-8c01-4394-a3d0-a3245922e0da" /> Previous: <img width="306" height="118" alt="Screenshot 2026-02-14 213705" src="https://github.com/user-attachments/assets/a7c7e8f3-f0e8-4213-8a8f-4f3677e9fc98" /> Smaller event panel text: <img width="594" height="975" alt="Screenshot 2026-02-14 215738" src="https://github.com/user-attachments/assets/33e80570-9260-40b0-b810-c71eda4861fc" /> ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: FloPinguin |
||
|
|
070b5060d8 |
fix: swap team text and buttons position; fix gap space on leaderboard (#3135)
## Description: 1. Swaps the position of the teams text and leaderboard buttons; 2. Edits the text and button margins 3. Fixes spacing bug where because of a "gap-2", if only one leaderboard is open, there's empty space on the left or right of the leaderboard. 4. Small code refactor proposed by code rabbit / icon description Button swap and spacing changes were suggested by: @FloPinguin @ryanbarlow97 ## 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 *** Screenshots: Before swapping the position and editing the spacing: <img width="242" height="151" alt="image" src="https://github.com/user-attachments/assets/cf196842-b469-45ab-a685-0a5e56b56378" /> After swapping the position and editing the spacing: ✔️ <img width="233" height="149" alt="image" src="https://github.com/user-attachments/assets/c88da4ec-0f23-4670-af5d-fce4124d4936" /> Before swapping the position and editing the spacing without the text: <img width="528" height="398" alt="image" src="https://github.com/user-attachments/assets/e1e31352-31d1-42a4-ad92-a60b0014b779" /> After swapping the position and editing the spacing without the text: ✔️ <img width="514" height="350" alt="image" src="https://github.com/user-attachments/assets/6a1f2391-e2f1-478e-bada-9436b7cb2e13" /> Before fixing the spacing on mobile: <img width="579" height="158" alt="image" src="https://github.com/user-attachments/assets/8d5e225b-6dbd-4a07-afeb-97035000a09d" /> After fixing the spacing on mobile: ✔️ <img width="575" height="134" alt="image" src="https://github.com/user-attachments/assets/f9016060-ac9e-47fc-8886-e3eee6359906" /> Before fixing the leaderboard space issue: <img width="511" height="398" alt="image" src="https://github.com/user-attachments/assets/0fadddcd-2c5f-4caf-b641-c7a3e19a5a14" /> <img width="511" height="398" alt="image" src="https://github.com/user-attachments/assets/2a9a9f7d-e08d-4908-b2d1-f26500c4c602" /> <img width="585" height="204" alt="image" src="https://github.com/user-attachments/assets/9dbb4c51-56ae-4e7a-b603-f49cd1dc2286" /> After fixing the leaderboard space issue: ✔️ <img width="533" height="463" alt="image" src="https://github.com/user-attachments/assets/c0608e83-974a-4950-94cd-896bc7dd7720" /> ##Discord username: martoi *** Signed-off-by: MartinIvovIv <https://github.com/martinIvovIv> |
||
|
|
289e246162 |
fix: spacing between team leaderboard buttons (#3101)
## Description: In team games, the UI buttons for the leaderboard and the team leaderboard look out of place. A bit of tailwind css fixes the look and a making the gap window specific makes the accessibility better. ## 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 *** Screenshots: Before change: <img width="218" height="130" alt="image" src="https://github.com/user-attachments/assets/e7366435-c3d3-44b9-af5f-05a1548bf743" /> After change: <img width="393" height="277" alt="image" src="https://github.com/user-attachments/assets/86dcb614-dd30-48f9-9048-fcb892a5dbae" /> Befre change with open leaderboard: <img width="491" height="211" alt="image" src="https://github.com/user-attachments/assets/4313fb89-8a61-4892-8c28-0c0d82bcc03b" /> After change with open leaderboard: <img width="531" height="251" alt="image" src="https://github.com/user-attachments/assets/9b4e2ed5-8427-4a7a-84dc-69169f53b031" /> Mobile before change: <img width="535" height="180" alt="image" src="https://github.com/user-attachments/assets/f6cc87be-1f7f-4bc7-bb1d-9afcce45ff6d" /> Mobile after change: <img width="469" height="199" alt="image" src="https://github.com/user-attachments/assets/ac4baa9d-4051-4938-a0a1-53d38efea7a8" /> Mobile before change with open leaderboard: <img width="501" height="195" alt="image" src="https://github.com/user-attachments/assets/a086cdd8-7898-4e13-a679-04b63be7a67b" /> Mobile after change with open leaderboard: <img width="446" height="238" alt="image" src="https://github.com/user-attachments/assets/8cc9c833-b8f9-43bb-9664-8cfb9f608cc4" /> Discord username: martoi *** Signed-off-by: MartinIvovIv <https://github.com/martinIvovIv> |
||
|
|
563ae3f90a |
fix; improvement proposal for the leaderboard buttons (#3107)
## Description: Changes the leaderboard buttons to look more like other buttons per suggestion by @FloPinguin ## 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 *** Screenshots: Before change: <img width="306" height="164" alt="image" src="https://github.com/user-attachments/assets/3ff5648c-b088-4d3e-a608-901c2e8d0402" /> After change: <img width="263" height="169" alt="image" src="https://github.com/user-attachments/assets/983f7d50-0c40-4365-9f34-d64a18e69c68" /> After change hover: <img width="315" height="221" alt="image" src="https://github.com/user-attachments/assets/e56746ae-9e65-437a-b27c-60ac6ab52d6c" /> Mobile: <img width="297" height="251" alt="image" src="https://github.com/user-attachments/assets/66f6de72-5002-4da9-95d9-63f67b6136e3" /> ##Discord username: martoi *** Signed-off-by: MartinIvovIv <https://github.com/martinIvovIv> |
||
|
|
e79c805804 |
refactor(ui): migrate tailwindcss v3 to v4 (#2735)
## Description: migrate tailwindcss v3 to v4 ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: wraith4081 --------- Co-authored-by: iamlewis <lewismmmm@gmail.com> Co-authored-by: Ryan <7389646+ryanbarlow97@users.noreply.github.com> |
||
|
|
26f5d40819 |
build: migrate build system to Vite and test runner to Vitest & Remove depracated husky usage (#2703)
- Replace Webpack with Vite for faster client bundling and HMR. - Migrate tests from Jest to Vitest and update configuration. - Update Web Worker instantiation to standard ESM syntax. - Implement Env utility in `src/core` for safe, hybrid environment variable access (Vite vs Node). - Refactor configuration loaders to remove direct `process.env` dependencies in shared code. - Update TypeScript environment definitions and project scripts for the new toolchain. - Remove the [depracated usage of the husky](https://github.com/typicode/husky/releases/tag/v9.0.1). ## Description: migrate build system to Vite and test runner to Vitest & Remove depracated husky usage ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: wraith4081 --------- Co-authored-by: evanpelle <evanpelle@gmail.com> |
||
|
|
e104614a85 |
Consistent border radius and padding from edge of screen for in game UI (#2576)
## Description: Moves all the in game ui to have a fixed padding around the edge of the screen and also makes all the in game ui have the same border radius. Before: <img width="569" height="802" alt="image" src="https://github.com/user-attachments/assets/2d51b66c-26bb-4835-abef-a646565280ba" /> <img width="2559" height="1238" alt="image" src="https://github.com/user-attachments/assets/00723649-bfc7-4e92-bee9-6cff0c2d688c" /> After: <img width="2559" height="1240" alt="image" src="https://github.com/user-attachments/assets/8dda98e3-8836-4363-8f33-5b699303ee4f" /> <img width="686" height="1122" alt="image" src="https://github.com/user-attachments/assets/a3820d1c-0579-4b2b-b2a8-7eb790e3ec39" /> ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: `rovi.` |
||
|
|
ec0bf079ef |
Fix spacing in player team label display (#2560)
## Description: Add a space after "Your team:" Before: <img width="237" height="117" alt="image" src="https://github.com/user-attachments/assets/60c0821f-a188-44bc-bcd5-e810a741b297" /> After: <img width="243" height="122" alt="image" src="https://github.com/user-attachments/assets/99b3ff5a-167d-4bae-b8f6-b1b199d4946a" /> ## 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 ## Please put your Discord username so you can be contacted if a bug or regression is found: tryout33 |
||
|
|
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 |
||
|
|
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 |
||
|
|
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 |
||
|
|
2cbe34ed79 |
update ui (#1368)
## Description: Center pop & gold information, and split up & remove the top bar. Before: <img width="1913" alt="Screenshot 2025-07-07 at 7 54 55 PM" src="https://github.com/user-attachments/assets/8ab59102-1f0e-4023-905f-e0b1b2fa73a2" /> After: <img width="1916" alt="Screenshot 2025-07-07 at 7 53 02 PM" src="https://github.com/user-attachments/assets/06c885e3-a179-4447-9d1d-0da3849e726d" /> reference:  ## 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 |
||
|
|
4e48eba910 |
Better In Game UI (#1243)
## Description: Top Bar Refactor – UI & UX Improvement Proposal This update overhauls the top game bar to improve clarity, responsiveness, and overall user experience across desktop and mobile. It consolidates player resources (e.g., building counts), integrates game controls (pause, settings, time), and enhances visual contrast. Key changes: Redesigned top bar with player data and game options. Team color indicator bar (team games only). Countdown bar during "Choose Starting Position" phase. Removed redundant info (e.g., troop/worker counts shown elsewhere). Inspired by strategy games like Travian Legends, this refactor offers a cleaner and more intuitive layout, especially for smaller screens. ⚠️ Note: This is a large change and likely contains visual or functional bugs I can’t currently spot due to fatigue. Thorough testing is required before approval. ## 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: Diessel  om/user-attachments/assets/3a0edbef-e621-4fc4-b6b7-c1ed  8f9a8219)  Closes #1165 --------- Co-authored-by: Scott Anderson <scottanderson@users.noreply.github.com> Co-authored-by: evanpelle <evanpelle@gmail.com> |
||
|
|
91adf1fa8b |
Add localization support for leaderboard and team-related UI elements (#1308)
## Description: As in the title ## Please complete the following: - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [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: pierogi69 --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: evanpelle <evanpelle@gmail.com> |
||
|
|
b7ee1caa52 |
* update leaderboard align (#1189)
## Description: This fix issue of leaderboard overlaping other elements. Also give option to dispaly ads below leaderboard since on desktop they are next to each other ## Please complete the following: - [ ] 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: Diessel   ts/assets/5886ceb2-2d15-4b0e-9c30-8c61b0255f48)   --------- Co-authored-by: evanpelle <evanpelle@gmail.com> |
||
|
|
38b87b7217 |
Rework leaderboard and team stats (#1164)
## Description: This PR update the leaderboard and team stats component to be more responsive on mobile and desktop. Include new component gameLeftISidebar that manages showing/hiding elements. Add icons as components for easy use ## 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: Diessel Closes #1163 Images:     |