- Introduce the MissionDebrief component to display after-action reports, including XP, rewards, and squad status. - Implement the MissionGenerator class to create procedural side missions, enhancing replayability and resource management. - Update mission schema to include mission objects for INTERACT objectives, improving mission complexity. - Enhance GameLoop and MissionManager to support new mission features and interactions. - Add tests for MissionDebrief and MissionGenerator to ensure functionality and integration within the game architecture.
1.9 KiB
1.9 KiB
Mission Debrief Specification: After Action Report
This document defines the UI for the Mission Results Screen. It appears after a mission concludes (Victory or Defeat) but before returning to the Hub.
1. Visual Design
Style: A clipboard or field report overlay.
Context: It overlays the frozen 3D scene of the final moment of the battle.
Layout
- Header: "MISSION ACCOMPLISHED" (Gold) or "MISSION FAILED" (Red).
- Primary Stats (Top Row):
- XP Gained: Numeric tally with a filling bar animation.
- Turns Taken: Compare against "Par" or limits.
- Rewards (Middle Panel):
- Currency: Aether Shards & Cores gained.
- Loot Grid: A grid of items found. Hovering shows tooltips.
- Reputation: A bar showing the Faction Standing change (e.g., "Iron Legion +15").
- Roster Status (Bottom Row):
- Portraits of the squad.
- Status: "OK", "Injured", "Dead" (Greyed out).
- Level Up: If a unit leveled up, show a "Level Up!" badge.
- Footer: "RETURN TO BASE" button.
2. TypeScript Interface
// src/types/Debrief.ts
import { ItemInstance } from "./Inventory";
export interface MissionResult {
outcome: "VICTORY" | "DEFEAT";
missionTitle: string;
// Rewards
xpEarned: number;
currency: { shards: number; cores: number };
loot: ItemInstance[];
reputationChanges: { factionId: string; amount: number }[];
// Squad State Changes
squadUpdates: {
unitId: string;
isDead: boolean;
leveledUp: boolean;
damageTaken: number;
}[];
}
3. Logic & Integration
- Trigger:
GameLoopfinishesRESOLUTIONphase -> calculatesMissionResultobject -> Dispatchesshow-debrief. - Flow: 1.
MissionDebriefcomponent mounts. 2. Animations play (XP bars fill, Loot pops in). 3. Player reviews. 4. Player clicks "Return". 5. Component dispatchesdebrief-closed. 6.GameStateManagertransitions toSTATE_META_HUB.