Migration datamodels !
All checks were successful
Release Creation / build (release) Successful in 53s

This commit is contained in:
2026-01-10 16:26:38 +01:00
parent 690293c1c8
commit c36f2d0116
2 changed files with 0 additions and 478 deletions

View File

@@ -1,298 +0,0 @@
# Améliorations de la Fiche Créature
## Vue d'ensemble
La fiche créature a été complètement alignée avec les dernières améliorations de la fiche personnage pour assurer une expérience utilisateur cohérente à travers tout le système.
## Changements Apportés
## PARTIE 1 : ONGLET ATTRIBUTS (STATS)
### 1. Attributs avec Liste Déroulante (Dropdown)
**Avant:**
```handlebars
<input type="number" name="system.attributs.{{key}}.value" value="{{attr.value}}" />
```
**Après:**
```handlebars
<select name="system.attributs.{{key}}.value" value="{{attr.value}}" data-dtype="Number">
{{selectOptions @root.config.listeNiveauCreature selected=attr.value}}
</select>
```
**Raison:**
- Les créatures peuvent avoir des attributs de 0 à 35 (vs 0-10 pour personnages)
- Utilise `listeNiveauCreature` créé dynamiquement dans `wasteland-main.js`
- Interface plus propre et empêche les valeurs invalides
### 2. Attributs Cliquables (Rollable)
**Avant:**
```handlebars
<span class="item-name">{{attr.label}}</span>
```
**Après:**
```handlebars
<span class="item-name">
<a class="rollable" data-action="rollAttribut" data-attr-key="{{key}}">{{attr.label}}</a>
</span>
```
**Raison:**
- Permet de cliquer sur le nom de l'attribut pour faire un jet
### 3-5. Boutons +/- pour Santé et Psyché
Ajouté des boutons d'ajustement pour:
- Dégâts non létaux
- Dégâts létaux
- Psyché actuelle
**Raison:**
- Facilite l'ajustement rapide en combat
### 6. Terminologie
Changé "Courante" → "Actuelle" pour la psyché
## PARTIE 2 : ONGLET COMBAT
### 7. Valeurs de Combat - Grille 2x2 avec Champs Bonus
**Layout:**
```
┌──────────────────────────────┬──────────────────────────────┐
│ Initiative 12 [+2] = 14 │ Défense 15 [+2] = 17 │
├──────────────────────────────┼──────────────────────────────┤
│ Vitesse 8 [+0] = 8 │ Bonus Dég. +3 [+1] = +4 │
└──────────────────────────────┴──────────────────────────────┘
```
**Code:**
```handlebars
<div class="grid grid-2col">
<div class="combat-stat-row">
<label class="stat-label">Initiative</label>
<div class="stat-values">
<span class="stat-base">{{combat.initBase}}</span>
<input type="number" class="input-numeric-short" name="system.combat.initbonus"
value="{{system.combat.initbonus}}" data-tooltip="Bonus" />
<span class="stat-total">= {{combat.initTotal}}</span>
</div>
</div>
<!-- 3 autres similaires -->
</div>
```
**Raison:**
- **DIFFÉRENCE IMPORTANTE AVEC PERSONNAGE**: Créatures ont besoin des champs bonus éditables
- **Grille 2x2**: Compacte mais lisible, 2 valeurs par ligne
- Format: Nom | Base | [Bonus] | = Total
### 8. Compétences avec Boutons de Roll et Dropdown Niveau
**Avant:**
```handlebars
<span class="item-niveau">Niveau: {{skill.system.niveau}}</span>
```
**Après:**
```handlebars
<select class="status-small-label color-class-common edit-item-data competence-niveau"
data-item-field="niveau" data-dtype="Number">
{{selectOptions @root.config.listeNiveauSkill selected=skill.system.niveau}}
</select>
```
**Raison:**
- **Liste déroulante pour le niveau** (0-10) au lieu de texte statique
- Modification directe depuis la liste sans ouvrir la fiche
- Utilise le handler `edit-item-data` existant
- Appelle `editItemField()` pour mise à jour automatique
- **Comportement identique** à la fiche personnage
**Ajouts:**
- Boutons de roll par attribut (ADR:15, PUI:12, etc.)
- Nom cliquable pour éditer
- Bouton "Ajouter une compétence" en bas
### 9. Armes avec Format Moderne
**Avant:**
```handlebars
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">Armes</span>
<span>Attaque</span> <span>Défense</span> <span>Dégâts</span>
</li>
```
**Après:**
```handlebars
<span class="weapon-stats">
<span class="stat-offensif" data-tooltip="Attaque">
<i class="fas fa-crosshairs"></i> {{arme.system.totalOffensif}}
</span>
{{#if arme.system.isdefense}}
<span class="stat-defensif" data-tooltip="Défense">
<i class="fas fa-shield"></i> {{arme.system.totalDefensif}}
</span>
{{/if}}
</span>
<button class="button-sheet-roll" data-action="rollArmeOffensif">
<i class="fas fa-dice-d20"></i>
</button>
<button class="button-sheet-roll" data-action="rollArmeDegats">
<i class="fas fa-burst"></i>
</button>
```
**Raison:**
- Stats avec icônes visuelles (🎯 crosshairs, 🛡️ shield)
- Boutons avec icônes au lieu de texte
- Suppression du header colonnes
- Nom cliquable pour éditer
- Bouton "Ajouter une arme" en bas
### 10. Capacités
**Ajouts:**
- Nom cliquable pour éditer
- Bouton "Ajouter une capacité" en bas
## Fichiers Modifiés
### templates/actor-creature-sheet.hbs
- **Lignes 26-37**: Attributs avec dropdown et rollable links
- **Lignes 39-110**: Santé et Psyché avec boutons +/-
- **Lignes 107-146**: Valeurs combat en grille 2x2 avec inputs bonus
- **Lignes 148-189**: Compétences avec dropdown niveau et boutons de roll
- **Lignes 191-243**: Armes au format moderne avec icônes
- **Lignes 245-261**: Capacités avec nom cliquable
- **Total**: ~140 lignes modifiées/ajoutées
### less/actor-styles.less
- **Lignes 279-331**: Nouveaux styles pour `.combat-stats` (grille 2x2 créatures)
- **Total**: 52 lignes ajoutées
## Styles CSS Ajoutés
```less
.combat-stats {
margin-bottom: 1rem;
.grid-2col {
gap: 0.5rem;
}
.combat-stat-row {
display: flex;
align-items: center;
background: rgba(255, 255, 255, 0.2);
border: 1px solid #6a0606;
border-radius: 3px;
padding: 0.4rem 0.6rem;
gap: 0.5rem;
.stat-label {
font-weight: bold;
font-size: 0.85rem;
min-width: 90px;
flex: 0 0 auto;
}
.stat-values {
display: flex;
align-items: center;
gap: 0.3rem;
flex: 1;
.stat-base { font-weight: bold; min-width: 30px; text-align: center; }
.input-numeric-short { width: 50px; text-align: center; padding: 0.2rem; }
.stat-total { font-weight: bold; color: #6a0606; min-width: 40px; }
}
}
}
```
## Actions Utilisées
Toutes réutilisées depuis `base-actor-sheet.mjs`:
- `rollAttribut` - Jets d'attributs
- `incDecSante` - Boutons +/- santé/psyché
- `rollCompetence` - Jets de compétence
- `rollArmeOffensif` / `rollArmeDegats` - Jets d'arme
- `createItem` / `editItem` / `deleteItem` - Gestion items
Handler spécial:
- `edit-item-data` - Modification dropdown niveau compétence
- Appelle `editItemField(itemId, itemType, itemField, dataType, value)` dans wasteland-actor.js
## Bénéfices
### Onglet Attributs
1. **Cohérence**: Même interface que fiche personnage
2. **Facilité**: Boutons +/- pour ajustements rapides
3. **Prévention d'erreurs**: Dropdowns empêchent valeurs invalides
4. **Ergonomie**: Attributs cliquables pour jets rapides
### Onglet Combat
1. **Layout 2x2**: Valeurs de combat compactes
2. **Champs Bonus**: Créatures peuvent ajuster leurs stats
3. **Dropdown Niveau**: Modification compétences sans ouvrir fiche
4. **Jets Rapides**: Boutons directement sur compétences/armes
5. **Interface Moderne**: Icônes et layout épuré
## Comparaison Avant/Après
| Élément | Avant | Après | Bénéfice |
|---------|-------|-------|----------|
| **Attributs** | Input number | Select dropdown (0-35) + rollable | Prévention erreurs + jets rapides |
| **Santé/Psyché** | Input seul | Input + boutons -/+ | Ajustement rapide en combat |
| **Valeurs Combat** | Liste 4 lignes verticale | Grille 2x2 Base [Bonus] = Total | Layout compact + édition |
| **Niveau Compétence** | Texte statique | Dropdown (0-10) éditable | Modification directe |
| **Compétences** | Nom + niveau | Dropdown + boutons roll attributs | Jets + édition rapide |
| **Armes** | Header + colonnes texte | Stats icônes + boutons icônes | Interface moderne |
| **Capacités** | Nom statique | Nom cliquable + bouton ajout | Édition rapide |
## Tests Recommandés
### Onglet Attributs
1. Vérifier dropdown attributs (0-35)
2. Cliquer sur nom d'attribut pour jet
3. Tester boutons +/- santé/psyché
4. Vérifier sauvegarde modifications
### Onglet Combat
1. Vérifier grille 2x2 valeurs combat
2. Modifier les champs bonus
3. **Tester dropdown niveau compétence** (nouveau)
4. Tester boutons roll compétences
5. Cliquer boutons attaque/dégâts armes
6. Vérifier tooltips
7. Tester ajout compétence/arme/capacité
8. Cliquer noms pour éditer
## Notes Importantes
- **Aucune modification JavaScript nécessaire** (actions/handlers déjà existants)
- **Modification CSS mineure** (52 lignes pour grille combat)
- **Changements principalement template Handlebars**
- **Compatible AppV2**
- **Différence clé avec personnage**: Créatures ont champs bonus combat éditables
- **Nouveau**: Dropdown niveau compétence avec modification directe (handler `edit-item-data`)
## Impact Visuel
```
CRÉATURE (Valeurs Combat) - Grille 2x2:
┌──────────────────────────────┬──────────────────────────────┐
│ Initiative 12 [+2] = 14 │ Défense 15 [+2] = 17 │
├──────────────────────────────┼──────────────────────────────┤
│ Vitesse 8 [+0] = 8 │ Bonus Dég. +3 [+1] = +4 │
└──────────────────────────────┴──────────────────────────────┘
CRÉATURE (Compétences):
[🖼️] Mouvements [Dropdown 0-10: 3]
[ADR : 15] [PUI : 12] [✏️] [🗑️]
PERSONNAGE (Compétences):
[🖼️] Mouvements [Dropdown 0-10: 3]
[ADR : 15] [PUI : 12] [✏️] [🗑️]
Prédilections: Escalade, Course
```
Total: ~140 lignes template + 52 lignes CSS = 192 lignes modifiées

