DATABASE / FORMULAS
Formula Reference
No derivations, just conclusions. All formulas can be found in OpenFrontIO/src/core/configuration/Config.ts.
⚠ Reading Notes
Formulas use in-game variable names (tick, tiles, troops).
10 ticks ≈ 1 second. Constant DEFENSE_DEBUFF_MIDPOINT = 150,000 tiles from source.
- 平原地形
- mag = 80, speed = 16.5
- 高地地形
- mag = 100, speed = 20
- 山地地形
- mag = 120, speed = 25
- 防御工事增益
- 范围 30 tiles 内:mag ×5, speed ×3
- 辐射区减益
- mag *= (5 - falloutRatio × 2)
- 大军减益 sigmoid
- defenseSig = 1 - sigmoid(defender.tiles, ln(2)/50000, 150000)
- 背叛减益
- 防御 ×0.5, 速度 ×0.8, 持续 300 ticks (30s)
- 攻击方大规模加成
- tiles > 100k 时: bonus = (100k/tiles)^0.7
- 人口上限基础
- 2 × (0.6 × tiles^0.6 × 1000 + 50,000) + Σ(cityLevel × 250,000)
- 人口类型乘数
- Human ×1 / Bot ÷3 / Nation Easy ×0.5, Med ×0.75, Hard ×1, Imp ×1.25
- 部队增长率
- toAdd = (10 + troops^0.73 / 4) × (1 - troops / maxTroops)
- 基础金币产出
- 玩家 100 / tick,Bot 50 / tick(乘 goldMultiplier)
- 城市部队加成
- 每级 City 提供 +250,000 部队上限
- 火车收益
- baseGold (ally 35k / team 25k / self 10k) − distPenalty (5,000 × max(0, citiesVisited − 9)),下限 5,000
- 贸易船收益
- floor( (75,000 / (1 + exp(-0.03 × (dist - 300))) + 50 × dist) × goldMultiplier )
- 贸易船生成
- spawnRate = floor((100 × 1/(rejections+1)) / (1 - sigmoid(numShips, ln(2)/50, 200)))
- 贸易船上限
- 全局 150 艘 (v24)
- 原子弹冲击半径
- inner 12 / outer 30 tiles
- 氢弹冲击半径
- inner 80 / outer 100 tiles
- MIRV 弹头
- inner 12 / outer 18 tiles
- SAM 冷却
- 90 ticks (9s)
- SAM 射程公式
- samRange(level) = 150 - 480 / (level + 5); 默认 70, 顶级 ≈ 140, 上限 150
- SAM 拦截目标
- 仅 AtomBomb / HydrogenBomb;MIRV 本体与弹头免疫
- 提前射击窗口
- tickBeforeShooting = nukeReachTick − samReachTick ≥ 0
- 同盟时长
- 3000 ticks ≈ 5 分钟
- 延期提示
- 到期前 300 ticks (30s) 提示双方
- 续约规则
- 双方同意自动续期;仅一方同意进入延期窗口
- 背叛立即效果
- 触发自动禁运;防御减益 0.5,速度减益 0.8,持续 300 ticks
- 出生免疫
- 50 ticks(5 秒)攻击免疫
- 随机出生阶段
- 单人 100 turns / 多人随机 150 turns / 多人固定 300 turns