[Feature][ABJ-02] Porter la Shit Ball d’Abjection dans Ouch #58

Closed
opened 2026-08-29 08:58:48 +00:00 by koka · 1 comment
Owner

Résultat joueur attendu

La abjection:shit_ball produite par /shit peut de nouveau être ramassée et lancée. À l’impact, elle joue le son boueux historique et donne sept secondes de nausée à une créature vivante ; un nouvel impact prolonge la durée déjà présente.

Propriété et intégration

  • Module propriétaire : ouch, car le lancer, l’entité de projectile et son effet à l’impact relèvent du combat.
  • Autre module appelé : onlyfun, propriétaire de la présentation Abjection et de l’objet produit par ABJ-01.
  • API ou donnée partagée : contrat public minimal entre Only Fun et Ouch pour l’objet et la fabrique du projectile ; dépendance Gradle explicite ouch -> onlyfun, sans cycle.
  • Impact sauvegarde/réseau : aucune donnée persistante ; création, consommation, collision et effet validés côté serveur.
  • Compatibilité : conserver l’ID historique abjection:shit_ball pour l’objet et le type d’entité, sans enregistrer une seconde identité concurrente.

Critères d’acceptation

  • la pile est limitée à 16 et un lancer consomme exactement une unité hors mode créatif ;
  • le projectile conserve sa taille historique de 0,25 × 0,25 bloc et utilise le rendu d’objet lancé ;
  • l’impact sur une entité vivante ajoute sept secondes de nausée à la durée existante ;
  • l’impact joue le son de pose de boue historique et ne duplique pas l’objet ;
  • les dispensers et le lancer manuel créent la même entité autoritaire côté serveur ;
  • l’objet obtenu via /shit, l’inventaire créatif, la recette du cube et toute migration désignent le même ID ;
  • aucun cycle de dépendances ni payload client non borné n’est introduit ;
  • Ouch est versionné et ./gradlew :onlyfun:check :ouch:check puis ./gradlew check réussissent.

Dépendance

Dépend de ABJ-01.

Découpage proposé

  1. Définir le contrat public entre Only Fun et Ouch.
  2. Porter l’item lançable, l’entité et son renderer.
  3. Tester consommation, collision, nausée cumulée et dispenser.
  4. Incrémenter la version d’Ouch.
## Résultat joueur attendu La `abjection:shit_ball` produite par `/shit` peut de nouveau être ramassée et lancée. À l’impact, elle joue le son boueux historique et donne sept secondes de nausée à une créature vivante ; un nouvel impact prolonge la durée déjà présente. ## Propriété et intégration - Module propriétaire : `ouch`, car le lancer, l’entité de projectile et son effet à l’impact relèvent du combat. - Autre module appelé : `onlyfun`, propriétaire de la présentation Abjection et de l’objet produit par ABJ-01. - API ou donnée partagée : contrat public minimal entre Only Fun et Ouch pour l’objet et la fabrique du projectile ; dépendance Gradle explicite `ouch -> onlyfun`, sans cycle. - Impact sauvegarde/réseau : aucune donnée persistante ; création, consommation, collision et effet validés côté serveur. - Compatibilité : conserver l’ID historique `abjection:shit_ball` pour l’objet et le type d’entité, sans enregistrer une seconde identité concurrente. ## Critères d’acceptation - [ ] la pile est limitée à 16 et un lancer consomme exactement une unité hors mode créatif ; - [ ] le projectile conserve sa taille historique de 0,25 × 0,25 bloc et utilise le rendu d’objet lancé ; - [ ] l’impact sur une entité vivante ajoute sept secondes de nausée à la durée existante ; - [ ] l’impact joue le son de pose de boue historique et ne duplique pas l’objet ; - [ ] les dispensers et le lancer manuel créent la même entité autoritaire côté serveur ; - [ ] l’objet obtenu via `/shit`, l’inventaire créatif, la recette du cube et toute migration désignent le même ID ; - [ ] aucun cycle de dépendances ni payload client non borné n’est introduit ; - [ ] Ouch est versionné et `./gradlew :onlyfun:check :ouch:check` puis `./gradlew check` réussissent. ## Dépendance Dépend de ABJ-01. ## Découpage proposé 1. Définir le contrat public entre Only Fun et Ouch. 2. Porter l’item lançable, l’entité et son renderer. 3. Tester consommation, collision, nausée cumulée et dispenser. 4. Incrémenter la version d’Ouch.
Author
Owner

Livré dans Sanctuary 26.2.0-alpha.211 via la PR #77.

La abjection:shit_ball est portée dans Ouch avec le contrat public Only Fun → Ouch, le lancer manuel et par dispenser, l'effet de nausée cumulée et les validations serveur. Les tests ciblés et ./gradlew check passent.

Livré dans **Sanctuary 26.2.0-alpha.211** via la PR **#77**. La `abjection:shit_ball` est portée dans Ouch avec le contrat public Only Fun → Ouch, le lancer manuel et par dispenser, l'effet de nausée cumulée et les validations serveur. Les tests ciblés et `./gradlew check` passent.
koka closed this issue 2026-08-30 01:27:31 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: koka/sanctuary-alpha#58