Description

Films et acteurs

Il est désormais possible d’ajouter des films

  • Le titre doit être unique (case sensitive).
  • Il ne peut y avoir qu’un ajout de film par tour, il faut ignorer les autres ajouts.
  • Le film n’est ajouté que lorsqu’un tour est joué.
  • Après avoir été ajouté, le film est en période d’auditions, puis en tournage avec les acteurs choisis.
  • Le film reste en période d’auditions tant qu’il n’y a pas assez d’acteurs pour combler le casting complet. ** Note ajoutée 19 octobre
  • Par la suite, le film est à l’affiche et les acteurs du film sont à nouveau disponibles pour auditonner.
  • Enfin, les gains sont calculés affichés.

:warning: Regardez bien les exemples plus bas pour voir l’ordre des événements et l’évolution du contenu du payload d’un film.

À chaque tour, si un acteur n’est pas en tournage pour un film, il auditionne pour les films en période d’auditions. Les nouveaux acteurs ajoutés dans le tour ne peuvent pas auditionner pour un film .

Pour sélectionner les acteurs qui joueront dans le film:

  • Si le projet est de type B, alors il faut engager 2 acteurs, parmi les acteurs qui ont auditionné, qui sont disponibles et qui ont le plus bas salaire (S’ils ont le même salaire, prendre au hasard, ce cas ne sera pas testé.).
  • Si projet est de type A, alors il y a davantage de budget et donc choisir 2 acteurs parmi ceux qui ont auditionné, qui sont disponibles et qui ont le plus grand ratio abonnés/salaire (S’ils ont le même ratio, prendre au hasard, ce cas ne sera pas testé.).

Gains au box office

  • Une fois que le film n’est plus à l’affiche, les gains sont affichés.
  • Ils sont d’emblée à 500 000$ et ils augmentent de 10$ pour chaque abonné qu’ont les acteurs du film et leur agent au moment du calcul.
  • Rappel: les personnages perdent 600 abonnés Hamstagram par tour. Donc le calcul se fait après la perte des 600 abonnés.

Salaire et bonus

Les acteurs gagnent de l’argent, selon leur salaire (voir story 2, champ salary) une fois le tournage du film fini.

Après que les gains du films aient été dévoilés, les acteurs et leur agent obtiennent un bonus:

  • Chaque acteur qui fait partie du casting du film obtient 5% des gains du film (arrondir le résultat à 2 décimales).
  • L’agent de chaque acteur du film à ce moment obtient 2% des gains du film (arrondir le résultat à 2 décimales).
  • Si un agent gère plusieurs acteurs, il obtient plusieurs bonus.

:warning: Le champ bankAccount du personnage n’est plus un int et devient un float, voir section API plus bas.

Exemples (cliquez pour voir)

Exemple 1 - Ajout de plusieurs films
  • POST /movies => Ajout du film Rats of the Caribbean
  • POST /movies => Ajout du film Ratatouille
  • POST /turn
  • GET /movies => Le film Rats of the Caribbean est ajouté et le film Ratatouille est ignoré
Exemple 2 - Ajout de film et d’acteurs, salaire et bonus
  • POST /characters => Ajout de Joe l’acteur
  • POST /characters => Ajout de Bob l’acteur
  • POST /movies => Ajout du film Ratman
  • GET /movies => Le film n’est pas encore ajouté
  • POST /turn
  • GET /movies => Le film Ratman est ajouté (potentialCasting: [], casting: [], boxOffice: 0)
  • POST /turn
  • GET /movies => Le film est en période d’auditions (potentialCasting: [“Bob”, “Joe”], casting: [], boxOffice: 0)
  • POST /turn
  • GET /movies => Le film est en tournage (potentialCasting: [], casting: [“Bob”, “Joe”], boxOffice: 0)
  • POST /turn
  • GET /movies => Le film est à l’affiche (potentialCasting: [], casting: [], boxOffice: 0)
  • GET /characters/Joe => Joe a reçu son salaire dans bankBalance
  • GET /characters/Bob => Bob a reçu son salaire dans bankBalance
  • POST /turn
  • GET /movies => Les gains au box office sont affichés selon le nombre d’abonnés de Joe et Bob pour ce tour (donc moins les 600 abonnés perdus/tour) (potentialCasting: [], casting: [], boxOffice: X)
  • POST /turn
  • GET /characters/Joe => Joe a reçu son bonus dans bankBalance
  • GET /characters/Bob => Bob a reçu son bonus dans bankBalance
