diff --git a/lang/fr.json b/lang/fr.json index 5ad81fd..2bcbba9 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -20,7 +20,17 @@ "runeeffect": "Effet de Rune", "tendance": "Tendance", "traitchaotique": "Trait Chaotique", - "traitespece": "Trait d'Espèce" + "traitespece": "Trait d'Espèce", + "traitdemoniaque": "Trait Démoniaque", + "pouvoirselementaire": "Pouvoir Élémentaire", + "capaciteautomata": "Capacité d'Automata" + } + }, + "SHEETS": { + "Item": { + "traitdemoniaque": "Trait Démoniaque", + "pouvoirselementaire": "Pouvoir Élémentaire", + "capaciteautomata": "Capacité d'Automata" } }, "MOURNBLADE": { @@ -57,7 +67,7 @@ "pronouncerune": "Prononcer", "rune": "Rune", "soulcost": "Coût en points de pouvoir", - "soulpoints": "Points d'Âme", + "soulpoints": "Points de Pouvoir", "traced": "Tracée", "tracedrune": "Rune tracée", "tracerune": "Tracer" diff --git a/modules/applications/sheets/_module.mjs b/modules/applications/sheets/_module.mjs index 27a36a1..b7d7b72 100644 --- a/modules/applications/sheets/_module.mjs +++ b/modules/applications/sheets/_module.mjs @@ -23,3 +23,6 @@ export { default as MournbladeCYD2TalentSheet } from './mournblade-cyd2-talent-s export { default as MournbladeCYD2TendanceSheet } from './mournblade-cyd2-tendance-sheet.mjs'; export { default as MournbladeCYD2TraitChaotiqueSheet } from './mournblade-cyd2-traitchaotique-sheet.mjs'; export { default as MournbladeCYD2TraitEspeceSheet } from './mournblade-cyd2-traitespece-sheet.mjs'; +export { default as MournbladeCYD2TraitDemoniaqueSheet } from './mournblade-cyd2-traitdemoniaque-sheet.mjs'; +export { default as MournbladeCYD2PouvoirElementaireSheet } from './mournblade-cyd2-pouvoirselementaire-sheet.mjs'; +export { default as MournbladeCYD2CapaciteAutomataSheet } from './mournblade-cyd2-capaciteautomata-sheet.mjs'; diff --git a/modules/applications/sheets/base-actor-sheet.mjs b/modules/applications/sheets/base-actor-sheet.mjs index 7bfc021..cd3276d 100644 --- a/modules/applications/sheets/base-actor-sheet.mjs +++ b/modules/applications/sheets/base-actor-sheet.mjs @@ -176,7 +176,8 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix const item = await Item.fromDropData(data); if (!item) return; if (this.document.uuid === item.parent?.uuid) return; - return this.document.createEmbeddedDocuments("Item", [item.toObject()]); + await this.document.createEmbeddedDocuments("Item", [item.toObject()]); + this.render(); } async _onDropActor(event, data) {} diff --git a/modules/applications/sheets/mournblade-cyd2-capaciteautomata-sheet.mjs b/modules/applications/sheets/mournblade-cyd2-capaciteautomata-sheet.mjs new file mode 100644 index 0000000..6d2fd93 --- /dev/null +++ b/modules/applications/sheets/mournblade-cyd2-capaciteautomata-sheet.mjs @@ -0,0 +1,27 @@ +import MournbladeCYD2ItemSheetV2 from "./base-item-sheet.mjs"; + +export default class MournbladeCYD2CapaciteAutomataSheet extends MournbladeCYD2ItemSheetV2 { + + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "capaciteautomata"], + window: { + ...super.DEFAULT_OPTIONS.window, + title: "SHEETS.Item.capaciteautomata", + }, + }; + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-mournblade-cyd-2-0/templates/item-capaciteautomata-sheet.hbs", + }, + }; + + /** @override */ + async _prepareContext() { + const context = await super._prepareContext(); + return context; + } +} diff --git a/modules/applications/sheets/mournblade-cyd2-pouvoirselementaire-sheet.mjs b/modules/applications/sheets/mournblade-cyd2-pouvoirselementaire-sheet.mjs new file mode 100644 index 0000000..dea00a4 --- /dev/null +++ b/modules/applications/sheets/mournblade-cyd2-pouvoirselementaire-sheet.mjs @@ -0,0 +1,27 @@ +import MournbladeCYD2ItemSheetV2 from "./base-item-sheet.mjs"; + +export default class MournbladeCYD2PouvoirElementaireSheet extends MournbladeCYD2ItemSheetV2 { + + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "pouvoirselementaire"], + window: { + ...super.DEFAULT_OPTIONS.window, + title: "SHEETS.Item.pouvoirselementaire", + }, + }; + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-mournblade-cyd-2-0/templates/item-pouvoirselementaire-sheet.hbs", + }, + }; + + /** @override */ + async _prepareContext() { + const context = await super._prepareContext(); + return context; + } +} diff --git a/modules/applications/sheets/mournblade-cyd2-traitdemoniaque-sheet.mjs b/modules/applications/sheets/mournblade-cyd2-traitdemoniaque-sheet.mjs new file mode 100644 index 0000000..7952836 --- /dev/null +++ b/modules/applications/sheets/mournblade-cyd2-traitdemoniaque-sheet.mjs @@ -0,0 +1,27 @@ +import MournbladeCYD2ItemSheetV2 from "./base-item-sheet.mjs"; + +export default class MournbladeCYD2TraitDemoniaqueSheet extends MournbladeCYD2ItemSheetV2 { + + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "traitdemoniaque"], + window: { + ...super.DEFAULT_OPTIONS.window, + title: "SHEETS.Item.traitdemoniaque", + }, + }; + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-mournblade-cyd-2-0/templates/item-traitdemoniaque-sheet.hbs", + }, + }; + + /** @override */ + async _prepareContext() { + const context = await super._prepareContext(); + return context; + } +} diff --git a/modules/models/capaciteautomata.mjs b/modules/models/capaciteautomata.mjs new file mode 100644 index 0000000..25c6e7f --- /dev/null +++ b/modules/models/capaciteautomata.mjs @@ -0,0 +1,12 @@ +/** + * Data model pour les capacités d'Automata MournbladeCYD2 + */ +export default class CapaciteAutomataDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }), + bonusmalus: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/modules/models/index.mjs b/modules/models/index.mjs index be246e7..d0c2d45 100644 --- a/modules/models/index.mjs +++ b/modules/models/index.mjs @@ -20,6 +20,9 @@ export { default as RuneEffectDataModel } from './runeeffect.mjs'; export { default as TendanceDataModel } from './tendance.mjs'; export { default as TraitChaotiqueDataModel } from './traitchaotique.mjs'; export { default as TraitEspeceDataModel } from './traitespece.mjs'; +export { default as TraitDemoniaqueDataModel } from './traitdemoniaque.mjs'; +export { default as PouvoirElementaireDataModel } from './pouvoirselementaire.mjs'; +export { default as CapaciteAutomataDataModel } from './capaciteautomata.mjs'; // Modèles d'acteurs export { default as PersonnageDataModel } from './personnage.mjs'; diff --git a/modules/models/pouvoirselementaire.mjs b/modules/models/pouvoirselementaire.mjs new file mode 100644 index 0000000..dc59c40 --- /dev/null +++ b/modules/models/pouvoirselementaire.mjs @@ -0,0 +1,12 @@ +/** + * Data model pour les pouvoirs élémentaires MournbladeCYD2 + */ +export default class PouvoirElementaireDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }), + bonusmalus: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/modules/models/rune.mjs b/modules/models/rune.mjs index 486dc9a..9e78a21 100644 --- a/modules/models/rune.mjs +++ b/modules/models/rune.mjs @@ -10,7 +10,7 @@ export default class RuneDataModel extends foundry.abstract.TypeDataModel { seuil: new fields.NumberField({ initial: 0, integer: true }), prononcee: new fields.StringField({ initial: "" }), tracee: new fields.StringField({ initial: "" }), - coutAme: new fields.NumberField({ initial: 0, integer: true }) + coutAme: new fields.StringField({ initial: "" }) }; } } diff --git a/modules/models/traitchaotique.mjs b/modules/models/traitchaotique.mjs index d2e6865..24badf2 100644 --- a/modules/models/traitchaotique.mjs +++ b/modules/models/traitchaotique.mjs @@ -5,7 +5,8 @@ export default class TraitChaotiqueDataModel extends foundry.abstract.TypeDataMo static defineSchema() { const fields = foundry.data.fields; return { - description: new fields.HTMLField({ initial: "" }) + description: new fields.HTMLField({ initial: "" }), + bonusmalus: new fields.StringField({ initial: "" }) }; } } diff --git a/modules/models/traitdemoniaque.mjs b/modules/models/traitdemoniaque.mjs new file mode 100644 index 0000000..6a3b725 --- /dev/null +++ b/modules/models/traitdemoniaque.mjs @@ -0,0 +1,12 @@ +/** + * Data model pour les traits démoniaques MournbladeCYD2 + */ +export default class TraitDemoniaqueDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }), + bonusmalus: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/modules/models/traitespece.mjs b/modules/models/traitespece.mjs index 2402db8..74477f6 100644 --- a/modules/models/traitespece.mjs +++ b/modules/models/traitespece.mjs @@ -5,7 +5,8 @@ export default class TraitEspeceDataModel extends foundry.abstract.TypeDataModel static defineSchema() { const fields = foundry.data.fields; return { - description: new fields.HTMLField({ initial: "" }) + description: new fields.HTMLField({ initial: "" }), + bonusmalus: new fields.StringField({ initial: "" }) }; } } diff --git a/modules/mournblade-cyd2-main.js b/modules/mournblade-cyd2-main.js index 2ddaf79..769d9dc 100644 --- a/modules/mournblade-cyd2-main.js +++ b/modules/mournblade-cyd2-main.js @@ -69,7 +69,10 @@ Hooks.once("init", async function () { runeeffect: models.RuneEffectDataModel, tendance: models.TendanceDataModel, traitchaotique: models.TraitChaotiqueDataModel, - traitespece: models.TraitEspeceDataModel + traitespece: models.TraitEspeceDataModel, + traitdemoniaque: models.TraitDemoniaqueDataModel, + pouvoirselementaire: models.PouvoirElementaireDataModel, + capaciteautomata: models.CapaciteAutomataDataModel } game.system.mournbladecyd2 = { MournbladeCYD2Utility, @@ -99,6 +102,9 @@ Hooks.once("init", async function () { foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2TendanceSheet, { types: ["tendance"], makeDefault: true }); foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2TraitChaotiqueSheet, { types: ["traitchaotique"], makeDefault: true }); foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2TraitEspeceSheet, { types: ["traitespece"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2TraitDemoniaqueSheet, { types: ["traitdemoniaque"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2PouvoirElementaireSheet, { types: ["pouvoirselementaire"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2CapaciteAutomataSheet, { types: ["capaciteautomata"], makeDefault: true }); MournbladeCYD2Utility.init() MournbladeCYD2Automation.init() diff --git a/system.json b/system.json index 0c98ace..63ed87a 100644 --- a/system.json +++ b/system.json @@ -51,7 +51,10 @@ "runeeffect": { "htmlFields": ["description"] }, "tendance": { "htmlFields": ["description"] }, "traitchaotique": { "htmlFields": ["description"] }, - "traitespece": { "htmlFields": ["description"] } + "traitespece": { "htmlFields": ["description"] }, + "traitdemoniaque": { "htmlFields": ["description"] }, + "pouvoirselementaire": { "htmlFields": ["description"] }, + "capaciteautomata": { "htmlFields": ["description"] } } }, "flags": { diff --git a/templates/chat-generic-result.hbs b/templates/chat-generic-result.hbs index ef0097e..656c42b 100644 --- a/templates/chat-generic-result.hbs +++ b/templates/chat-generic-result.hbs @@ -122,7 +122,7 @@