Combat power & the front
Every tick the front tilts toward whoever has more effective land power, and that tilt slowly pushes the war score toward a decision.
How it works
Each side's strength is computed by sidePower(): _landPow() rates raw forces as army×1.0 + navy×0.5 + air×0.7, then scales it by military tech, stability, an equipment factor, and a nuclear-arsenal bonus. That is multiplied by your commit fraction (how much of your army you actually threw at this front), proximity, war-focus, doctrine, and any assigned general's bonus.
The front then tilts: tilt = (attackPow − defendPow) / (attackPow + defendPow + 1), a value between −1 and +1. The war score moves by tilt × 14 each resolution and is clamped to ±150. When the score reaches WAR_END (100) the attacker can force terms; at −100 the defenders throw the invasion back.
Fighting costs troops in proportion to the enemy's strength: the attacker loses army at dp × 0.030 per tick, the defender at ap × 0.040 (defenders in the field bleed a bit faster), with navy and air chipped away too. Limited wars halve all attrition so proxy skirmishes don't collapse your army.
Formulas
_landPow = (army×1.0 + navy×0.5 + air×0.7) × (0.6 + milTech×0.048) × (0.6 + stability/250) × equip × (1 + min(1.7, log10(1+nukes)×0.62))tilt = (attackPow − defendPow) / (attackPow + defendPow + 1); warScore += tilt × 14attacker.army −= defendPow × 0.030; defender.army −= attackPow × 0.040Key numbers
How to play
- ▸Raw troop count is only the start — milTech and stability multiply your land power, so a smaller modern, stable army can out-tilt a big shaky one.
- ▸A near-even front (tilt near 0) barely moves the score; concentrate force to push tilt well above 0 before the war exhausts you.
- ▸Navy and air only count half and 0.7 toward the land front, but they open occupation (amphibious reach) — keep some for winning the ground, not just the score.
- ▸Assign a general and pick war-focus before big offensives; the multipliers stack directly onto your side's power.