Page d'Accueuil

La Page d'Accueil (MainPageComponent) constitue le point d'entrée principal de l'application. Elle propose aux utilisateurs différentes options de navigation : créer une partie, rejoindre une partie existante via un code, ou accéder à la gestion des jeux.

MainPageComponent

Propriétés

||Propriété|Type|Description|
||---|---|---|
||isJoinGamePopupActive|boolean|Contrôle l'affichage du popup de saisie de code|
||isCodeValid|boolean|Indique si le code saisi est valide|
||codeErrorMsg|string|Message d'erreur à afficher si le code est invalide|
||codeInputs|number[]|Tableau des indices pour les champs de saisie du code|
||accessCode|string[]|Tableau contenant les caractères du code saisi|

Méthodes

constructor(router: Router, joinGameService: JoinCharacterCreationService)

Description : Initialise le composant et récupère le tableau des codes d'accès.
Paramètres :

showJoinGamePopup()

Description : Affiche le popup de saisie de code pour rejoindre une partie.
Retour : Aucun

closeJoinGamePopup()

Description : Ferme le popup de saisie de code et réinitialise le code et l'état de validation.
Retour : Aucun

onInputChange(event: Event, index: number)

Description : Gère la saisie de chaque caractère du code et déplace le focus au champ suivant.
Paramètres :

Retour : Aucun
Détails : Délègue au service JoinCharacterCreationService la gestion de la saisie.

onBackspace(event: KeyboardEvent, index: number)

Description : Gère le comportement de la touche Backspace pour revenir au champ précédent.
Paramètres :

Retour : Aucun
Détails : Délègue au service JoinCharacterCreationService la gestion du retour arrière.

async redirectToCharacterCreation()

Description : Vérifie la validité du code et redirige vers la page de création de personnage si le code est valide.
Retour : Aucun
Détails : Utilise le service JoinCharacterCreationService pour valider le code et le routeur pour la redirection.

redirectToGames()

Description : Redirige vers la page d'administration des jeux.
Retour : Aucun

redirectToGameCreation()

Description : Redirige vers la page de création de partie.
Retour : Aucun

Composants utilisés

ButtonComponent

Composant personnalisé pour les boutons de l'application.

Propriétés

|| Propriété | Type | Description |
|| --------------- | -------- | -------------------------------- |
|| @Input() text | string | Texte à afficher sur le bouton |
|| @Input() icon | string | Icône Material Design à afficher |

Services utilisés

JoinCharacterCreationService

Service responsable de la gestion de la saisie et validation des codes pour rejoindre une partie existante.

Propriétés

|| Propriété | Type | Description |
|| ------------ | ---------- | ---------------------------------------------- |
|| accessCode | string[] | Tableau contenant les caractères du code saisi |

Méthodes

constructor(private socketService: SocketService)

Description : Initialise le service avec le service socket pour la communication avec le serveur.
Paramètres :

onInputChange(event: Event, index: number)

Description : Gère la saisie d'un caractère du code d'accès et déplace le focus au champ suivant.
Paramètres :

Retour : Aucun

onBackspace(event: KeyboardEvent, index: number)

Description : Gère le comportement de la touche Backspace pour revenir au champ précédent.
Paramètres :

Retour : Aucun

isCodeComplete()

Description : Vérifie si tous les champs du code ont été remplis.
Retour : boolean - Vrai si le code est complet, faux sinon

async isCodeValid()

Description : Vérifie si le code saisi est valide pour rejoindre une partie.
Retour : Promise<{ valid: boolean; message: string }> - Résultat de la validation avec un message

async isCharacterCreationAccessible(gameCode: string)

Description : Vérifie auprès du serveur si la partie est accessible avec le code fourni.
Paramètres :

Retour : Promise<{ success: boolean; message: string }> - Résultat de la vérification
Détails : Utilise des événements socket pour communiquer avec le serveur et vérifier la validité du code.

getAccessCodeArray()

Description : Récupère le tableau des caractères du code.
Retour : string[] - Tableau des caractères du code

getAccessCode()

Description : Récupère le code sous forme de chaîne.
Retour : string - Code complet

resetAccessCode()

Description : Réinitialise le code d'accès.
Retour : Aucun

Communication avec le Serveur

Le service JoinCharacterCreationService communique avec le serveur via Socket.IO lors de la validation du code:

  1. Émission : SocketIOEvents.JoinCharacterCreation avec le code de partie
  2. Réception : Plusieurs événements possibles:
    • SocketIOEvents.LimitReached: La limite de joueurs est atteinte
    • SocketIOEvents.GameLocked: La partie est verrouillée
    • SocketIOEvents.RoomValidation: Validation générale du code (succès/échec)

Cette communication permet de vérifier si le code entrée correspond à une partie existante, disponible et non verrouillée avant de rediriger l'utilisateur vers la page de création de personnage pour cette partie.

Navigation

La Page d'Accueil peut rediriger vers:

  1. Page de Création de Personnage (CharacterCreationPageComponent) - Lorsqu'un code valide est saisi
  2. Page de Création de Partie (GameCreationPageComponent) - Lorsque le bouton "CRÉER UNE PARTIE" est cliqué
  3. Page d'Administration (AdminPageComponent) - Lorsque le bouton "GÉRER LES JEUX" est cliqué