Files
tevansandClaude Opus 4.8 405afa6f94 Expand detail: cast/OTEM/locations, separate Field Dossier, pay up to 2000
- Raise CBS pay scale so the reward slider reaches ~2000c (Red), higher for
  Black/Platinum.
- New per-briefing detail: generated cast (NPCs), OTEM (items & equipment) and
  locations, each with a player line and a GM-only secret (core/data/detail.js).
- New separate player document: fieldDossierHTML() — cast, OTEM, locations and
  a procedural schematic site map (art: siteMapSVG). GM Dossier gains the
  matching secrets section.
- Standalone app: Player Brief / Field Dossier / GM Dossier / All views.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 16:33:36 +01:00

105 lines
3.6 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Blueprint News — SLA BPN Generator</title>
<link id="link-fonts" rel="stylesheet" href="assets/fonts/fonts.css">
<link id="link-render" rel="stylesheet" href="render/bpn-render.css">
<link rel="stylesheet" href="app/app.css">
</head>
<body>
<div class="app">
<header class="topbar">
<div class="topbar__mark">BLUE<b>PRINT</b> NEWS</div>
<div class="topbar__tag">SLA Industries · Contract Dispatch Grid</div>
<div class="topbar__spacer"></div>
<div class="topbar__hint">Player Brief &amp; GM Dossier · engine-agnostic</div>
</header>
<aside class="rail">
<div class="field">
<label for="f-colour">Colour Band</label>
<select id="f-colour"></select>
</div>
<div class="field">
<label for="f-frame">Scenario Frame</label>
<select id="f-frame"></select>
</div>
<div class="field field--row">
<div class="field">
<label for="f-squad">Squad Size</label>
<input id="f-squad" type="number" min="1" max="8" value="4">
</div>
<div class="field">
<label for="f-payment">Payment</label>
<select id="f-payment">
<option value="">Any</option>
<option value="Per Squad">Per Squad</option>
<option value="Per Operative">Per Operative</option>
</select>
</div>
</div>
<div class="field">
<label for="f-scl">Operative SCL Level</label>
<select id="f-scl"></select>
</div>
<div class="field">
<label for="f-cbs">Reward — <span id="cbs-basis">per squad</span></label>
<input id="f-cbs" type="range" step="5">
<div class="slider-readout" id="cbs-readout"></div>
</div>
<div class="field">
<label for="f-scli">SCL Increase Reward</label>
<input id="f-scli" type="range" step="0.05">
<div class="slider-readout" id="scli-readout"></div>
</div>
<button id="btn-generate" class="btn btn--primary">Generate BPN</button>
<button id="btn-reroll" class="btn btn--ghost btn--sm">Re-roll (new seed)</button>
<div class="rail__divider"></div>
<div class="field">
<label for="f-seed">Seed</label>
<div class="seed-row">
<input id="f-seed" type="text" spellcheck="false">
<button id="btn-copy-seed" class="btn btn--sm">Copy</button>
</div>
<button id="btn-use-seed" class="btn btn--sm">Reproduce from seed</button>
</div>
<div class="rail__divider"></div>
<div class="btn-row">
<button id="btn-save" class="btn btn--sm">Save</button>
<button id="btn-print" class="btn btn--sm">Print</button>
<button id="btn-export" class="btn btn--sm">Export HTML</button>
</div>
<div class="rail__divider"></div>
<p class="rail__heading">Saved Briefings</p>
<div id="library" class="library"></div>
</aside>
<main class="stage">
<div class="stage__bar">
<div class="viewtoggle" role="group" aria-label="View">
<button data-view="player" aria-pressed="true">Player Brief</button>
<button data-view="field" aria-pressed="false">Field Dossier</button>
<button data-view="gm" aria-pressed="false">GM Dossier</button>
<button data-view="both" aria-pressed="false">All</button>
</div>
</div>
<div id="output" class="output bpn"></div>
</main>
</div>
<script type="module" src="app/app.js"></script>
</body>
</html>