Description

Comme plusieurs joueurs nous l’ont mentionné, les bébés ne peuvent pas rester petits éternellement. C’est pourquoi le poids des bébés augmente désormais de 33 kg à la fin de chaque tour, jusqu’à ce qu’il atteigne au moins 100 kg. Une fois que ce poids est atteint, les bébés dinosaures sont considérés immédiatement comme des adultes et ne dépendent plus de leurs parents pour survivre.

De plus, nous avons réalisé que différents événements peuvent faire varier le poids des dinosaures (ex. le stress, la fatigue, les jeux vidéo). Vous devez donc désormais permettre l’augmentation ou la diminution du poids des dinosaures comme on le souhaite!

:warning: Notez que le fait de changer le poids a de nombreuses conséquences. Par exemple, cela impacte la force (utilisée dans le calcul de l’ordre de priorité de consommation et pour déterminer le vainqueur dans les combats de sumo) ainsi que la quantité de ressources consommées!

❗ Attention, comme l’ordre des actions est important, si on change le poids d’un dinosaure avant son combat de sumo, le combat tiendra compte de son nouveau poids. Par contre, il n’y a pas de problème si, à l’inverse, on change son poids après son combat de sumo puisque le combat ne tiendra pas compte du changement de poids.

❗De plus, le changement de poids n’est effectif que lorsqu’on joue le tour et que les actions sont exécutées dans l’ordre. De ce fait, il peut y avoir divergence entre le predictedWinner d’un combat de sumo et le vrai gagnant, car le predictedWinner ne tiendra jamais compte du nouveau poids du dinosaure. À noter que c’est le véritable dinosaure gagnant qui sera affamé et le véritable perdant qui ira au paradis des dinosaures.

Nous ajoutons certaines restrictions:

  • On ne peut pas manuellement modifier le poids d’un bébé dinosaure.
  • On ne peut pas réduire le poids d’un dinosaure adulte en bas de 100 kg.
  • On ne permet plus la création d’un dinosaure adulte pèsant moins de 100 kg.

La dernière conséquence du tour est désormais l’augmentation du poids des dinosaures bébés. Donc même si un bébé atteint le poids pour devenir adulte lors de ce tour, comme la conséquence Retirer les bébé dinosaures dont les 2 parents ne sont plus dans le troupeau vient avant l’augmentation du poids, alors le bébé mourra si ses deux parents sont au paradis des dinosaures.

Conditions de succès

# Description
1 Le poids d’un dinosaure adulte ne peut pas descendre en bas de 100 kg.
2 Le poids des bébés dinosaures augmente de 33 kg à la fin de chaque tour jusqu’à 100 kg inclusivement.
3 Les bébés dinosaures deviennent adultes aussitôt que leur poids atteint >= 100 kg.
4 Les dinosaures adultes peuvent survivre même si leurs 2 parents sont morts.
5 Les joueurs ne peuvent pas modifier le poids des bébés dinosaures.
6 Les joueurs ne peuvent plus créer un dinosaure adulte pesant moins de 100 kg.

Déroulement d’un tour

Nous pouvons maintenant organiser des combats de sumo-dinosaures.

Actions possibles
Ajouter des ressources.
Ajouter un dinosaure.
Reproduction de dinosaures, ajout d’un bébé dinosaure.
Combat de sumo-dinosaures.
:exclamation: Modifier le poids d’un dinosaure adulte.

:warning: Note: Ces actions sont accumulées et exécutées, en ordre d’arrivée, lors du déroulement du tour.

Conséquences d’un tour (en ordre)
1. Ajouter 10 kilolitres d’eau, 250 salades et 100 hamburgers.
2. Retirer du garde-manger les ressources périmées.
3. Retirer du garde-manger les ressources consommées.
4. Retirer du troupeau les dinosaures qui ont perdu un combat.
5. Retirer du troupeau les dinosaures qui ont jeûné.
6. Retirer les bébés dinosaures dont les 2 parents ne sont plus dans le troupeau.
:exclamation: 7. Augmenter le poids des bébés de 33 kg.

:white_check_mark: Ajout de dinosaures -> Modification de l’exception concernant le poids.

Requête

POST /dinosaurs

{
  "name": ""::string,
  "weight": 0::int,
  "gender": "f" || "m"::string,
  "species": ""::string
}

Réponses

:exclamation: NEW: :arrow_right: HTTP 400 Bad Request - Quand le poids spécifié du dinosaure est inférieur à 100 kg.

{
  "error": "INVALID_WEIGHT"::string,
  "description": "The specified weight must be equal or greater than 100 kg."::string
} 

:warning: Note: L’exception existe déjà, faites simplement la modifier.

:white_check_mark: Modifier le poids d’un dinosaure.

PATCH /dinosaurs/{dinosaurName}

{
  "weight": 0::int
}

weight représente l’augmentation, si positif, ou la réduction, si négatif, du poids actuel d’un dinosaure adulte (en kg).

Réponses

:arrow_right: HTTP 200 Ok

:arrow_right: HTTP 404 Not Found - Quand le nom du dinosaure recherché n’existe pas.

{
  "error": "NON_EXISTENT_NAME"::string,
  "description": "The specified name does not exist."::string
} 

:arrow_right: HTTP 400 Bad Request - Quand la réduction du poids spécifié du dinosaure va mener à un nouveau poids inférieur à 100 kg.

{
  "error": "INVALID_WEIGHT_CHANGE"::string,
  "description": "The specified weight loss must not make the dinosaur weight less than 100 kg."::string
} 

:arrow_right: HTTP 400 Bad Request - Quand on tente de modifier le poids d’un bébé dinosaure.

{
  "error": "INVALID_BABY_WEIGHT_CHANGE"::string,
  "description": "The weight of a baby dinosaur can not be changed."::string
} 

:bulb: Exemple

  1. POST /breed.
  2. POST /turn.
  3. Le bébé nait pesant 1 kg et consomme des ressources en étant affamé.
  4. Le bébé grandit et pèse désormais 34 kg.
  5. POST /turn.
  6. Le bébé de 34 kg consomme des ressources.
  7. Le bébé grandit et pèse désormais 67 kg.
  8. POST /turn.
  9. Le bébé de 67 kg consomme des ressources.
  10. Le bébé grandit jusqu’à 100 kg et devient un adulte.
  11. PATCH /dinosaurs/{dinosaurName} avec une augmentation de 100 kg.
  12. POST /turn.
  13. L’adulte avec un nouveau poids de 200 kg consomme des ressources et ne grandit pas.