fb1fc1ef0d
Équipement : simplifié à un seul champ description
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 17:16:21 +02:00
8b9c22ff4d
Items : labels de type localisés + nom par défaut à la création
...
- TYPES.Item.weapon = 'Arme', TYPES.Item.armure = 'Armure' dans fr.json
- Hook preCreateItem : nom par défaut = label du type pour tous les items
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 17:14:45 +02:00
1d62f09375
system.json : suppression du paramètre de cache-busting dans le chemin CSS
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 17:09:51 +02:00
eceac4c122
Arme : ajout du champ Type (Mêlée / Distance)
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 17:05:28 +02:00
5a8b151451
Nouveaux items Arme et Armure (DataModel + feuille + CSS)
...
Items:
- CelestopolWeapon : degats (0/1/2/X), portee (contact/courte/longue), description
- CelestopolArmure : protection (1-2), malus (0-2), description
Config:
- WEAPON_DAMAGE_TYPES et WEAPON_RANGE_TYPES ajoutés dans system.mjs
- Enregistrement des DataModels, sheets et templates dans fvtt-celestopol.mjs
- system.json : types weapon et armure avec htmlFields
UI:
- weapon.hbs : badge de dégâts avec hint, sélecteurs portée/dégâts
- armure.hbs : blocs protection + malus art-déco
- items.less : styles .weapon et .armure
i18n: clés Weapon.*, Armure.*, Sheet.weapon, Sheet.armure
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 17:03:23 +02:00
be323e6f68
Domaines/Factions : calcul automatique de la valeur depuis les cases cochées
...
prepareDerivedData() calcule désormais :
- skill.value = count(level1..level8 cochés) pour chaque domaine
- faction.value = count(level1..level9 cochés) pour chaque faction
- initiative recalculée après (dépend de mobilite.value et inspiration.value)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:57:49 +02:00
569edd833d
Header personnage : suppression Anomalie, attributs sur ligne initiative
...
- Suppression du bloc 'Anomalie' (type + valeur) du header
- Attributs (Entregent/Fortune/Rêve/Vision) fusionnés sur la même ligne
que l'initiative via .header-stat commun
- CSS : remplacement .perso-attributs/.perso-attr par .header-stat unifié
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:55:15 +02:00
70e297b48c
Fix initiative : formule correcte selon les règles
...
- PJ : 4 + Mobilité (Corps) + Inspiration (Cœur)
- PNJ : Domaine Corps (inchangé, déjà correct)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:53:26 +02:00
6bad05809e
Fix deprecation : loadTemplates → foundry.applications.handlebars.loadTemplates (v13)
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:51:49 +02:00
2e06b70761
Fix deprecation : ItemSheet → foundry.appv1.sheets.ItemSheet (v13)
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:50:29 +02:00
ae183bb1ff
Fix deprecation : ActorSheet → foundry.appv1.sheets.ActorSheet (v13)
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:49:42 +02:00
ad118ae60c
Suppression item Attribut : redondant avec le DataModel personnage
...
- DataModel CelestopolAttribute supprimé (items.mjs)
- CelestopolAttributeSheet supprimée (item-sheets.mjs)
- Imports/registrations retirés (fvtt-celestopol.mjs)
- Section 'Attributs' supprimée de character-competences.hbs
- Action createAttribute + contexte attributes retirés (character-sheet.mjs)
- Template attribute.hbs supprimé
- Clés i18n attribute/attributes/newAttribute supprimées (fr.json)
- Type 'attribute' retiré des htmlFields (system.json)
- htmlFields anomaly corrigés : technique/narratif/exemples
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:49:16 +02:00
a881625515
Fix anomalie (onglet Domaine) : fond vert foncé, texte crème lisible
...
.anomaly-content avait background quasi-transparent (crème) avec
var(--cel-orange-light) illisible. Passage au fond var(--cel-green-dark)
et texte crème pour les labels/chips, cohérent avec le reste du bloc.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:44:40 +02:00
d0cf06648e
Fix anomalie : barre domaines fond vert foncé + texte crème lisible
...
La barre .anomaly-skills-bar avait un fond semi-transparent sur fond crème
ce qui rendait le texte orange illisible. Passage à fond vert foncé
(cohérent avec le header) + texte crème pour les chips.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:41:37 +02:00
d2af32aba7
Fix éditeurs HTML : {{editor}} → {{formInput}} (API Foundry v13)
...
Tous les champs HTMLField utilisaient le vieux helper {{editor}} (v10/v11)
incompatible avec AppV2. Remplacement par {{formInput systemFields.xxx
enriched=enrichedXxx value=... name=... toggled=true}} dans :
- templates/anomaly.hbs (technique, narratif, exemples)
- templates/aspect.hbs (description, technique, narratif)
- templates/attribute.hbs (description, technique, narratif)
- templates/equipment.hbs (description)
- templates/character-biography.hbs (description, notes)
- templates/npc-blessures.hbs (description)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:40:08 +02:00
54151f8f6f
Fix crash init : MOON_DICE_PHASES supprimé → nouveau setting rollMoonDieByDefault
...
SYSTEM.MOON_DICE_PHASES a été supprimé lors du refactoring 2d8.
Remplacement du setting 'defaultMoonPhase' (String + choices) par
'rollMoonDieByDefault' (Boolean) cohérent avec la nouvelle mécanique.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:36:59 +02:00
e0ccf6de9c
Anomalie : refonte fiche — 3 champs Technique/Narratif/Exemples
...
- DataModel : suppression 'description', ajout 'exemples' (HTMLField)
- Template anomaly.hbs : suppression onglets, 3 sections éditables
directement (sans bouton masqué), scroll interne
- Styles : fond crème + titres de section Art Déco + éditeurs blancs
avec texte sombre lisible (fix couleur jaune illisible)
- item-sheets.mjs : contexte enrichedExemples + hauteur fenêtre 560px
- lang/fr.json : clé CELESTOPOL.Item.exemples
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:35:37 +02:00
39f390f361
Roll dialog: ajout background zone formulaire
...
Ajout fond crème + bordure sur .roll-form-rows pour délimiter
visuellement la zone de saisie du formulaire de jet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:27:46 +02:00
54eacf6afc
Fix formule de dés : 2d8 de base (règles Célestopol)
...
Correction majeure de la mécanique de jet selon les règles :
- Formule : 2d8 + Spécialisation + modificateurs (blessures/aspect/manual)
(vs. ancienne formule erronée : Nd6 pool variable)
- Dé de la Lune : 1d8 narratif optionnel (résultat 1-8 → Triomphe /
Brio / Contrecoup / Catastrophe) — pas un bonus numérique
- Destin : disponible uniquement jauge pleine (lvl=8), donne 3d8,
vide la jauge entière après usage
- system.mjs : MOON_DIE_FACES (tableau 1-8) + MOON_RESULT_TYPES
- roll.mjs : logique complète réécrite (2d8, lune séparée, destin reset)
- character/npc.mjs : prefs.rollMoonDie + destGaugeFull
- roll-dialog.hbs : sans grille lune, checkbox dé lune, destin conditionnel
- chat-message.hbs : résultat dé lune narratif (phase + type + desc),
dés .d8, suppression moonSymbol/moonBonus header
- roll.less : .form-moon-row, .moon-die-result avec couleurs Triomphe/
Brio/Contrecoup/Catastrophe
- lang/fr.json : Moon.triomphe/brio/contrecoup/catastrophe + Full descs,
Roll.rollMoonDie/destGaugeFull/destGaugeEmpty/baseDice
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 16:19:04 +02:00
ad85ecf4bf
Refonte complète : dialogues de jet + messages de chat
...
- Nouveau layout roll-dialog.hbs : header, grille lune 3×3,
sélecteur visibility, ligne Destin avec compteur disponible,
preview formule améliorée
- Fix JS : data-moon-bonus sur chaque option, formule − si négatif
- Fix roll.mjs : passe destActuel au dialog, déduit automatiquement
1 point de Destin (system.destin.lvl++) après chaque jet avec Destin
- character.mjs : passe destActuel = 8 - destin.lvl au prompt()
- chat-message.hbs : icônes résultat (✦✦/✖✖ pour critiques), label
Formule, margin-badge right-aligned vs difficulté left-aligned
- roll.less : refonte complète couleurs (#0c4c0c/#e07b00), grille lune,
destin row, visibility subtil, bandeau critiques améliorés
- lang/fr.json : clés Roll.visibility*, destinAvailable, destinNone,
destinBonus, formula
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-29 00:34:27 +01:00
c540b17e70
Suppression du champ Référence (page) de tous les items
...
- templates : anomaly.hbs, aspect.hbs, attribute.hbs, equipment.hbs
Suppression du form-group 'reference' dans l'onglet description
- module/models/items.mjs : suppression du StringField 'reference'
dans CelestopolAnomaly, CelestopolAspect, CelestopolAttribute,
CelestopolEquipment
- lang/fr.json : suppression de la clé CELESTOPOL.Item.reference
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 20:47:39 +01:00
65445ae840
Fix styles items : overlay CSS, anomalie NPC/PNJ, checkboxes compétences
...
- global.less : suppression du ::before cream overlay (causait un masquage
du header vert sombre sur toutes les fiches items)
Remplacement : z-index: 1 appliqué à .item-header, .item-tabs, section.tab
- templates/character-main.hbs + npc-main.hbs :
Correction affichage type anomalie en mode play :
localize system.anomaly.type → lookup dans anomalyTypes pour label traduit
'none' s'affiche maintenant 'Aucune'
- templates/npc-competences.hbs :
Résistance '0 (0)' → 'actuel / total' (format 0/0 plus lisible)
- styles/character.less : skill-level-checkbox
appearance: none + style custom Art Déco (13×13px, border var(--cel-border),
checked = fond or, disabled:checked = opaque)
Remplacement du style browser default (cubes bleus) par des cases élégantes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 18:43:59 +01:00
a41e5b0199
Révision complète des styles des items et des onglets
...
- global.less : réécriture complète
* Fusion des deux blocs .sheet-tabs en un seul
* Déplacement des styles faction hors de .sheet-tabs
* Onglet actif : gradient or avec texte sombre (bon contraste)
* CSS variables centralisées + hiérarchie propre
- templates/aspect.hbs + attribute.hbs : normalisation
* Ajout de wrappers .form-group pour tous les champs
* Labels explicites (Technique, Narratif, Référence)
* .item-meta container pour les métadonnées du header
- templates/equipment.hbs : suppression de .form-grid
(conflictait avec le grid CSS natif de FoundryVTT)
- styles/items.less
* Labels : var(--cel-orange) → var(--cel-border) (#7a5c20)
contraste WCAG AA sur fond crème (ratio ~5.9)
* Score rows : couleur de texte explicite #1a1209 (lisible)
* Onglet actif : gradient or + texte sombre (cohérent)
* Ajout .item-value-display, .item-qty styles
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 18:33:03 +01:00
f9ddcdf9da
Refonte complète du système Anomalies
...
- DataModel : renommage value→level (1-4), ajout usesRemaining (0-4), suppression scores/notes
- Config : ajout ANOMALY_DEFINITIONS avec compétences applicables par type (8 anomalies)
- Fiche item anomalie : header avec level/uses visuels (dots), barre de compétences applicables,
2 onglets Description + Technique/Narratif (suppression onglet Scores)
- Fiche PJ onglet Domaines : bloc anomalie proéminent unique avec:
- Nom + sous-type + icône
- Dots niveau (●●○○)
- Dots usages + bouton Utiliser + bouton Réinitialiser
- Chips des domaines applicables
- Actions : useAnomaly (décrémente usesRemaining), resetAnomalyUses (reset au niveau)
- Contrainte : max 1 anomalie par personnage (drop + createAnomaly)
- Helpers HBS : lte, gte, lt ajoutés
- i18n : nouvelles clés Anomaly.* (level, usesRemaining, use, resetUses, etc.)
- CSS : .anomaly-block sur fiche PJ, dots animés, .anomaly-uses-row sur fiche item
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 18:15:06 +01:00
cff700bd3d
Fix roll dialog CSS + JS: template <div> wrapper, moon-section, selectors
...
- Remplace <form class='roll-dialog celestopol'> par <div class='roll-dialog-content'>
pour éviter les formulaires HTML imbriqués invalides (DialogV2 a son propre <form>)
- Corrige le sélecteur CSS de .roll-dialog.celestopol vers .application.roll-dialog .roll-dialog-content
- Remplace .form-group.form-moon par .moon-section (classe custom) pour éviter
les conflits avec le CSS grid de FoundryVTT standard-form (label 130px de hauteur)
- Met à jour le script JS inline pour utiliser document.querySelector('.roll-dialog-content')
- Ajoute white-space: nowrap sur le label Destin pour éviter le wrapping sur 3 lignes
- Supprime .application.roll-dialog .window-content padding override (remplacé par dialog-content)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 17:21:18 +01:00
a581853f95
feat: refonte visuelle Art Déco — palette jade/or antique
...
Remplace le vert saturé rgb(12,76,12) par une palette Art Déco
cohérente avec l'esthétique du jeu (nuit lunaire, Belle Époque 1922).
Palette :
- --cel-green : #1b3828 (jade profond désaturé)
- --cel-orange : #c49a1a (or antique)
- --cel-cream : #f0e8d4 (parchemin chaud)
- --cel-border : #7a5c20 (bordure dorée)
- --cel-cream-dark : #e0d4b8 (rangées alternées)
- --cel-accent : #6b1e28 (bordeaux — échecs)
Changements visuels :
- Header : fond jade sombre + fond_cadrille (soft-light), cadre portrait doré
- Tabs : style Art Déco (border-bottom or, pas de fond orange plein)
- Section headers : couleur or + ::after gradient ornamental
- Stat blocks : jade texturé, valeurs compétences en or, rangées alternées
- Factions table : thead jade texturé, rangées alternées
- Items sheets : header jade, tabs Art Déco, labels or
- Chat : header jade texturé, bannière succès jade+or, échec bordeaux
- Roll dialog : titre et labels en or
Assets copiés depuis celestopol1922 :
- fond_cadrille2.jpg, cercle-vert/jaune-checked/unchecked.png, logo_jeu.png
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 11:53:00 +01:00
ea3064d7a2
fix: tests complets - onglets, message de tchat, scores bonus/malus
...
- Onglets item (Anomalie/Aspect/Attribut): correction tabGroups + data-group sur chaque <a> et <section>
- Onglets acteur (PJ/PNJ): tab.cssClass dans les templates pour l'état actif initial
- Message de tchat: alignement des noms de variables _getChatCardData <-> chat-message.hbs
- actorName, actorImg, success/failure, diceResults, statLabel/skillLabel localisés
- difficultyLabel et moonPhaseLabel localisés depuis SYSTEM
- Dialogue de jet (roll-dialog.hbs): correction noms variables + min/max modificateur
- lang/fr.json: ajout Roll.title, Roll.roll, clés Moon (minuscules), Difficulty (unknown/ardu)
- character.mjs: passage statLabel à CelestopolRoll.prompt()
- global.less: padding + overflow-y sur .tab pour contenu visible
- item-scores.hbs: passage system=system au partial + suppression garde isEditable
- Templates anomaly/aspect/attribute: passage system=system au partial item-scores
- chat-message.mjs: getHTML() → renderHTML() (dépréciation FVTT v13)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 11:09:17 +01:00
64e23271df
feat: implémentation complète du système Célestopol 1922 pour FoundryVTT v13
...
- DataModels (character, npc, anomaly, aspect, attribute, equipment)
- ApplicationV2 sheets (character 5 tabs, npc 3 tabs, 4 item sheets)
- DialogV2 pour les jets de dés avec phase de lune
- Templates Handlebars complets (fiches PJ/PNJ, items, jet, chat)
- Styles LESS → CSS compilé (thème vert foncé / orange CopaseticNF)
- i18n fr.json complet (clés CELESTOPOL.*)
- Point d'entrée fvtt-celestopol.mjs avec hooks init/ready
- Assets : polices CopaseticNF, images UI, icônes items
- Mise à jour copilot-instructions.md avec l'architecture réelle
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-28 09:28:34 +01:00
446f9b7500
Prepare gitignore
2026-03-28 08:49:15 +01:00