Introduce barbarians as a non-diplomatic civ appended to state.civs, providing escalating pressure that scales with difficulty and target civ era. Key mechanics: - Uprisings spawn on explored tiles, capped by a growing population limit to keep raids an event rather than a fourth empire - Era-based pressure curve: raids decay as a civ advances, stopping entirely at hard-stop techs (industrialization/conscription/railroad) - Killing hordes summons a Barbarian Leader with an escort; cornering the lone leader triggers a gold ransom scaled by era and difficulty - Captured cities are either razed (small) or held inert (large) - Leader expires after a set lifetime if not ransomed Diplomacy and AI carefully exclude barbarians to prevent three traps: shared-enemy attitude pollution, permanent war phase pinning, and government ladder lockout. Pre-feature saves remain compatible. New assets: optional civilization-barbarians.png sheet (8 frames). Updated sprites.md and unit tooltips. Comprehensive verification tests added in verifyCivilization.js. |
||
|---|---|---|
| .. | ||
| data | ||
| lib | ||
| bloxorzMap.js | ||
| buildCommonWords.js | ||
| fetchStarControlAssets.js | ||
| genBloxorz.js | ||
| genDotLink.js | ||
| genExcitebikeTracks.js | ||
| genGooTower.js | ||
| genJumble.js | ||
| genKatamino.js | ||
| genMiniCrossword.js | ||
| genPeggleLevels.js | ||
| genPuddingMonsters.js | ||
| genRushHour.js | ||
| genSpireClimbCreatures.js | ||
| genSuperKartTracks.js | ||
| genTACampaign.js | ||
| genTetrisAttackPuzzles.js | ||
| genZuma.js | ||
| readExcitebikeMaps.js | ||
| verifyAdvanceWars.js | ||
| verifyBalatro.js | ||
| verifyBejeweled.js | ||
| verifyBlockFighter.js | ||
| verifyBloxorz.js | ||
| verifyBookwork.js | ||
| verifyCanasta.js | ||
| verifyCivilization.js | ||
| verifyColoradoDefense.js | ||
| verifyCribbage.js | ||
| verifyDotLink.js | ||
| verifyDungeonBoss.js | ||
| verifyExcitebike.js | ||
| verifyGinRummy.js | ||
| verifyGooTower.js | ||
| verifyJewelQuest.js | ||
| verifyJumble.js | ||
| verifyMahjong.js | ||
| verifyMahjongMatch.js | ||
| verifyMiniMotorways.js | ||
| verifyPaiGowPoker.js | ||
| verifyPeggle.js | ||
| verifyPuddingMonsters.js | ||
| verifyRisk.js | ||
| verifyRummikub.js | ||
| verifyRushHour.js | ||
| verifySWDBG.js | ||
| verifySlots.js | ||
| verifySpireClimb.js | ||
| verifyStarControl.js | ||
| verifySuperKart.js | ||
| verifyTempest.js | ||
| verifyTetrisAttack.js | ||
| verifyTotalAnnihilation.js | ||
| verifyZuma.js | ||