uwarp-space 2026-02-15
NPC encounters wired into movement, TWGS display parity achieved, and terminal rebranded as UWARP
126 files · 3,741+ · 64,065-

NPC encounters in movement

4 files changed
  • npc.py Ferrengi NPC encounter logic wired into movement flow
  • combat.py Ferrengi combat logic; randomized scoring added
  • encounter.py Encounter rules updated; default alien roster populated with canonical Ferrengi/NPC data
  • movement.py Movement rules now trigger alien encounters during warp
  • Wired alien NPC encounters into the movement flow so players can be attacked while warping decouple internal
    2 files
    • movement.py
    • npc.py
  • Populated default alien roster with canonical Ferrengi/NPC data decouple behavioral
    1 file
    • encounter.py
  • Added randomized scoring to Ferrengi target selection to prevent all NPCs from dogpiling the same player instantiate internal
    1 file
    • combat.py

TWGS format matching

4 files changed
  • sector_display.py Sector display formatting matched to TWGS output; color regression fixed
  • login.py Login screen matched to TWGS format; welcome screen rotation restored
  • game_loop.py Warping-to-sector message and Move echo tag added
  • display.py Display command formatting corrections
  • Matched login screen, sector display, and menu formatting to authentic TWGS TW2002 output decouple errata
    2 files
    • login.py
    • sector_display.py
  • Added “Warping to Sector X” message and <Move> echo tag for digit warp shortcuts decouple behavioral
    1 file
    • game_loop.py
  • Restored random welcome screen rotation for telnet login decouple internal
    1 file
    • login.py
  • Fixed sector display color regression in cmd_display remediate behavioral
    1 file
    • sector_display.py
  • Fixed 6 bugs found during interactive TWGS comparison testing qualify internal
    3 files
    • sector_display.py
    • game_loop.py
    • display.py

Shipyard and ship catalog fixes

2 files changed
  • shipyard.py Ship catalog: formula-derived buy costs added, stats corrected to TWGS values
  • player.py ShipRecord field names fixed; ship downgrade proportional jettison logic added
  • Added formula-derived buy costs to all 16 ships so the shipyard is functional instantiate internal
    1 file
    • shipyard.py
  • Updated ship stats to match canonical TWGS values; corrected ship names remediate internal
    1 file
    • shipyard.py
  • Fixed ShipRecord field names causing Ship Catalog crash remediate internal
    1 file
    • player.py
  • Fixed ship downgrade to proportionally jettison excess cargo instead of silently capping holds remediate internal
    1 file
    • shipyard.py

Admin and D command fixes

1 file changed
  • admin.py Teleportation D command bug fixed; admin debug commands added; sector indexing corrected

Terminal and WebSocket pipeline fixes

4 files changed
  • telnet.py Ctrl-C shutdown fix; WebSocket pipeline critical bugs fixed
  • http.py Web terminal input and UI rendering issues fixed
  • terminal.js Web terminal UI rendering fixed
  • session_bridge.py Game state wrapper persistence fix — use asdict() for dataclass objects
  • Fixed critical bugs in the terminal WebSocket pipeline and game state wrapper remediate internal
    1 file
    • session_bridge.py
  • Fixed Ctrl-C shutdown when clients are connected remediate internal
    1 file
    • telnet.py
  • Fixed web terminal input and UI rendering issues remediate behavioral
    2 files
    • terminal.js
    • http.py
  • Fixed critical persistence bug: use asdict() instead of model_dump() for dataclass objects remediate internal
    1 file
    • session_bridge.py

Character creation escape fix

1 file changed
  • login.py Escape from character creation now works at any confirmation prompt
  • Allowed escape from character creation at any confirmation prompt (not just the first) decouple behavioral
    1 file
    • login.py

UWARP rebrand

3 files changed
  • twhello_uwarp.ans New UWARP ANSI art replacing TWERK welcome banner
  • terminal.html Terminal page redesigned with centered layout, themed frames, and settings panel
  • terminal.js Terminal frame title renamed to Warp Agent Runtime Platform
  • Replaced TWERK welcome banner and CLI banner art with UWARP ANSI art decouple behavioral
    1 file
    • twhello_uwarp.ans
  • Renamed terminal frame title to “Warp Agent Runtime Platform” decouple internal
    1 file
    • terminal.js
  • Redesigned terminal page with centered layout, themed frames, and a settings panel baseline architectural
    1 file
    • terminal.html

Sector gameplay model improvements

2 files changed
  • sector.py Missing computed properties added to Sector gameplay model
  • __init__.py SQLite .db extension added to default data path resolution for serve commands
  • Added missing computed properties to Sector gameplay model instantiate internal
    1 file
    • sector.py
  • Added SQLite .db to default data path resolution for serve commands instantiate behavioral
    1 file
    • __init__.py
  • Fixed re-display of prompt when user presses Enter with empty input remediate behavioral
    1 file
    • game_loop.py