Files
dota_factory/src/lib/core/SchematicChoiceOption.h
Malte Langkabel 2b6dafcf50 implement artifact win condition (REQ-WIN-ARTIFACT-COUNT, REQ-WIN-SCREEN)
- 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
2026-06-30 09:18:19 +02:00

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;
};