- Add [artifacts] config section to world.toml with artifact_chance_formula (x = station level) and artifact_win_count - Roll artifact chance before each schematic drop; on success show 2 schematics + Artifact option instead of 3 - Selecting Artifact increments artifact count; reaching artifact_win_count triggers win screen - Display "Artifacts: x/y" in header bar via ArtifactCountChangedEvent - Win screen mirrors game-over screen with "Won!" caption and same Restart/Quit buttons Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DUsFgd2Ga6pmLz8giS8WUn
30 lines
756 B
C++
30 lines
756 B
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
enum class SchematicType
|
|
{
|
|
Ship,
|
|
Module,
|
|
Recipe,
|
|
Artifact
|
|
};
|
|
|
|
// One option presented to the player in the schematic choice dialog
|
|
// (REQ-DEF-SCHEMATIC-DROP). Built by the simulation when enemy stations are
|
|
// destroyed; the UI reads these to populate the dialog.
|
|
struct SchematicChoiceOption
|
|
{
|
|
std::string schematicId;
|
|
SchematicType type;
|
|
std::string displayName;
|
|
bool isNewUnlock;
|
|
int targetLevel;
|
|
|
|
// Display names of items produced by recipes that would newly become
|
|
// implicitly unlocked (REQ-LOCK-IMPLICIT) if this option is selected.
|
|
// Deduplicated and sorted alphabetically; empty if none.
|
|
std::vector<std::string> newlyUnlockedItemNames;
|
|
};
|