Add game mode categories, character creation, on-foot ship/hub mode, RAM currency, and in-ship navigation

Bundles several sessions' worth of previously uncommitted work: map
categories with Domination/Conquest/King of the Hill mode stubs and a
server-list mode filter; a procedurally-drawn character-creation screen
replacing the old callsign-only PROFILE overlay; the on-foot groundwork
(walkable station hub, ship interior, character controller) plus the RAM
currency backend; and today's addition, an in-ship Helldivers-2-style
navigation table that QUICK PLAY's queue/connect flow and the Belters/
Military hub travel now live behind, with hub-and-ship return paths and a
context-aware pause menu usable both in-match and inside the ship.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-19 12:30:22 -04:00
parent be5c41f82f
commit d3bed34c6c
124 changed files with 3347 additions and 159 deletions
+6
View File
@@ -3,6 +3,7 @@ from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app import crud
from app.config import settings
from app.database import get_db
from app.models import GameServer, Match, MatchPlayer
from app.schemas import MatchReportRequest
@@ -48,6 +49,11 @@ async def report_match(req: MatchReportRequest, db: AsyncSession = Depends(get_d
player.kills += result.kills
player.deaths += result.deaths
player.hours_played += result.seconds_played / 3600.0
player.ram_kb += (
settings.ram_payout_participation_kb
+ result.kills * settings.ram_payout_per_kill_kb
+ (settings.ram_payout_win_bonus_kb if result.is_winner else 0)
)
if result.is_winner:
player.wins += 1
elif req.winner_team is not None: