Commit Graph

13 Commits

Author SHA1 Message Date
9eff6d541e refacto: découpage composants — 5 extractions
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 34s
- MonsterCard, CombatViews (Log+Multi+History), CreateCharacter
- RarityBadge + RarityDot partagés (Guide, Drawer, pages)
- CombatPage 341→215 lignes (−37%)
- DashboardPage 368→307 lignes (−17%)
- 9 composants dans components/
2026-03-24 23:50:55 +01:00
71070b2e76 feat: mobile responsive — sidebar bottom nav + grids adaptatifs
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 34s
- Sidebar → bottom nav fixe sur mobile (<768px)
- Classes CSS layout: .sidebar, .nav-item, .grid-2, .layout-*
- Grids 2col → 1col sur mobile (Dashboard, Combat, Forge)
- HudBar compact + wrapping sur mobile
- GuideDrawer full-width mobile
- Cards padding réduit mobile
- Header username masqué mobile
2026-03-24 23:36:45 +01:00
17c61a2bb8 refacto: constants.ts — source unique frontend
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 41s
- Centralise RARITY_COLORS, RARITY_LABELS, ZONE_INFO, STAT_LABELS
- Centralise COMBAT_COST, REST_COST, FORGE_*, ATTACK_TYPES
- Supprime 6 duplications dans CombatPage, GuidePage, ShopPage, ForgePage, InventoryPage
2026-03-24 22:30:59 +01:00
faf2a98227 feat: toast system — feedback visuel global (react-hot-toast)
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 36s
- Toaster dark theme (bottom-right, 3s/4s)
- Combat: erreur cooldown/endurance en toast
- Craft: toast start + collect + erreurs
- Forge: toast succès/échec + erreurs
- Shop: toast achat + erreurs
- Inventaire: toast vente + erreurs
- Fix forge costs frontend (200/400/700)
2026-03-24 22:15:28 +01:00
4fc8be9ea0 feat: historique combat enrichi — loot affiché + 10 entrées
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 33s
- Ajout loot_material_id + loot_quantity sur combat_logs
- Historique passe de 5 à 10 entrées
- Affichage loot (🎁×N) dans l'historique récent
- Fix scope variables multi-combat loot tracking
2026-03-24 21:08:49 +01:00
6ffc867ef7 fix: imports inutilisés frontend (useEffect, CombatResult)
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 33s
2026-03-24 20:47:35 +01:00
efe4b4e372 feat: multi-combat ×5/×10 + cooldown anti-spam
Some checks failed
CI/CD — Build & Deploy / Build & Deploy (push) Failing after 30s
- Backend: startMultiCombat boucle séquentielle, arrêt sur défaite
- Frontend: cooldown 1.5s entre combats, boutons ×1/×5/×10
- Frontend: résumé multi-combat (wins/losses, XP/Or/loot totaux)
- Fix: lock contention par spam de clics résolu
2026-03-24 20:21:44 +01:00
d1609efaae feat: zone locking — progression par arcs narratifs + arcs Égouts/Désert
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 33s
Zones verrouillées: marais toujours ouvert, égouts après arc Marais,
désert après arc Égouts. Filtrage backend sur monstres ET boutique.

Arc "Les Égouts de la Cité" (4 quêtes, lv4-7, boss Roi des Rats)
Arc "Les Sables Brûlants" (3 quêtes, lv8-12, boss Sphinx)

GET /api/monsters/zones — retourne les zones avec statut unlocked.
Combat page: monstres groupés par zone, zones lockées avec icône cadenas.
Boutique: items filtrés par zones débloquées (potions toujours visibles).
2026-03-24 17:57:23 +01:00
4d254692b0 feat: page Achievements + soins renommé + bouton soins en combat
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 31s
Page /achievements : 20 succès groupés par catégorie (Combat, Progression,
Économie, Équipement), progress bars, paliers bronze/silver/gold,
bouton réclamer, compteur débloqués/total.

Renommage "repos" → "soins" partout (dashboard, budget, messages).
Bouton soins ajouté dans la page combat (accès rapide entre les fights).
Icône Trophy dans la sidebar pour les succès.
2026-03-24 17:36:20 +01:00
014ffdd789 refactor: types frontend alignés backend — zéro as any, monstres triés par level
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 33s
types.ts: rewrite complet — Character, Monster, CombatResult, CombatLog
alignés sur les champs réels du backend. Plus de mapping approximatif.

CombatPage: réécriture propre — monstres triés par level (appropriés en
haut, trop forts en bas avec opacity + warning), historique avec vrais
noms de monstres et valeurs XP/or, level up affiché dans le résultat.

Cleanup: 0 occurrence de "as any" dans tout le frontend.
2026-03-24 17:24:59 +01:00
e3c870bb9f fix: combat page field mapping — monster levels, history names, XP/gold values
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 33s
Monster: minLevel/maxLevel (backend) vs levelMin/levelMax (frontend type)
History: xpEarned/goldEarned + monster.name vs xpGained/goldGained/monsterName
Combat result: rewards.xp/gold vs xpGained/goldGained, level up display
2026-03-24 17:16:24 +01:00
eafac3d8c7 feat: endurance tickets — coûts visibles partout + budget dashboard
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 31s
Combat: coût 5 affiché, compteur "X combats possibles", bouton disabled
Forge: coût 10 + or affiché (baissé de 15 à 10), bouton disabled
Dashboard: indicateur budget "X combats · Y forges · Z repos"
Repos: coût 10 affiché, disabled si insuffisant
2026-03-24 17:09:06 +01:00
8c6777c980 feat: PKCE auth + CI/CD deploy
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 1m2s
- Frontend: PKCE flow (oauth.ts, AuthCallback code exchange, 401 interceptor)
- Backend: token introspection via SuperOAuth (no more JWT secret)
- User model: superOauthId (unified) replaces oauthId+provider
- Cookies httpOnly session + refresh token
- POST /auth/refresh endpoint
- Gitea CI workflow (vps-runner pattern)
- DB_SYNC env var for initial schema creation
2026-03-24 13:01:14 +01:00