Commit Graph

9 Commits

Author SHA1 Message Date
d5488516c4 feat: ajoute le champ 'valeur' sur l'item Aspect
- DataModel : champ NumberField 'valeur' (entier, min 0, défaut 0)
- Fiche item aspect.hbs : champ valeur dans le header
- Fiche personnage : affiche item.system.valeur dans la liste des aspects
- CSS : .item-value dans cel-item-row (vert, gras) ; .item-header-valeur dans items.less
- i18n : CELESTOPOL.Aspect.valeur

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-29 19:10:42 +02:00
8f6f3823c6 Aspect : simplifié à un seul champ description
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-29 17:28:52 +02:00
7b2662bdd5 Items : layout exactement identique à la fiche Anomalie
- Classes .anomaly-body/.anomaly-section/.anomaly-section-title/.anomaly-editor-wrap
  promues au niveau partagé (.fvtt-celestopol.item)
- Templates equipment/weapon/armure/aspect utilisent ces classes exactes
- Suppression des anciens mixins item-body-mixin etc.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-29 17:25:40 +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
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
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
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
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