View File

@@ -1,180 +0,0 @@
# Workflow de Release Gitea pour Wasteland
## Vue d'ensemble
Ce workflow automatise la création de releases pour le système Wasteland dans Foundry VTT via Gitea Actions.
## Déclenchement
Le workflow se déclenche automatiquement lors de la **publication d'une release** sur Gitea :
```yaml
on:
release:
types: [published]
```
## Étapes du Workflow
### 1. Clone du Repository
- Clone le repository Wasteland
- Utilise `RouxAntoine/checkout@v3.5.4`
### 2. Extraction du Numéro de Version
- Extrait la version depuis le tag de release
- Exemple: tag `v1.2.3` → version `1.2.3`
- Utilise `battila7/get-version-action@v2`
### 3. Substitution des URLs dans system.json
Met à jour automatiquement le `system.json` avec :
```json
{
"version": "1.2.3",
"url": "https://www.uberwald.me/gitea/public/fvtt-wasteland",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-wasteland/releases/download/latest/system.json",
"download": "https://www.uberwald.me/gitea/public/fvtt-wasteland/releases/download/v1.2.3/fvtt-wasteland.zip"
}
```
### 4. Création du ZIP
Crée `fvtt-wasteland.zip` contenant :
- `system.json` (mis à jour)
- `README.md`
- `changelog.md`
- `assets/`
- `lang/`
- `modules/`
- `packs/`
- `styles/`
- `templates/`
- `template.json`
**Note:** Exclut `node_modules/`, `less/`, `gulpfile.js`, etc.
### 5. Upload vers Gitea
- Upload du ZIP et du system.json vers la release
- Utilise le secret `ALLOW_PUSH_RELEASE`
### 6. Publication sur Foundry VTT
- Notifie le site officiel Foundry VTT de la nouvelle version
- Utilise le secret `FOUNDRYVTT_RELEASE_TOKEN`
- Compatibilité: Foundry V13
## Secrets Requis
Dans les paramètres du repository Gitea, configurer :
1. **`ALLOW_PUSH_RELEASE`**
- Token Gitea avec droits d'écriture sur releases
- Généré dans : Paramètres utilisateur → Applications → Tokens
2. **`FOUNDRYVTT_RELEASE_TOKEN`**
- Token du Foundry Package Creator
- Obtenu sur : https://foundryvtt.com/packages/edit/fvtt-wasteland
## Comment Créer une Release
### Méthode 1: Via l'Interface Gitea
1. Aller sur `https://www.uberwald.me/gitea/public/fvtt-wasteland`
2. Cliquer sur "Releases"
3. Cliquer sur "New Release"
4. Remplir :
- **Tag version**: `v1.2.3` (respecter le format `vX.Y.Z`)
- **Release title**: `Version 1.2.3 - Description courte`
- **Description**: Changelog détaillé
5. Cocher "This is a pre-release" si applicable
6. Cliquer sur "Publish Release"
### Méthode 2: Via Git CLI
```bash
# Créer et pousser le tag
git tag -a v1.2.3 -m "Version 1.2.3 - Description"
git push origin v1.2.3
# Puis créer la release via l'interface Gitea
```
## Déroulement Automatique
1. ✅ Détection de la publication de release
2. ✅ Clone du repository
3. ✅ Extraction de la version depuis le tag
4. ✅ Mise à jour du system.json
5. ✅ Création du ZIP
6. ✅ Upload sur Gitea
7. ✅ Publication sur Foundry VTT
## Vérification
Après publication, vérifier :
1. **Sur Gitea** : `https://www.uberwald.me/gitea/public/fvtt-wasteland/releases`
- Le ZIP `fvtt-wasteland.zip` est disponible
- Le `system.json` est disponible
- Les URLs sont correctes
2. **Sur Foundry VTT** : https://foundryvtt.com/packages/fvtt-wasteland
- La nouvelle version apparaît
- Le manifest pointe vers le bon fichier
3. **Dans Foundry** :
- Installer/Mettre à jour le système
- Vérifier que tout fonctionne
## URLs Importantes
- **Repository**: https://www.uberwald.me/gitea/public/fvtt-wasteland
- **Releases**: https://www.uberwald.me/gitea/public/fvtt-wasteland/releases
- **Manifest (latest)**: https://www.uberwald.me/gitea/public/fvtt-wasteland/releases/download/latest/system.json
- **Foundry Package**: https://foundryvtt.com/packages/fvtt-wasteland
## Troubleshooting
### Le workflow ne se déclenche pas
- Vérifier que la release est bien **published** (pas draft)
- Vérifier que le fichier `.gitea/workflows/release.yaml` existe
### Erreur lors de la création du ZIP
- Vérifier que tous les dossiers existent
- Vérifier les permissions
### Erreur lors de la publication Foundry
- Vérifier que `FOUNDRYVTT_RELEASE_TOKEN` est configuré
- Vérifier que l'ID du package est correct (`fvtt-wasteland`)
### Les URLs ne sont pas mises à jour
- Vérifier le format du tag (doit être `vX.Y.Z`)
- Vérifier que `microsoft/variable-substitution` fonctionne
## Exemple de Changelog
Pour `v1.2.3` :
```markdown
# Version 1.2.3 - Améliorations Fiches Créatures
## Nouvelles Fonctionnalités
- Ajout de dropdowns pour niveaux de compétences créatures
- Message de bienvenue stylé
- Grille 2x2 pour valeurs de combat
## Corrections
- Fix dialog render error
- Fix attribute selection
- Fix predilection reroll
## Améliorations
- Interface créature alignée avec personnage
- Styles cohérents pour tous les messages
- Documentation complète
```
## Notes
- Le workflow utilise Ubuntu latest
- Go 1.20.1+ est installé pour l'action de release
- Le système est compatible avec Foundry V13
- Les packs sont inclus dans le ZIP (format NeDB/LevelDB)