feat: Game Systems Sprint - Issues #413, #415, #416#497
Merged
PipFoweraker merged 3 commits intomainfrom Dec 19, 2025
Merged
Conversation
The apply_effects() function was using incorrect metric names: - "sentiment" should be "public_sentiment" - "trust" should be "lab_trust" This mismatch caused media stories to silently fail to affect public opinion, as update_opinion() didn't recognize the metric names and triggered warnings instead of applying changes. The naming convention was established in the Phase 1 implementation (commit 2b554b2) but apply_effects() wasn't updated to match. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Implements a tech-tree style action discovery system where actions unlock based on game state and progress: ## New Features in actions.gd: - is_action_unlocked(): Check if action meets unlock conditions - get_unlock_hint(): Get tooltip text explaining unlock requirements - Unlock condition types supported: - turn_min: Minimum turn number - staff_min: Minimum staff count - reputation_min: Minimum reputation - papers_min: Minimum papers published - research_min: Minimum research points - has_upgrade: Requires specific upgrade ## Actions with unlock conditions: - Team Building: Requires 2+ staff - Safety Audit: Unlocks at turn 5 - Strategic submenu: Turn 10 + 30 reputation - Travel & Conferences: Requires 1+ papers ## UI Integration in main_ui.gd: - Actions are filtered before display - Locked actions are hidden (not grayed out) - Debug logging shows unlock/lock counts This reduces early-game cognitive load by showing only relevant actions and creates a natural progression as players grow their lab. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Implements a complete technical debt tracking and visualization system: ## Core System (game_state.gd): - Added `technical_debt` variable (0-100 scale) - Constants: MAX_TECHNICAL_DEBT, TECH_DEBT_DOOM_MULTIPLIER (5%) - add_technical_debt(amount, reason): Accumulate debt with logging - reduce_technical_debt(amount, reason): Pay down debt - get_tech_debt_status(): Returns "minimal/low/moderate/high/critical" - get_tech_debt_color(): Returns severity color for UI - get_tech_debt_failure_chance(): Calculates failure probability - Integrated with doom_system.doom_sources["technical_debt"] - Added to to_dict() for UI serialization ## UI Component (tech_debt_indicator.gd): - Visual progress bar with threshold markers - Color-coded severity levels (green -> yellow -> orange -> red) - Hover tooltips with warning messages - Signals for click/hover events ## UI Integration (main_ui.gd): - Added tech debt warnings at 50% and 75% levels - Warnings appear when committing turn actions - Matches existing warning pattern (doom, reputation, money) Technical debt above 20 contributes to doom via TECH_DEBT_DOOM_MULTIPLIER. Failure chance scales at 2% per 10 debt points above threshold. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR completes all three issues from the 48-hour game systems sprint:
Issue #413: Public Opinion System Logic Issues ✅
media_story.gd:apply_effects()"sentiment"to"public_sentiment"and"trust"to"lab_trust"Issue #415: Smart Action Button Discovery System ✅
is_action_unlocked()andget_unlock_hint()functionsIssue #416: Technical Debt Visualization System ✅
game_state.gdTechDebtIndicatorUI component with visual progress barFiles Changed
media_story.gdactions.gdmain_ui.gdgame_state.gdtech_debt_indicator.gdAction Unlock Conditions
Test Plan
Fixes #413
Fixes #415
Fixes #416
🤖 Generated with Claude Code