Je n'ai pas fini l'analyse mais je pense que ça va demander une refonte du code de gestion des régions.
Explication:
Notation : j'utilise inf(X) pour dire arrondi vers l'inférieur, et sup() pour arrondi supérieur.
- En l'état l'idée générale c'est que le pays est divisé en R régions selon la taille du territoire avec : inf(territoire/20000)
- Ensuite pour chaque type de territoire on calcule le nombre de régions pour ce type :
- Forêts, déserts, mers obtiennent un nombre de régions calculé par inf(territoire_du_type/20000). Pour le territoire conquis c'est sup(conquis/20000).
- Toutes ces régions sont décomptées de R et le restant est compté comme régions habitables.
Exemple 1 :
Un pays de 140'000km2 a 60000 forêts, 20000 déserts, 20000 mers 0 conquis et 40000 habitable, on a
- R = inf(140000/20000) = 7
- 3 forêts, 1 désert, 1 mer, 0 conquis = 5 régions allouées, les 2 restantes sont habitables. Tout colle.
Exemple 2
Ce même pays gagne 1 km2 de territoire conquis :
- R = inf(140001/20000) = 7
- 3 forêts, 1 désert, 1 mer, 1 conquis = 6 régions allouées. Il reste 1 région habitable. Le territoire a augmenté, le territoire habitable reste le même, mais le nombre de régions habitables ont diminué.
Exemple 3
Le pays de l'exemple 1 perd 1 km2 de forêts, 1 de mers et 1 de déserts et gagne 3 km2 de territoire habitable. On notera que inf(19999/20000) = 0.
- R = inf(140000/20000) = 7 (pas de changement)
- Restent 2 forêts, 0 déserts, 0 mers, 0 conquis. 7 - 2 = 5 régions habitables. Le territoire total n'a pas changé, le territoire habitable a augmenté de 3km2 mais 3 régions habitables sont gagnés(!)
Je pense que la bonne solution est de calculer le nombre de régions de chaque type d'abord en fonction de leur taille propre, y compris le territoire habitable. Et ensuite seulement additionner toutes les régions. Au final le nombre total de régions n'a aucune importance sur le fonctionnement du jeu (je ne crois même pas qu'il est visible hors de la page Territoire, et je peux très bien le retirer de cet endroit pour éviter la confusion).
Au contraire le nombre de régions habitables est hyper important et ne devrait pas être tributaire des arrondis.
Il faut que je finisse l'analyse pour comprendre comment ça interagit avec le terraformage. Mais je pense que c'est une bonne solution.
Si c'est effectivement la bonne solution
- Ce bug sera réglé : gagner du territoire ne causera jamais la perte de régions de quelque type (et donc la perte de zones habitables), comme dans l'exemple 2.
- Au moment du correctif, il va y avoir un grand gain de régions non-habitables (car on passera d'arrondi inférieur à supérieur).
- Au moment du correctif certains joueurs vont perdre des régions habitables et d'autres vont en gagner. Au total il y aura un net -40 régions habitables.
- Au total avec les valeurs d'aujourd'hui, il y aura