Statistiques et persistance
Le backend initialise MatchPlayerStats à zéro à l’inscription puis actualise les compteurs en mémoire. Les statistiques finales ne sont pas imposées par Unity.
| Attribut | Mise à jour proposée |
|---|---|
damage | Ajouter les dégâts effectivement retirés à un adversaire après validation et déduplication. |
kills | Ajouter 1 à l’attaquant lorsque sa touche entraîne la première transition de la cible vers hp <= 0. |
deaths | Ajouter 1 à la cible lors de son élimination, une seule fois par round. |
matchTime | Secondes cumulées des phases ROUND_ONGOING pendant lesquelles le joueur participe, vivant ou éliminé. |
aliveTime | Secondes de ces mêmes phases avec hp > 0 ; arrêt à l’élimination, reprise au round suivant. |
Ces définitions temporelles sont proposées : utiliser l’horloge du backend, exclure lobby et inter-rounds, compter une interruption réseau tant que le joueur reste participant. La reconnexion et les nouveaux rounds ne remettent aucun compteur à zéro. La règle d’abandon peut interrompre la participation.
Les positions, rotations, HP, rounds actifs, connexions, séquences et identifiants de touches traitées sont principalement de l’état d’exécution. Il n’est pas prévu de sauvegarder chaque mouvement dans la base.
À MATCH_ENDED, le backend fige les temps, scores, vainqueur et statistiques des quatre participants. Il sauvegarde le résultat lié à Match.uid et aux usernames dans le mécanisme de persistance du projet, sans imposer de nouveau schéma. Résultats et statistiques sont enregistrés de façon cohérente et une seule fois par partie. Les lectures historiques proviennent ensuite de la base ; les comptes, dont passhash en interne, sont également persistants.
En cas d’échec d’écriture, conserver le résultat final en mémoire et réessayer sans dupliquer les résultats ; match.ended confirme la sauvegarde et ne doit pas précéder sa réussite. La reprise après arrêt complet du backend et la durée de conservation en mémoire des parties terminées restent à spécifier.
Les routes REST exposent ces compteurs. Les notifications de fin de partie annoncent les résultats sauvegardés.