Jalons
tilttek/progressionUn Milestone est une étape d'une piste qui mérite une récompense : une quantité d'expérience
(new Milestone('thousand', 1000)) ou un niveau (new Milestone('veteran', 10, level: true)). Un jalon de niveau doit
se trouver sur la courbe de la piste.
Quand une activité fait dépasser le seuil d'un jalon à un sujet (au-dessus de l'expérience qu'il avait, au plus
l'expérience qu'il atteint), la projection garde un ReachedMilestone et l'annonce à
ProgressionObserver::milestoneReached(). Un jalon est atteint une fois par piste, par sujet et par saison : sur une
piste saisonnière, il peut être atteint de nouveau la saison suivante.
La bibliothèque ne donne elle-même aucune récompense : elle ne dépend d'aucun autre paquet de ludification.
L'application écoute et donne ce qu'elle a décidé : des points par tilttek/points, un objet, un titre, un badge
décerné à la main.
Un jalon atteint reste atteint : une annulation qui ramène le sujet sous le seuil ne le retire pas, et une
reconstruction ne l'oublie pas et ne l'annonce pas de nouveau, puisque sa récompense a été donnée. Effacer un membre
retire ses jalons. $progression->milestones($subject) les énumère dans l'ordre où ils ont été atteints.