refacto: harmonisation du système avec les règles Hamalron JDR
Corrections majeures : - HamalronTirageTarot extends Roll (évaluation des jets fonctionnelle) - Correction du nom de classe Langue (HamalronFaction -> HamalronLangue) - Création du template tab-navigation.hbs manquant - Type acteur 'character' -> 'personnage' dans _preCreate Types d'items corrigés (anglais -> français) : - weapon -> arme, armor -> armure, equipment -> equipement - Suppression des types inexistants (deal, malefica, ritual, perk) Modèles : - cost -> cout (armure, equipement) - Tarot : default -> initial - Sortilege : LOCALIZATION_PREFIXES corrigé - Constantes CHOICE_ADVANTAGES_DISADVANTAGES et ATTACK_MODIFIERS ajoutées - ATTACK_MODIFIERS supprimé (plus utilisé) Templates alignés sur les modèles réels : - enemy-trait : suppression champs manquants (trauma, stats, domain...) - personnage-equipement : champs alignés sur arme/armure/equipement - personnage-sortileges : suppression domain/level/rituals - enemy-main : suppression stats et flavorText - base-actor : suppression mortality, toChat limité aux tarots Jets de compétence : - Égalité = réussite (>= au lieu de >, conforme aux règles p.155) - Comparaison robuste des cartes de succès (via String()) Le Mat : - Les autres joueurs peuvent renouveler leur main (règle p.151) findTarotItem : recherche dans game.items puis compendiums await manquants ajoutés sur saveDeckState() AGENTS.md créé
This commit is contained in:
@@ -19,7 +19,6 @@ export default class HamalronArme extends foundry.abstract.TypeDataModel {
|
||||
|
||||
prepareDerivedData() {
|
||||
super.prepareDerivedData();
|
||||
let actor = this.parent?.actor;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ export default class HamalronArmure extends foundry.abstract.TypeDataModel {
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.protection = new fields.NumberField({ required: true, initial: 0, min: 0, integer: true })
|
||||
|
||||
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
schema.cout = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
|
||||
return schema
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ export default class HamalronEquipement extends foundry.abstract.TypeDataModel {
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
|
||||
schema.quantity = new fields.NumberField({ required: true, initial: 1, min: 0, integer: true })
|
||||
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
schema.cout = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
|
||||
return schema
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { SYSTEM } from "../config/system.mjs";
|
||||
|
||||
export default class HamalronFaction extends foundry.abstract.TypeDataModel {
|
||||
export default class HamalronLangue extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
const schema = {};
|
||||
@@ -12,5 +12,5 @@ export default class HamalronFaction extends foundry.abstract.TypeDataModel {
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["HAMALRON.Faction"];
|
||||
static LOCALIZATION_PREFIXES = ["HAMALRON.Langue"];
|
||||
}
|
||||
@@ -66,17 +66,13 @@ export default class HamalronPersonnage extends foundry.abstract.TypeDataModel {
|
||||
* @returns {Promise<null>} - A promise that resolves to null if the roll is cancelled.
|
||||
*/
|
||||
async roll(rollType, rollItem) {
|
||||
let opponentTarget
|
||||
const hasTarget = opponentTarget !== undefined
|
||||
|
||||
let roll = await HamalronTirageTarot.prompt({
|
||||
rollType,
|
||||
rollItem,
|
||||
actorId: this.parent.id,
|
||||
actorName: this.parent.name,
|
||||
actorImage: this.parent.img,
|
||||
hasTarget,
|
||||
target: opponentTarget
|
||||
hasTarget: false,
|
||||
})
|
||||
if (!roll) return null
|
||||
|
||||
|
||||
@@ -24,18 +24,13 @@ export default class HamalronPNJ extends foundry.abstract.TypeDataModel {
|
||||
static LOCALIZATION_PREFIXES = ["HAMALRON.PNJ"]
|
||||
|
||||
async roll(rollType, rollItem) {
|
||||
let opponentTarget
|
||||
const hasTarget = opponentTarget !== undefined
|
||||
|
||||
let roll = await HamalronTirageTarot.prompt({
|
||||
rollType,
|
||||
rollItem,
|
||||
actorId: this.parent.id,
|
||||
actorName: this.parent.name,
|
||||
actorImage: this.parent.img,
|
||||
traits: this.parent.items.filter(i => i.type === "trait"),
|
||||
hasTarget,
|
||||
target: opponentTarget
|
||||
hasTarget: false,
|
||||
})
|
||||
if (!roll) return null
|
||||
|
||||
|
||||
@@ -13,6 +13,6 @@ export default class HamalronSortilege extends foundry.abstract.TypeDataModel {
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["HAMALRON.Ritual"]
|
||||
static LOCALIZATION_PREFIXES = ["HAMALRON.Sortilege"]
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ export default class HamalronTarot extends foundry.abstract.TypeDataModel {
|
||||
schema.image = new fields.FilePathField({
|
||||
required: false,
|
||||
categories: ["IMAGE"],
|
||||
default: "icons/svg/treasure.svg",
|
||||
initial: "icons/svg/treasure.svg",
|
||||
})
|
||||
|
||||
return schema;
|
||||
|
||||
Reference in New Issue
Block a user