Skip to content

refactor: calculer moonbreak, expéditions et verrou de lune avec ogamejs 4.1 - #10

Merged
rolljee merged 2 commits into
masterfrom
refactor/ogamejs-4.1-formulas
Oct 1, 2026
Merged

rolljee merged 2 commits into
masterfrom
refactor/ogamejs-4.1-formulas

Conversation

@rolljee

@rolljee rolljee commented Oct 1, 2026

Copy link
Copy Markdown
Owner

!mb, !oge et !ogl avaient chacun leur propre copie du calcul, recopiée ensuite dans ogame-ui. Ces trois calculs sont maintenant dans ogamejs 4.1.0 : le bot et le site appellent le même code.

1. Refactor, sans changement de réponse

  • mb.js : les vagues, la probabilité et les pertes viennent de Fleets.getMoonbreakWaves, getMoonbreakChance et getMoonbreakLosses. Le fichier ne garde que la lecture de la commande et le message.
  • expeditions.js : Fleets.getExpeditionMaxFind et getCargoCapacity. La commande suppose toujours un explorateur avec un éclaireur, sans bonus de formes de vie. Le bonus de classe est maintenant lu dans serverData (explorerBonusIncreasedExpeditionOutcome, 50 % par défaut).
  • create-link.js : Fleets.getMoonLockShips.

J'ai rejoué 30 commandes avant et après (15 !mb, 10 !oge, 5 !ogl, cas limites et erreurs compris) : les sorties sont identiques au caractère près.

2. Correctif : !mb au-delà de 4 attaquants

L'aide et le message d'erreur annoncent « Entre 1 et 4 attaquant(s) au plus », mais rien ne le vérifiait : !mb 8944 10 10 10 10 10 répondait une probabilité pour une attaque impossible. La commande renvoie maintenant le message d'erreur, comme ogame-ui. Un test couvre ce cas.

Lint OK, 21 tests sur 21 passent.

⚠️ Le merge sur master redéploie le bot en prod (GHCR, puis Scaleway).

🤖 Generated with Claude Code

rolljee and others added 2 commits October 1, 2026 18:14
…ejs 4.1

`!mb`, `!oge` et `!ogl` portaient leur propre copie du calcul, recopiée
ensuite dans ogame-ui. Les trois vivent maintenant dans ogamejs 4.1.0
(`Fleets.getMoonbreak*`, `getExpeditionMaxFind`, `getCargoCapacity`,
`getMoonLockShips`) : le bot et le site appellent le même code.

Les fichiers ne gardent que la lecture de la commande et le message. Les
réponses ne changent pas : 30 commandes rejouées avant et après, sorties
identiques à l'octet près. `!oge` suppose toujours un explorateur avec un
éclaireur, sans bonus de formes de vie, et lit désormais le bonus de
classe dans serverData (`explorerBonusIncreasedExpeditionOutcome`, 50 %
par défaut).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
L'aide et le message d'erreur annoncent « Entre 1 et 4 attaquant(s) au
plus », comme une attaque groupée en jeu, mais rien ne le vérifiait :
`!mb 8944 10 10 10 10 10` répondait une probabilité pour une attaque
impossible. ogame-ui refusait déjà ce cas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rolljee
rolljee merged commit cc9b4e1 into master Oct 1, 2026
1 check passed
@rolljee
rolljee deleted the refactor/ogamejs-4.1-formulas branch October 1, 2026 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant