
Actual magic numbers and mechanics info. Preface The wiki pages for SOS are egregiously outdated and not open to community edits. The ingame wiki is largely the same. This guide contains information about poorly documented, annoying mechanics. (Datamined directly from game source V69) More pages may be added, will take requests but only for features that are vague or poorly documented. Note on chronology measurements : Timers and stuff that tick down I have measured in seconds, it is probably something completely different, but I do not know, nor do I care to know. It could be moon phases, internal ticks, game ticks with respect to dt, ask the developer. For instance private final double timerD = 15.0D; Who knows, a timer of decimals in a double Riot Event Mechanics Riot SystemKey Insights: Loyalty is king: 75% loyalty completely prevents unrest Population scaling: Large cities are much more volatile Cascade system: Multiple chances to avoid riots through emigration/small events Compound effects: Failed mitigations make future riots more likely via warmup reduction Race-specific: Each race's loyalty is calculated separately, riots can be multi-racial Magic Numbers: Timer interval: 10.0 seconds (riot state checked every 10 seconds) Riot duration: 288.0 + (random * 1152.0) * 0.75 seconds = 4.8 to 18.4 minutes Suppression threshold: 0.3 (30% - when rioters drop below 30% of original count, riot ends) Prisoner conversion rate: 20% chance (1 in 5) that suppressed rioters become prisoners, 80% become subjects Key Mechanics: Riots spread spatially from a starting point using a flood-fill algorithm Citizens become rioters (HTYPES.RIOTER()) and can only be converted back to subjects/prisoners The riot auto-expires after the timer, regardless of intervention Standing penalty: 4608.0 applied to citizen class when riot starts Riot Event Core Timers Event check interval: 15.0 seconds Loyalty breakpoint: 0.75 (75% - below this triggers unrest) Minimum population: 15 citizens required for events Count decay rate: 0.013020833333333334 per cycle (~0.78% per minute) Riot Thresholds Emigration threshold: count drops to 0.25 (25%) Riot threshold: count drops to 0.0 (0%) Warmup reduction: Starts at 3, minimum 1 Event Probabilities Emigration chance: 66.7% (2/3 chance to emigrate instead of small event) Riot chance: 66.7% (2/3 chance to riot instead of emigration when count ≤ 0) Riot Trigger ConditionsEffective Loyalty = max(current_loyalty, target_loyalty) If loyalty ≥ 75%: No rebels If loyalty < 75%: Rebel ratio = (1 - loyalty/0.75) × population_factor Population Factor Population Factor = 0.1 + 0.9 × min(total_population/600, 1.0) Scales from 10% effect (small settlements) to 100% effect (600+ population) Count Decay System Decay rate: 0.78% per minute when loyalty is good Decay penalty: biggest_rebel_ratio × 0.78% per minute when loyalty is bad Power scaling: Rebel ratio raised to power of 0.8 (reduces extreme values) Event CascadePhase 1: Emigration Warning (count = 0.25) 66.7% chance to emigrate citizens 33.3% chance to trigger small events (strikes, brawls, etc.) +20-50% count recovery on successful small event Standing penalty: 2304 points Phase 2: Riot (count = 0.0) 66.7% chance to riot 33.3% chance to emigrate instead Count recovery: 100% + (total_rebels/total_population) Warmup reduction applied to recovery amount Guard Mechanics The Guard System Is Fundamentally Broken Only TWO scenarios actually make guards do anything at all: Regular Crime Module: When citizens commit crimes (theft, murder, etc.) Rioter Module: When rioters are rioting (with only 20% chance per cycle!) Guards will NOT respond to invasions, animal maulings, slave uprisings, or anything else you may reasonably expect. Everything else that should logically involve guards gets ZERO response. Magic Numbers Crime queue: 5 criminals max per guard post Standing cycles: 2-6 periods per guard session Standing duration: 5-9 seconds per cycle Patrol chance: 10% when work time ≤ 50% Equipment bonus: Level 2 battle stats while working Riot reporting: 20% chance per rioter cycle Riot suppression: Ends at 30% of original rioter count What Guards Actually Do Guards only respond to crimes explicitly reported via reportCriminal(): Regular crimes (theft, murder) - reported immediately Rioters - reported inconsistently (20% chance per cycle) Guards poll their crime queue every few seconds and engage catchCriminal() behavior when they find reported criminals. Guards are a reactive crime cleanup system, not active security. They don't scan for threats - they only respond to what's explicitly reported to them. The official documentation is misleading about their actual capabilities. Guards will passively defend themselves when a hostile entity bumps into them, or attacks them. Otherwise they will literally do nothing.
2026-02-15 19:00:09 发布在
希克斯之歌
说点好听的...
收藏
0
0
