Améliorons un peu notre application. Pour le moment nous ne faisons pas de distinction entre les
Pokémons découverts et ceux que nous possédons réellement. Mais en réalité, nous pouvons très bien
attraper un Pokémon (donc le découvrir), puis le relâcher. Le Pokémon ne sera donc plus dans notre
équipe, mais on l'aura déjà rencontré.
À vous !
Dans le fichier $lib/stores/index.svelte.ts
créer un nouvel état global team
, sur le même modèle que pokedex
. Les éléments de team
sont
des objets de cette forme { id: number, uuid: number }
. Le uuid
représente l'identifiant
unique de l'individu capturé (car on doit pouvoir identifier deux Pokémons de la même espèce).
Dans la page d'accueil
lorsque vous capturez un Pokémon, pensez à mettre à jour team
en même temps que pokedex
.
Donner au Pokémon que vous ajoutez à team
un uuid
égal à au timestamp actuel (utilisez
Date.now
).
Dans le header
le lien vers "Team" doit maintenant afficher le nombre d'éléments dans team
, et non celui fourni
par data
.
Dans la page /team
affichez les infos des Pokémons de team
.
faites en sorte de pouvoir libérer les Pokémons en cliquant sur un bouton affiché sous chaque
membre de l'équipe. Vous devrez avoir une méthode release
sur votre store team
permettant de
supprimer des éléments du tableau.
Dans le composant Wild
prévoir une nouvelle prop optionnelle escape
représentant une fonction déterminant ce qu'il doit
se passer lorsque le Pokémon s'enfuit.
si un Wild
possède une prop escape
définie, mettez en place un setTimeout
dont la durée est
1000 au montage du composant (avec onMount
). Lorsque le délai est écoulé, exécuter escape
.
Ne pas oublier de nettoyer cet effet.
Dans la page d'accueil
donner une fonction escape
aux Pokémons Wild
, sauf aux 3 Pokémons de départ.
faire disparaître le Pokémon Wild
qui exécute sa fonction escape
. Les 3 Pokémons de départ
n'utiliseront jamais escape
.