Exemple 3 - Ajout de film et d’acteurs
  • POST /movies => Ajout du film The Lord of the Chinchillas
  • POST /turn
  • GET /movies => Le film est ajouté (potentialCasting: [], casting: [], boxOffice: 0)
  • POST /characters => Bob l’acteur est ajouté
  • POST /turn
  • GET /movies => Le film est en période d’auditions, mais Bob le nouveau personnage acteur ne peut pas auditionner encore (potentialCasting: [], casting: [], boxOffice: 0)
  • POST /turn
  • GET /movies => Le film est en période d’auditions (potentialCasting: [“Bob”], casting: [], boxOffice: 0)
  • POST /characters => Joe l’acteur est ajouté
  • POST /turn
  • GET /movies => Le film est en période d’auditions, mais Joe le nouveau personnage acteur ne peut pas auditionner encore (potentialCasting: [“Bob”], casting: [], boxOffice: 0)
  • POST /turn
  • GET /movies => Le film est en période d’auditions (potentialCasting: [“Bob”, “Joe”], casting: [], boxOffice: 0)
  • POST /turn
  • GET /movies => Le film est en tournage (potentialCasting: [], casting: [“Bob”, “Joe”], boxOffice: 0)
Exemple 4 - Plusieurs films et plusieurs acteurs

Cas où il y a déjà 4 acteurs Joe (salaire = 10, abonnés = 20K), Bob (salaire = 11, abonnés = 21K), Jane (salaire = 12, abonnés = 30K), Sylvie (salaire = 13, abonnés = 35K)

  • POST /movies => Ajout du film Chin City (type B)
  • POST /turn
  • GET /movies => Le film Chin City est ajouté (potentialCasting: [], casting: [], boxOffice: 0)
  • POST /movies => Ajout du film Les dents des rongeurs (type B)
  • POST /turn
  • GET /movies
    • Chin City => en auditions (potentialCasting: [“Joe”, “Bob”, “Jane”, “Sylvie”], casting: [], boxOffice: 0)
    • Les dents des rongeurs => est ajouté (potentialCasting: [], casting: [], boxOffice: 0)
  • POST /turn
  • GET /movies
    • Chin City => en tournage (potentialCasting: [], casting: [“Joe”, “Bob”], boxOffice: 0)
    • Les dents des rongeurs => Il ne reste que Jane et Sylvie disponible en auditions (potentialCasting: [“Jane”, “Sylvie”], casting: [], boxOffice: 0)
  • POST /movies => Ajout du film The Hamster Games (type A)
  • POST /turn
  • GET /movies
    • Chin City => à l’affiche (potentialCasting: [], casting: [], boxOffice: 0)
    • Les dents des rongeurs => en tournage (potentialCasting: [], casting: [“Jane”, “Sylvie”], boxOffice: 0)
    • The Hamster Games est ajouté
  • POST /turn
  • GET /movies
    • Chin City => gains au box office (potentialCasting: [], casting: [], boxOffice: X)
    • Les dents des rongeurs => à l’affiche (potentialCasting: [], casting: [], boxOffice: 0)
    • The Hamster Games => auditions (potentialCasting: [“Joe”, “Bob”, “Jane”, “Sylvie”], casting: [], boxOffice: 0)
  • POST /turn
  • GET /movies
    • Chin City => le payload reste inchangé (potentialCasting: [], casting: [], boxOffice: X)
    • Les dents des rongeurs => les gains sont affichés (potentialCasting: [], casting: [], boxOffice: Y)
    • The Hamster Games => tournage avec Jane et Sylvie car film type A (plus grand ratio abonnés/salaire) (potentialCasting: [], casting: [“Jane”, “Sylvie”], boxOffice: 0)
