Deux problèmes de lisibilité/placement signalés :
1. Le texte des cartes Événement (nom + description) restait illisible
malgré le passage précédent de l'échelle 0.55 à 0.8 — le composant dédié
EventCardObject affichait une grande carte réduite, écrasant
systématiquement le texte quelle que soit l'échelle choisie.
Fix : suppression complète d'EventCardObject, remplacé par le même
pattern que les objets/bâtiments (ItemBoardToken, nouveau kind='event') :
un petit jeton compact (46x46) toujours visible sur le plateau, avec la
carte détaillée affichée en TAILLE RÉELLE (police 13-16px, jamais
réduite) au survol de la souris, et un bouton "JOUER" (au lieu
d'"ACHETER") pour confirmer. ItemBoardToken généralisé pour supporter ce
3e kind (pas de badge de coût affiché — déjà payé à la pioche — mais
badge "!" repris pour les événements à effet négatif type Épidémie).
Extraction de client/src/game/objects/tokenLayout.js (ICON_SIZE) dans un
module SANS dépendance à Phaser, pour que eventHandLayout.js (et ses
tests Vitest) puisse l'importer sans jamais charger Phaser — qui échoue
à l'import en environnement jsdom (canvas natif requis, absent de jsdom).
2. Les mini-cartes objets/bâtiments déjà achetés par un ADVERSAIRE étaient
affichées SOUS son slot de jeu, visuellement en dessous/après sa carte
jouée. Déplacées AU-DESSUS de son slot pour les mettre davantage en
évidence, comme posées sur sa carte plutôt que cachées dessous.
- 43 tests unitaires client mis à jour (eventHandLayout.test.js migré vers
ICON_SIZE au lieu de CARD_W/CARD_H/scale, désormais indépendant de Phaser).
- e2e/tests/helpers.js : playEventCard adapté au nouveau flux
survol->bouton JOUER (au lieu d'un simple clic direct sur la carte) ;
drawEventUntil corrigé pour ne jamais défausser une carte 'royal_accord'
sans fournir ses 2 cibles de ciblage séquentiel obligatoire (le jeu sans
cible bloquait silencieusement la séquence, sans jamais émettre
'play-event', rendant la boucle de pioche très peu fiable).
- Vérification ciblée via un test E2E existant (pas de nouvelle suite E2E
lourde, conformément à la demande de privilégier les tests unitaires) :
le nouveau flux jeton->survol->JOUER->résolution fonctionne bout en bout
(Récolte exceptionnelle +2 Nourriture confirmé après résolution).