DATABASE / FORMULAS
Formules rapides
Sans dérivation, juste les conclusions. Toutes les formules correspondent à des implémentations trouvables dans OpenFrontIO/src/core/configuration/Config.ts.
⚠ Notes de lecture
Les formules utilisent les noms de variables internes du jeu (tick, tiles, troops).
10 ticks ≈ 1 seconde. La constante DEFENSE_DEBUFF_MIDPOINT = 150,000 tiles provient des constantes du code source.
- Terrain de plaine
- mag = 80, speed = 16.5
- Terrain de hauteurs
- mag = 100, speed = 20
- Terrain de montagne
- mag = 120, speed = 25
- Bonus Poste de défense
- Dans un rayon de 30 tiles : mag ×5, speed ×3
- Pénalité zone de retombées
- mag *= (5 - falloutRatio × 2)
- Pénalité sigmoïde grande armée
- defenseSig = 1 - sigmoid(defender.tiles, ln(2)/50000, 150000)
- Pénalité de trahison
- Défense ×0.5, Vitesse ×0.8, durée 300 ticks (30s)
- Bonus grand attaquant
- Quand tiles > 100k : bonus = (100k/tiles)^0.7
- Base limite de population
- 2 × (0.6 × tiles^0.6 × 1000 + 50 000) + Σ(cityLevel × 250 000)
- Multiplicateur de type
- Humain ×1 / Bot ÷3 / Nation Easy ×0.5, Med ×0.75, Hard ×1, Imp ×1.25
- Taux de croissance des troupes
- toAdd = (10 + troops^0.73 / 4) × (1 - troops / maxTroops)
- Revenu d'or de base
- Joueurs 100 / tick, Bots 50 / tick (× goldMultiplier)
- Bonus troupes Ville
- Chaque niveau de Ville fournit +250 000 cap de troupes
- Revenu des trains
- baseGold (allié 35k / équipe 25k / soi 10k) − distPenalty (5 000 × max(0, citiesVisited − 9)), min 5 000
- Revenu navires de commerce
- floor( (75 000 / (1 + exp(-0.03 × (dist - 300))) + 50 × dist) × goldMultiplier )
- Spawn navires de commerce
- spawnRate = floor((100 × 1/(rejections+1)) / (1 - sigmoid(numShips, ln(2)/50, 200)))
- Cap navires de commerce
- Global 150 navires (v24)
- Rayon d'explosion bombe atomique
- inner 12 / outer 30 tiles
- Rayon d'explosion bombe à hydrogène
- inner 80 / outer 100 tiles
- Tête MIRV
- inner 12 / outer 18 tiles
- Cooldown SAM
- 90 ticks (9s)
- Formule de portée SAM
- samRange(level) = 150 - 480 / (level + 5) ; défaut 70, max ≈ 140, plafond 150
- Cibles d'interception SAM
- Seulement AtomBomb / HydrogenBomb ; corps et têtes MIRV immunisés
- Fenêtre de tir anticipé
- tickBeforeShooting = nukeReachTick − samReachTick ≥ 0
- Durée d'alliance
- 3000 ticks ≈ 5 minutes
- Avertissement de renouvellement
- Les deux parties sont notifiées 300 ticks (30s) avant l'expiration
- Règles de renouvellement
- Accord mutuel = renouvellement automatique ; accord unilatéral = fenêtre de renouvellement
- Effet immédiat de trahison
- Déclenche embargo automatique ; défense ×0.5, vitesse ×0.8, durée 300 ticks
- Immunité de spawn
- 50 ticks (5 secondes) d'immunité aux attaques
- Phase de spawn aléatoire
- Solo 100 tours / Multi aléatoire 150 tours / Multi fixe 300 tours