Exemple 5 - Calcul des gains au box office
  • Bob (20 000 abonnés) et Jane(22 000 abonnés) jouent dans le film.
  • Johny (12 000 abonnés) est l’agent de Bob et de Jane au moment que le film est à l’affiche (même s’il gère Bob et Jane, ses abonnés ne compte pas 2 fois).

Alors les gains du film seront de 500 000$ + (20 000 + 22 000 + 12 000) * 10$ = 1 040 000$

Lorsqu’un personnage est éliminé :cry::

En plus de ce qui a été mentionné dans la story 3…

  • S’il s’agit d’un acteur :
    • S’il est en audition, il est retiré de la liste des acteurs en audition.
    • S’il est en train de tourner un film, il est retiré de la liste des acteurs du film.
    • On ne remplacera pas les acteurs éliminés du film, ce sera un film sans acteur :sweat_smile:.
    • Donc pas de salaire ni de bonus à verser et les gains du films seront de 500 000$.
    • Si le film est rendu à l’étape de tournage, mais qu’un acteur est éliminé à ce tour, alors le film reste à l’étape des auditions.***
    • :exclamation: Pour le moment, on ne testera pas le cas où un acteur est éliminé *** Note 19 octobre

:clock1: Ordre des événements lorsqu’un tour est joué

:warning:
Introduction de changements majeurs par rapport aux stories précédentes
# Description
1 Les personnages déjà dans le jeu et sur Hamstagram perdent 600 abonnés.
2 Les acteurs en tournage reçoivent leur salaire.
3 Les acteurs et les agents reçoivent leur bonus.
4 Les acteurs déjà dans le jeu paient leur agent s’ils en ont un.
5 Les personnages déjà dans le jeu perdent 100$.
6 Les personnages déjà dans le jeu perdent 6 points de réputation.
7 Les personnages sont éliminés selon les règlements habituels.
8 Les informations sur les personnages éliminés sont retirées (voir plus haut la section lorsqu’un personnage est éliminé et story 3).
9 Les demandes de contact faites sur RattedIn sont acceptées ou refusées.
10 Le nouveau film est ajouté.
11 Les nouveaux personnages sont ajoutés en ordre chronologique.
12 Les nouveaux acteurs et agents se créent un compte sur Hamstagram.
13 Les nouveaux agents et avocats se créent un compte sur RattedIn.
14 Tous les agents (incluant ceux nouvellement ajoutés) font une proposition à tous les acteurs (incluant ceux nouvellement ajoutés) pour les représenter.
15 Les acteurs acceptent ou refusent les demandes des agents.

API

:memo: Modification à story #2: Obtenir les informations une fois le personnage dans le jeu

Requête

GET /characters/<name>

:warning: Le champ bankBalance est désormais un float et non un int. Aucun autre changement.

Réponse

{
  "name": ""::string,
  "type": hamster | rat | chinchilla,
  "reputationScore": 75::int,
  "bankBalance": 1000.00, float
}

Exception

Aucun changement.

:memo: Ajouter un film

Requête

POST /movies

{
  "title": ""::string, => Titre unique, case sensitive
  "type": A | B
}

Réponse

HTTP 200 OK

Exception

Aucune n’est demandée.

:memo: Obtenir les informations sur les films

Les films retournés n’ont pas besoin d’être dans un ordre particulier.

Requête

GET /movies

[
  {
    "title": ""::string,
    "type": A | B,
    "potentialCasting": [],  => Les acteurs qui auditionnent, pas d'ordre précis demandé.
    "casting": [],           => Les acteurs qui jouent dans le film, pas d'ordre précis demandé.
    "boxOffice": 0:: int
  },
  ...
]

Exception

Aucune.