feat(anotherworld): rendre le coffre-fort illimité #30

Merged
koka merged 1 commits from feature/safe-vault-unlimited-balances into main 2026-08-28 03:50:12 +00:00
Owner

Objectif

Implémente #29 en remplaçant les 27 piles du coffre-fort par trois soldes persistants 64 bits pour les rubis, saphirs et émeraudes.

  • migre automatiquement les anciennes piles vers les nouveaux soldes ;
  • synchronise et affiche les soldes 64 bits dans l’interface ;
  • conserve l’intégration du Shop via l’API publique SanctuaryCurrencyStorage ;
  • crédite directement les 20 % pillés dans le coffre-fort de l’attaquant afin d’éviter une génération non bornée d’objets.

Closes #29

Périmètre

  • Modules touchés : anotherworld.
  • APIs ou fichiers partagés touchés : consommation inchangée de SanctuaryCurrencyStorage, gradle.properties, vérificateurs racine, README, CHANGELOG et migration déclarative.
  • Dépend d'une autre branche/PR : non.

Compatibilité inter-mods

  • chaque donnée/règle reste dans son module propriétaire ;
  • les appels inter-mods passent par une API publique et une dépendance Gradle explicite ;
  • aucun cycle de dépendances n'est ajouté ;
  • les IDs et namespaces restent stables ;
  • les sauvegardes et protocoles restent compatibles, ou une migration/version est fournie ;
  • le comportement client, serveur et multijoueur a été considéré.

Migration : safe_vaults v3 → v4 et données Another World v4 → v5. Le protocole Another World passe de 1 à 2 pour synchroniser chaque solde sur deux mots 32 bits.

Version et validation

  • Another World passe en 0.0.0-alpha.55 ;
  • le pack reste en 26.2.0-alpha.206 car cette PR n'est pas une release ; le changelog et la migration indiquent que Packwiz sera actualisé à la prochaine release ;
  • les traductions FR/EN/RU sont complètes ;
  • ./gradlew :anotherworld:check verifySafeVaultFeature réussit ;
  • ./gradlew check réussit (133 tâches) ;
  • aucun build, log, backup, JAR généré, secret ou fichier personnel n'est commité.

Test manuel

Aucun test manuel en jeu dans cette PR. Les tests couvrent le calcul du pillage sans overflow, la saturation, le découpage/recomposition des soldes 64 bits et les contrats de migration/ressources.

## Objectif Implémente #29 en remplaçant les 27 piles du coffre-fort par trois soldes persistants 64 bits pour les rubis, saphirs et émeraudes. - migre automatiquement les anciennes piles vers les nouveaux soldes ; - synchronise et affiche les soldes 64 bits dans l’interface ; - conserve l’intégration du Shop via l’API publique `SanctuaryCurrencyStorage` ; - crédite directement les 20 % pillés dans le coffre-fort de l’attaquant afin d’éviter une génération non bornée d’objets. Closes #29 ## Périmètre - Modules touchés : `anotherworld`. - APIs ou fichiers partagés touchés : consommation inchangée de `SanctuaryCurrencyStorage`, `gradle.properties`, vérificateurs racine, README, CHANGELOG et migration déclarative. - Dépend d'une autre branche/PR : non. ## Compatibilité inter-mods - [x] chaque donnée/règle reste dans son module propriétaire ; - [x] les appels inter-mods passent par une API publique et une dépendance Gradle explicite ; - [x] aucun cycle de dépendances n'est ajouté ; - [x] les IDs et namespaces restent stables ; - [x] les sauvegardes et protocoles restent compatibles, ou une migration/version est fournie ; - [x] le comportement client, serveur et multijoueur a été considéré. Migration : `safe_vaults` v3 → v4 et données Another World v4 → v5. Le protocole Another World passe de 1 à 2 pour synchroniser chaque solde sur deux mots 32 bits. ## Version et validation - [x] Another World passe en `0.0.0-alpha.55` ; - [x] le pack reste en `26.2.0-alpha.206` car cette PR n'est pas une release ; le changelog et la migration indiquent que Packwiz sera actualisé à la prochaine release ; - [x] les traductions FR/EN/RU sont complètes ; - [x] `./gradlew :anotherworld:check verifySafeVaultFeature` réussit ; - [x] `./gradlew check` réussit (133 tâches) ; - [x] aucun build, log, backup, JAR généré, secret ou fichier personnel n'est commité. ## Test manuel Aucun test manuel en jeu dans cette PR. Les tests couvrent le calcul du pillage sans overflow, la saturation, le découpage/recomposition des soldes 64 bits et les contrats de migration/ressources.
koka added 1 commit 2026-08-28 03:45:44 +00:00
feat(anotherworld): add unlimited safe balances
Verification 26.2 / check (pull_request) Canceled after 0s
236d28854e
koka merged commit e599727d26 into main 2026-08-28 03:50:12 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: koka/sanctuary#30