Semaine 10
Lien du front : http://csharp.nouvet.fr/front10/
Nouvelle liste d’objets dans le shop : http://csharp.nouvet.fr/front10/items.json
Rendu
Envoyez par mail le lien du repo git à cyril@algorion.fr / benoit_bernay@hotmail.com
Dans le README, précisez les membres de groupes et leur filière.
Prérequis
Les messages SignalR doivent être envoyés depuis les contrôleurs.
Les services devront être testés unitairement.
1. Compteur de joueurs en ligne
Savoir combien de personnes jouent en même temps renforce l’aspect communautaire.
Objectif
- Afficher en temps réel le nombre de connexions WebSocket actives.
Implémentation
- À chaque connexion/déconnexion, envoyez un événement
UpdateUserCountà tous les clients avec la nouvelle valeur. - Le front affichera cette information dans le panneau de chat ou l’en-tête.
2. Notifications de High Score en Temps Réel
Actuellement, on ne sait pas quel est le plus grand score.
Objectif
- Lorsqu’un joueur clic et que son score est le plus haut enregistré, une notification est envoyée à tout le monde.
Implémentation
- Si le record est battu, envoyez un événement
NewHighScoreavec le nom du joueur et le nouveau score. - Garder en cache le top score pour éviter trop de requêtes DB
- Attention : Ne spammez pas ! Si le joueur clique 10 fois par seconde et reste au-dessus du record, n’envoyez pas 10 notifs. Envoyez la notif seulement quand le record est franchi.
3. Annonces d’Achats Épiques
Quand un joueur atteint un niveau suffisant pour acheter l’objet le plus cher du jeu, cela mérite d’être célébré.
Objectif
- Envoyer un message système dans le chat lorsqu’un joueur achète un item qui vaut plus de 10 000 clicks.
Implémentation
- Vérifier si l’item acheté vaut plus de 10 000 clicks.
- Si c’est le cas, envoyez un message via le Hub :
SYSTEM: {UserName} vient d'acquérir {ItemName} !.
4. Reset du score
On va améliorer l’expérience utilisateur en ajoutant des notifications lorsqu’un joueur effectue un reset de son score. On va remplacer le message système par un événement personnalisé.
Objectif
- Envoyer un événement au front qui déclenchera un message dans le chat lorsqu’un joueur effectue un reset de son score avec le nom du joueur et le nouveau score.
Implémentation
- Lorsqu’un joueur effectue un reset de son score, envoyez un événement
PlayerResetà tout le monde avec le nom du joueur et le nouveau score.
5. Gérer l’overflow du compteur de click
Quand le compteur atteint la valeur maximum, plafonnez le à la valeur max. Le but est d’empêcher les valeurs négatives.
6. Actualisation des scores
Quand vous actualisez les scores dans le background service, envoyer un event ScoreUpdate avec comme paramètre le score du joueur.
Vous enverrez un event pour chaque joueur connecté. Les events seront envoyés uniquement au joueur concerné.
Quand un joueur se connecte, il envoie un event Login avec comme paramètre son id.