b475fb8953
fix: particule clic affiche le vrai gain (clickMult × prestigeMult × treeMult)
...
Ajout getClickGain() dans economy.ts — utilisé par la particule de feedback
et le cockpit header "Ponte". Avant : affichait toujours +1.
2026-03-20 16:18:45 +01:00
9065b1c593
feat: cockpit sidebar — design tokens, panels harmonisés, header stats fixe
...
- Design tokens game dans root.scss (--gp-*) — un seul endroit pour thémiser
- game-panels.scss : classes partagées (gp, gp-row, gp-btn, gp-progress, etc.)
- CockpitHeader : dashboard résumé (prod/s, ponte, mult, ADN, génération)
- Tous les panels refactorisés sur le système gp-* (tailles, couleurs, spacing)
- Sidebar structurée en zones : header → progression → générateurs → prestige → évolution
2026-03-20 16:03:59 +01:00
b38bb4b4c7
feat: UX game — stats live, production détaillée, prestige visible, badge achievements
...
- Click-zone : production/s, puissance ponte, multiplicateur toujours visibles
- GeneratorShop : production totale en header, prod individuelle par générateur
- PrestigePanel : toujours affiché (hint "Atteins 1M" si pas encore dispo)
- Badge achievements X/27 dans la sidebar avec lien vers /achievements
- Landing : tadpole sprite animé en accroche visuelle
2026-03-20 15:26:55 +01:00
924e919a65
fix: effet ambiance tildes → bulles (° au lieu de ~)
2026-03-20 14:54:33 +01:00
8c9c4bfdc5
chore: purge assets legacy — 12 SVG/webp, bretzel logo, CardContact dead code
...
- Suppression 11 SVG non référencés (Beer, Bonhome, Bonnet, Canne, Cookie,
Courone, Hand, PainDep, Tasse, bg-homepage, logo bretzel)
- Suppression share-cover.webp non référencé
- Favicon bretzel → tadpole.svg
- Footer : CardContact inliné, suppression composant + scss
- Suppression .gitkeep inutile (pages/ a des fichiers)
2026-03-20 14:42:44 +01:00
0c9170af65
feat: suppression boutique legacy + refonte achievements milestones Clickerz
...
- Suppression route /boutique + Boutique.jsx, BoutiqueCard.jsx, shop.json, scss associés
(le GeneratorShop sidebar fait déjà le job)
- Refonte complète achievements : 27 milestones basés sur le GameState réel
(paliers ressources, générateurs, prestige, évolution, easter eggs humour)
- Suppression ancien système JSON statique + AchievementsCard legacy
- Page achievements : unlocked/locked state-aware, compteur progression
2026-03-20 14:34:48 +01:00
95dca420a5
feat(sprint1-step6): polish, landing page, responsive, deploy config
...
- Landing.jsx : écran d'accueil "Entrer dans le Marais" sur /
- Home.jsx : jeu sur /jeu, click animation float-up, sidebar responsive
- formatNumber.ts : util partagé k/M/B/T (remplace 4 copies locales)
- home.scss : rewrite classes (game-cover, click-zone, tadpole-sprite, game-sidebar)
- Responsive : sidebar fixe desktop, drawer bottom mobile (<768px)
- navbar : wildCoin → resource-counter, auth-nav stylé, dead code supprimé
- GameSync.tsx : bridge useSaveSync ↔ Zustand (câblé dans App)
- tadpole.svg : asset renommé (SantaClause-bag → tadpole)
- deploy/ : Apache vhost SPA+proxy, deploy.sh, ecosystem.config.cjs PM2
- NavBarData : Jeu → /jeu
- Cleanup : dead imports, commentaires legacy
2026-03-20 13:41:09 +01:00
307feb711f
feat(sprint1-step5): migration Tailwind v4 + Zustand — suppression WildCoinContext
...
- Install tailwindcss @tailwindcss/vite zustand
- useGameStore.ts : Zustand store wrappant economy.ts (tick, click, buy, prestige, buyNode, loadFromServer)
- GameTick.tsx : composant timer 1s
- GeneratorShop.tsx : boutique générateurs Tailwind (remplace Amelioration.jsx)
- EvolutionTree, PrestigePanel, MilestoneBar : rewrite Zustand + Tailwind
- Hud.jsx : rewrite Zustand + Tailwind (suppression Hud.scss)
- BoutiqueCard, Achievements : migrés vers Zustand
- Supprimé : WildCoin/ (4 fichiers), timer/Timer.jsx, useEconomy.ts, Hud.scss
- WildCoinProvider retiré de main.jsx
2026-03-20 13:40:51 +01:00
d215e9a33e
feat(sprint1-step4): SuperOAuth login frontend
...
- AuthContext : fix exports, x-auth-token header, loginWithOAuth(), suppression axios/jwt-decode
- Login.jsx : redirect SuperOAuth Discord avec tenantId=clickerz
- AuthCallback.jsx : extraction token query param, flow OAuth complet
- .env.sample : ajout VITE_SUPEROAUTH_URL
- Mode invité préservé (pas de route guard)
2026-03-20 13:40:33 +01:00
a52746ed0c
feat(sprint1-step3b): backend save system + anti-cheat + données rattrapées
...
- game_saves table + migration 002 (JSON state, anti-cheat metadata)
- saveControllers.js : load/save avec validation delta ressources (750k/s × 1.1)
- GameSaveManager : upsert MySQL ON DUPLICATE KEY UPDATE
- useSaveSync hook : auto-save 30s + keepalive beforeunload + guest fallback
- save-validation.test.ts : 8 tests anti-cheat
- economy.ts : arbre d'évolution 5 nœuds + prestige ADN (rattrapage step 2)
- economy.test.ts : +40 tests (évolution tree, multipliers, start bonus)
- GDD + SPRINT1.md : docs sprint complètes
- Rethème data : shop.json, Achievements.json, Cookie, Legal (rattrapage step 1)
2026-03-20 13:40:16 +01:00
4e93753250
feat: initial import — ClickerZ formation project (Express + React/Vite)
2026-03-15 14:29:33 +01:00