Skip to main content

08 — HUD KOKPIT MEDALLION (capacitor, module, ring, heat, glass)

Status: SPEC-FINAL (eksekusi: fase UE, setelah 10.V DONE). Induk: 06-gameplay-systems.md (skill/UX/acceptance), 04-graphics.md (UMG/material/anggaran), 03-implementasi.md (kontrak mirror), combat.ts (damage per-subsystem + ceiling 12), cockpitGradePass/hud.ts (web). Prinsip satu kalimat: HUD = command board ke simulation engine, bukan dekorasi — tiap piksel = state server. Anti-duplikasi: layout TAC/VESSEL/slot = 06 §2.6; angka damage = combat.ts; file ini HANYA: glass angka, capacitor, module, ring, heat, animasi, UX.

1. Geometri medallion (FINAL)

  • Lingkaran tengah = fokus mata: speed + capacitor + 3 ring defense.
  • Weapon slot (4, hotkey 1-4) = kanan bawah; TAC kiri; VESSEL kanan.
  • Alasan radial: semua info tempur dalam radius pandang 15° — tanpa gerak mata.

2. Glass panel — resep angka (FINAL, bukan “kaca gelap” kualitatif)

  • Base: #0a0f14, opacity 0.15–0.35 (Idle 0.15, Combat 0.35).
  • Edge glow: cyan #52c8ff / amber #ffb347, intensity 0.2–0.6 (aktif 0.6).
  • Fresnel: boost edge highlight 1.5x di tepi, 0 di tengah (teks steril).
  • Micro-noise emissive: 0.01–0.03 (anti flat, anti plastik 10.V §9).
  • Scanline: opsional, drift tick*2 (pola hud.ts:54), alpha ≤0.08.
  • Depth: gradient alpha + blur ringan background + parallax ikut kamera ±2px.

3. Capacitor (FINAL — kurva non-linear ala EVE)

  • Kapasitas 100. Recharge/ detik = 8 * (1 - cap/100) + 1 → kosong ngisi cepat, penuh melambat. Tiap aksi (scan/warp/repair/fire) kuras cap (06 §2.7).
  • Visual: lingkaran segmented, 1 segmen = 5 unit. Cap <25 = flicker + warning ring.
  • Server hitung cap; UE render segmen (habis = modul mati, bukan angka minus).

4. Module slot (FINAL — slot = sistem, bukan tombol)

  • State: OFF (gelap) / ACTIVE (glow 0.6) / COOLDOWN (radial sweep time-based) / OVERHEAT (merah + lock sampai dingin).
  • Tiap fire menaikkan heat rack +12; dingin -6/detik; 100 = OVERHEAT 5 detik.
  • Cooldown sweep = waktu server (cooldowns snapshot), bukan GIF.
  • Charge animation saat aktivasi + delay feedback 100ms (samakan tick).

5. Defense 3-ring (FINAL — mapping ke combat.ts, bukan model baru)

  • Outer = shield ← defense.health; middle = armor ← integrity vessel; inner = hull ← hullOf (mean systems). Damage layer-by-layer luar→dalam.
  • Ring pecah = threshold lewat: shield 0 → armor kena; armor 0 → hull kena.
  • Visual: ring utuh glow, retak <50%, hilang 0 + spark di titik hit.

6. Speed/nav (FINAL)

  • Throttle % + velocity m/s + boost indicator 2.2x. Warp = align bar 75% (06 §2.7).

7. Animasi (FINAL)

  • display = lerp(prev, current, dt*speed) speed 8 (eat: capacitor/HP, bukan snap).
  • Pulse low HP/cap: emissive 0.5 + 0.5*sin(t*6). Transisi mode 0.3s fade/scan.

8. UX principles (FINAL)

  • Clarity: angka kritis (cap/hull) ≥24px, selalu di medallion — tidak di panel jauh.
  • Telegraphing: OVERHEAT/wanted/threat = merah + gerak (pulse), info biasa statis.
  • Grouping: mirip→dekat (slot+cooldown, ring+cap, speed+throttle).

9. Kontrak C++ (mirror, tambah — bukan ubah existing)

  • FUE5Capacitor { Cap, Max, Recharge }, FUE5Module { Id, State, CooldownEnd, Heat }, FUE5Rings { Shield, Armor, Hull } ← snapshot field 1:1.
  • Intent: use_module { moduleId }, overheat_vent {} (key SAMA dua klien).
  • Acceptance: cap 0 = modul mati; overheat lock 5s; ring pecah berurutan; glass lulus banded (browser vs UE); HUD ≤0.5ms HIGH.