Migration vers DataModels et appv2
This commit is contained in:
35
gulpfile.js
Normal file
35
gulpfile.js
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
const gulp = require('gulp');
|
||||||
|
const less = require('gulp-less');
|
||||||
|
const sourcemaps = require('gulp-sourcemaps');
|
||||||
|
|
||||||
|
// Paths
|
||||||
|
const paths = {
|
||||||
|
styles: {
|
||||||
|
src: 'less/**/*.less',
|
||||||
|
dest: 'styles/'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Compile LESS to CSS
|
||||||
|
function styles() {
|
||||||
|
return gulp.src('less/heritiers.less')
|
||||||
|
.pipe(sourcemaps.init())
|
||||||
|
.pipe(less())
|
||||||
|
.pipe(sourcemaps.write('.'))
|
||||||
|
.pipe(gulp.dest(paths.styles.dest));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch files
|
||||||
|
function watchFiles() {
|
||||||
|
gulp.watch(paths.styles.src, styles);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define complex tasks
|
||||||
|
const build = gulp.series(styles);
|
||||||
|
const watch = gulp.series(build, watchFiles);
|
||||||
|
|
||||||
|
// Export tasks
|
||||||
|
exports.styles = styles;
|
||||||
|
exports.build = build;
|
||||||
|
exports.watch = watch;
|
||||||
|
exports.default = build;
|
||||||
4
less/heritiers.less
Normal file
4
less/heritiers.less
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
// Main LESS file for Les Héritiers system
|
||||||
|
// Temporarily importing the full converted simple.css while we refactor
|
||||||
|
|
||||||
|
@import "simple-converted";
|
||||||
1637
less/simple-converted.less
Normal file
1637
less/simple-converted.less
Normal file
File diff suppressed because it is too large
Load Diff
311
modules/applications/heritiers-roll-dialog.mjs
Normal file
311
modules/applications/heritiers-roll-dialog.mjs
Normal file
@@ -0,0 +1,311 @@
|
|||||||
|
import { HeritiersUtility } from "../heritiers-utility.js"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dialogue de jet de dé pour Les Héritiers - Version AppV2
|
||||||
|
*/
|
||||||
|
export class HeritiersRollDialog {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create and display the roll dialog
|
||||||
|
* @param {HeritiersActor} actor - The actor making the roll
|
||||||
|
* @param {Object} rollData - Data for the roll
|
||||||
|
* @returns {Promise<Object>} - Returns a dialog-like object for compatibility
|
||||||
|
*/
|
||||||
|
static async create(actor, rollData) {
|
||||||
|
// Préparer le contexte pour le template
|
||||||
|
const context = {
|
||||||
|
...rollData,
|
||||||
|
img: actor.img,
|
||||||
|
name: actor.name,
|
||||||
|
config: game.system.lesheritiers.config,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rendre le template en HTML
|
||||||
|
const content = await foundry.applications.handlebars.renderTemplate(
|
||||||
|
"systems/fvtt-les-heritiers/templates/roll-dialog-generic.hbs",
|
||||||
|
context
|
||||||
|
)
|
||||||
|
|
||||||
|
// Préparer les boutons selon le mode et le niveau
|
||||||
|
const buttons = this._prepareButtons(rollData)
|
||||||
|
|
||||||
|
// Lancer le dialog de manière asynchrone (sans attendre)
|
||||||
|
setTimeout(() => {
|
||||||
|
foundry.applications.api.DialogV2.wait({
|
||||||
|
window: { title: "Test de Capacité", icon: "fa-solid fa-dice" },
|
||||||
|
classes: ["heritiers-roll-dialog"],
|
||||||
|
position: { width: 420, height: 'fit-content' },
|
||||||
|
modal: false,
|
||||||
|
content,
|
||||||
|
buttons,
|
||||||
|
rejectClose: false,
|
||||||
|
render: (event, html) => {
|
||||||
|
this._activateListeners(html, rollData)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, 0)
|
||||||
|
|
||||||
|
// Retourner un objet avec une méthode render() vide pour compatibilité
|
||||||
|
return {
|
||||||
|
render: () => {} // No-op for compatibility with old code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Préparer les boutons selon le mode et le niveau de compétence
|
||||||
|
* @param {Object} rollData - Data for the roll
|
||||||
|
* @returns {Array} - Array of button configurations
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static _prepareButtons(rollData) {
|
||||||
|
const buttons = []
|
||||||
|
|
||||||
|
// Bouton d8 toujours disponible
|
||||||
|
buttons.push({
|
||||||
|
action: "rolld8",
|
||||||
|
label: "Lancer 1d8",
|
||||||
|
icon: "fa-solid fa-dice-d8",
|
||||||
|
default: true,
|
||||||
|
callback: (event, button, dialog) => {
|
||||||
|
this._updateRollDataFromForm(rollData, button.form.elements)
|
||||||
|
this._executeRoll(rollData, "d8")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Bouton d10 si niveau > 0 ou pouvoir
|
||||||
|
const enableD10 = rollData.mode === "pouvoir" || rollData.competence?.system.niveau > 0
|
||||||
|
if (enableD10) {
|
||||||
|
buttons.push({
|
||||||
|
action: "rolld10",
|
||||||
|
label: "Lancer 1d10",
|
||||||
|
icon: "fa-solid fa-dice-d10",
|
||||||
|
callback: (event, button, dialog) => {
|
||||||
|
this._updateRollDataFromForm(rollData, button.form.elements)
|
||||||
|
this._executeRoll(rollData, "d10")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bouton d12 si niveau > 1 ou pouvoir
|
||||||
|
const enableD12 = rollData.mode === "pouvoir" || rollData.competence?.system.niveau > 1
|
||||||
|
if (enableD12) {
|
||||||
|
buttons.push({
|
||||||
|
action: "rolld12",
|
||||||
|
label: "Lancer 1d12",
|
||||||
|
icon: "fa-solid fa-dice-d12",
|
||||||
|
callback: (event, button, dialog) => {
|
||||||
|
this._updateRollDataFromForm(rollData, button.form.elements)
|
||||||
|
this._executeRoll(rollData, "d12")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bouton Tricherie si disponible
|
||||||
|
if (rollData.tricherie) {
|
||||||
|
buttons.push({
|
||||||
|
action: "rollTricherie",
|
||||||
|
label: "Lancer avec 1 Point de Tricherie",
|
||||||
|
icon: "fa-solid fa-mask",
|
||||||
|
callback: (event, button, dialog) => {
|
||||||
|
this._updateRollDataFromForm(rollData, button.form.elements)
|
||||||
|
this._executeRoll(rollData, "tricherie")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bouton Héritage si disponible
|
||||||
|
if (rollData.heritage) {
|
||||||
|
buttons.push({
|
||||||
|
action: "rollHeritage",
|
||||||
|
label: "Lancer avec 1 Point d'Héritage",
|
||||||
|
icon: "fa-solid fa-crown",
|
||||||
|
callback: (event, button, dialog) => {
|
||||||
|
this._updateRollDataFromForm(rollData, button.form.elements)
|
||||||
|
this._executeRoll(rollData, "heritage")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si mode carac uniquement, on ne garde que d8
|
||||||
|
if (rollData.mode === "carac") {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
action: "rolld8",
|
||||||
|
label: "Lancer 1d8",
|
||||||
|
icon: "fa-solid fa-dice-d8",
|
||||||
|
default: true,
|
||||||
|
callback: (event, button, dialog) => {
|
||||||
|
this._updateRollDataFromForm(rollData, button.form.elements)
|
||||||
|
this._executeRoll(rollData, "d8")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
return buttons
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activer les listeners sur le formulaire
|
||||||
|
* @param {HTMLElement} html - L'élément HTML du dialog
|
||||||
|
* @param {Object} rollData - Data for the roll
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static _activateListeners(html, rollData) {
|
||||||
|
// Seuil de Difficulté
|
||||||
|
const sdValue = html.querySelector('#sdValue')
|
||||||
|
if (sdValue) {
|
||||||
|
sdValue.addEventListener('change', (event) => {
|
||||||
|
rollData.sdValue = Number(event.currentTarget.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Caractéristique
|
||||||
|
const caracKey = html.querySelector('#caracKey')
|
||||||
|
if (caracKey) {
|
||||||
|
caracKey.addEventListener('change', (event) => {
|
||||||
|
rollData.caracKey = String(event.currentTarget.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bonus/Malus contextuel
|
||||||
|
const bonusMalusContext = html.querySelector('#bonus-malus-context')
|
||||||
|
if (bonusMalusContext) {
|
||||||
|
bonusMalusContext.addEventListener('change', (event) => {
|
||||||
|
rollData.bonusMalusContext = Number(event.currentTarget.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaque à plusieurs
|
||||||
|
const bonusAttaquePlusieurs = html.querySelector('#bonus-attaque-plusieurs')
|
||||||
|
if (bonusAttaquePlusieurs) {
|
||||||
|
bonusAttaquePlusieurs.addEventListener('change', (event) => {
|
||||||
|
rollData.bonusAttaquePlusieurs = Number(event.currentTarget.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spécialité
|
||||||
|
const useSpecialite = html.querySelector('#useSpecialite')
|
||||||
|
if (useSpecialite) {
|
||||||
|
useSpecialite.addEventListener('change', (event) => {
|
||||||
|
rollData.useSpecialite = event.currentTarget.checked
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Points d'usage du pouvoir
|
||||||
|
const pouvoirPointsUsage = html.querySelector('#pouvoirPointsUsage')
|
||||||
|
if (pouvoirPointsUsage) {
|
||||||
|
pouvoirPointsUsage.addEventListener('change', (event) => {
|
||||||
|
rollData.pouvoirPointsUsage = Number(event.currentTarget.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaque dans le dos
|
||||||
|
const attaqueDos = html.querySelector('#attaqueDos')
|
||||||
|
if (attaqueDos) {
|
||||||
|
attaqueDos.addEventListener('change', (event) => {
|
||||||
|
rollData.attaqueDos = event.currentTarget.checked
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Seconde arme
|
||||||
|
const secondeArme = html.querySelector('#bonus-attaque-seconde-arme')
|
||||||
|
if (secondeArme) {
|
||||||
|
secondeArme.addEventListener('change', (event) => {
|
||||||
|
rollData.secondeArme = String(event.currentTarget.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaque ciblée
|
||||||
|
const attaqueCible = html.querySelector('#attaque-cible')
|
||||||
|
if (attaqueCible) {
|
||||||
|
attaqueCible.addEventListener('change', (event) => {
|
||||||
|
rollData.attaqueCible = String(event.currentTarget.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaque à deux armes
|
||||||
|
const attaqueDeuxArmes = html.querySelector('#bonus-attaque-deux-armes')
|
||||||
|
if (attaqueDeuxArmes) {
|
||||||
|
attaqueDeuxArmes.addEventListener('change', (event) => {
|
||||||
|
rollData.attaqueDeuxArmes = Number(event.currentTarget.value)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mettre à jour rollData avec les valeurs du formulaire
|
||||||
|
* @param {Object} rollData - L'objet rollData à mettre à jour
|
||||||
|
* @param {HTMLFormControlsCollection} formElements - Les éléments du formulaire
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static _updateRollDataFromForm(rollData, formElements) {
|
||||||
|
// Seuil de Difficulté
|
||||||
|
if (formElements.sdValue) {
|
||||||
|
rollData.sdValue = Number(formElements.sdValue.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Caractéristique
|
||||||
|
if (formElements.caracKey) {
|
||||||
|
rollData.caracKey = String(formElements.caracKey.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bonus/Malus contextuel
|
||||||
|
if (formElements['bonus-malus-context']) {
|
||||||
|
rollData.bonusMalusContext = Number(formElements['bonus-malus-context'].value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaque à plusieurs
|
||||||
|
if (formElements['bonus-attaque-plusieurs']) {
|
||||||
|
rollData.bonusAttaquePlusieurs = Number(formElements['bonus-attaque-plusieurs'].value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spécialité
|
||||||
|
if (formElements.useSpecialite !== undefined) {
|
||||||
|
rollData.useSpecialite = formElements.useSpecialite.checked
|
||||||
|
}
|
||||||
|
|
||||||
|
// Points d'usage du pouvoir
|
||||||
|
if (formElements.pouvoirPointsUsage) {
|
||||||
|
rollData.pouvoirPointsUsage = Number(formElements.pouvoirPointsUsage.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaque dans le dos
|
||||||
|
if (formElements.attaqueDos !== undefined) {
|
||||||
|
rollData.attaqueDos = formElements.attaqueDos.checked
|
||||||
|
}
|
||||||
|
|
||||||
|
// Seconde arme
|
||||||
|
if (formElements['bonus-attaque-seconde-arme']) {
|
||||||
|
rollData.secondeArme = String(formElements['bonus-attaque-seconde-arme'].value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaque ciblée
|
||||||
|
if (formElements['attaque-cible']) {
|
||||||
|
rollData.attaqueCible = String(formElements['attaque-cible'].value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaque à deux armes
|
||||||
|
if (formElements['bonus-attaque-deux-armes']) {
|
||||||
|
rollData.attaqueDeuxArmes = Number(formElements['bonus-attaque-deux-armes'].value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exécuter le jet de dés
|
||||||
|
* @param {Object} rollData - Data for the roll
|
||||||
|
* @param {String} dice - Type de dé (d8, d10, d12, tricherie, heritage)
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static _executeRoll(rollData, dice) {
|
||||||
|
if (dice === "heritage") {
|
||||||
|
rollData.useHeritage = true
|
||||||
|
} else if (dice === "tricherie") {
|
||||||
|
rollData.useTricherie = true
|
||||||
|
} else {
|
||||||
|
rollData.mainDice = dice
|
||||||
|
}
|
||||||
|
|
||||||
|
HeritiersUtility.rollHeritiers(rollData)
|
||||||
|
}
|
||||||
|
}
|
||||||
23
modules/applications/sheets/_module.mjs
Normal file
23
modules/applications/sheets/_module.mjs
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* Export all application sheets for Les Héritiers
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Actor Sheets
|
||||||
|
export { default as HeritiersPersonnageSheet } from './personnage-sheet.mjs';
|
||||||
|
export { default as HeritiersPnjSheet } from './pnj-sheet.mjs';
|
||||||
|
|
||||||
|
// Item Sheets
|
||||||
|
export { default as HeritiersAccessoireSheet } from './accessoire-sheet.mjs';
|
||||||
|
export { default as HeritiersArmeSheet } from './arme-sheet.mjs';
|
||||||
|
export { default as HeritiersAtoutFeeriqueSheet } from './atoutfeerique-sheet.mjs';
|
||||||
|
export { default as HeritiersAvantageSheet } from './avantage-sheet.mjs';
|
||||||
|
export { default as HeritiersCapaciteNaturelleSheet } from './capacitenaturelle-sheet.mjs';
|
||||||
|
export { default as HeritiersCompetenceSheet } from './competence-sheet.mjs';
|
||||||
|
export { default as HeritiersContactSheet } from './contact-sheet.mjs';
|
||||||
|
export { default as HeritiersDesavantageSheet } from './desavantage-sheet.mjs';
|
||||||
|
export { default as HeritiersEquipementSheet } from './equipement-sheet.mjs';
|
||||||
|
export { default as HeritiersFeeSheet } from './fee-sheet.mjs';
|
||||||
|
export { default as HeritiersPouvoirSheet } from './pouvoir-sheet.mjs';
|
||||||
|
export { default as HeritiersProfilSheet } from './profil-sheet.mjs';
|
||||||
|
export { default as HeritiersProtectionSheet } from './protection-sheet.mjs';
|
||||||
|
export { default as HeritiersSortSheet } from './sort-sheet.mjs';
|
||||||
19
modules/applications/sheets/accessoire-sheet.mjs
Normal file
19
modules/applications/sheets/accessoire-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersAccessoireSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.accessoire",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-accessoire-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/arme-sheet.mjs
Normal file
19
modules/applications/sheets/arme-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersArmeSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.arme",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-arme-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/atoutfeerique-sheet.mjs
Normal file
19
modules/applications/sheets/atoutfeerique-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersAtoutFeeriqueSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.atoutfeerique",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-atoutfeerique-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/avantage-sheet.mjs
Normal file
19
modules/applications/sheets/avantage-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersAvantageSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.avantage",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-avantage-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
618
modules/applications/sheets/base-actor-sheet.mjs
Normal file
618
modules/applications/sheets/base-actor-sheet.mjs
Normal file
@@ -0,0 +1,618 @@
|
|||||||
|
const { HandlebarsApplicationMixin } = foundry.applications.api
|
||||||
|
|
||||||
|
import { HeritiersUtility } from "../../heritiers-utility.js"
|
||||||
|
|
||||||
|
export default class HeritiersActorSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2) {
|
||||||
|
/**
|
||||||
|
* Different sheet modes.
|
||||||
|
* @enum {number}
|
||||||
|
*/
|
||||||
|
static SHEET_MODES = { EDIT: 0, PLAY: 1 }
|
||||||
|
|
||||||
|
constructor(options = {}) {
|
||||||
|
super(options)
|
||||||
|
this.#dragDrop = this.#createDragDropHandlers()
|
||||||
|
this._sheetMode = this.constructor.SHEET_MODES.PLAY
|
||||||
|
}
|
||||||
|
|
||||||
|
#dragDrop
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
classes: ["fvtt-les-heritiers", "sheet", "actor"],
|
||||||
|
position: {
|
||||||
|
width: 780,
|
||||||
|
height: 840,
|
||||||
|
},
|
||||||
|
window: {
|
||||||
|
resizable: true,
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
submitOnChange: true,
|
||||||
|
closeOnSubmit: false,
|
||||||
|
},
|
||||||
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: "form" }],
|
||||||
|
actions: {
|
||||||
|
editImage: HeritiersActorSheet.#onEditImage,
|
||||||
|
toggleSheet: HeritiersActorSheet.#onToggleSheet,
|
||||||
|
editItem: HeritiersActorSheet.#onEditItem,
|
||||||
|
deleteItem: HeritiersActorSheet.#onDeleteItem,
|
||||||
|
createItem: HeritiersActorSheet.#onCreateItem,
|
||||||
|
equipItem: HeritiersActorSheet.#onEquipItem,
|
||||||
|
modifyQuantity: HeritiersActorSheet.#onModifyQuantity,
|
||||||
|
rollInitiative: HeritiersActorSheet.#onRollInitiative,
|
||||||
|
rollCarac: HeritiersActorSheet.#onRollCarac,
|
||||||
|
rollRang: HeritiersActorSheet.#onRollRang,
|
||||||
|
rollRootCompetence: HeritiersActorSheet.#onRollRootCompetence,
|
||||||
|
rollCompetence: HeritiersActorSheet.#onRollCompetence,
|
||||||
|
rollSort: HeritiersActorSheet.#onRollSort,
|
||||||
|
rollAttaqueArme: HeritiersActorSheet.#onRollAttaqueArme,
|
||||||
|
rollAttaqueBrutaleArme: HeritiersActorSheet.#onRollAttaqueBrutaleArme,
|
||||||
|
rollAttaqueChargeArme: HeritiersActorSheet.#onRollAttaqueChargeArme,
|
||||||
|
rollAssomerArme: HeritiersActorSheet.#onRollAssomerArme,
|
||||||
|
rollPouvoir: HeritiersActorSheet.#onRollPouvoir,
|
||||||
|
toggleMasque: HeritiersActorSheet.#onToggleMasque,
|
||||||
|
dialogRecupUsage: HeritiersActorSheet.#onDialogRecupUsage,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the sheet currently in 'Play' mode?
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
get isPlayMode() {
|
||||||
|
if (this._sheetMode === undefined) this._sheetMode = this.constructor.SHEET_MODES.PLAY
|
||||||
|
return this._sheetMode === this.constructor.SHEET_MODES.PLAY
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the sheet currently in 'Edit' mode?
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
get isEditMode() {
|
||||||
|
if (this._sheetMode === undefined) this._sheetMode = this.constructor.SHEET_MODES.PLAY
|
||||||
|
return this._sheetMode === this.constructor.SHEET_MODES.EDIT
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tab groups state
|
||||||
|
* @type {object}
|
||||||
|
*/
|
||||||
|
tabGroups = { primary: "stats" }
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
async _prepareContext() {
|
||||||
|
const actor = this.document
|
||||||
|
|
||||||
|
const context = {
|
||||||
|
actor: actor,
|
||||||
|
system: actor.system,
|
||||||
|
source: actor.toObject(),
|
||||||
|
fields: actor.schema.fields,
|
||||||
|
systemFields: actor.system.schema.fields,
|
||||||
|
isEditable: this.isEditable,
|
||||||
|
isEditMode: this.isEditMode,
|
||||||
|
isPlayMode: this.isPlayMode,
|
||||||
|
isGM: game.user.isGM,
|
||||||
|
config: CONFIG.HERITIERS,
|
||||||
|
enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.description || "", { async: true }),
|
||||||
|
enrichedHabitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.habitat || "", { async: true }),
|
||||||
|
enrichedRevesetranges: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.revesetranges || "", { async: true }),
|
||||||
|
enrichedSecretsdecouverts: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.secretsdecouverts || "", { async: true }),
|
||||||
|
enrichedQuestions: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.questions || "", { async: true }),
|
||||||
|
enrichedPlayernotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.playernotes || "", { async: true }),
|
||||||
|
}
|
||||||
|
|
||||||
|
return context
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
_onRender(context, options) {
|
||||||
|
super._onRender(context, options)
|
||||||
|
|
||||||
|
// Activate drag & drop handlers
|
||||||
|
this.#dragDrop.forEach(d => d.bind(this.element))
|
||||||
|
|
||||||
|
// Manual tab navigation
|
||||||
|
const html = this.element
|
||||||
|
const tabLinks = html.querySelectorAll('.sheet-tabs a.item[data-tab]')
|
||||||
|
const tabContents = html.querySelectorAll('.sheet-body .tab[data-group="primary"]')
|
||||||
|
|
||||||
|
// Hide all tabs initially
|
||||||
|
tabContents.forEach(tab => {
|
||||||
|
tab.classList.remove('active')
|
||||||
|
tab.style.display = 'none'
|
||||||
|
})
|
||||||
|
|
||||||
|
// Show active tab
|
||||||
|
const activeTab = this.tabGroups.primary
|
||||||
|
const activeTabContent = html.querySelector(`.tab[data-group="primary"][data-tab="${activeTab}"]`)
|
||||||
|
if (activeTabContent) {
|
||||||
|
activeTabContent.classList.add('active')
|
||||||
|
activeTabContent.style.display = 'block'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Activate the corresponding nav link
|
||||||
|
tabLinks.forEach(link => {
|
||||||
|
if (link.dataset.tab === activeTab) {
|
||||||
|
link.classList.add('active')
|
||||||
|
} else {
|
||||||
|
link.classList.remove('active')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Tab click handler
|
||||||
|
tabLinks.forEach(link => {
|
||||||
|
link.addEventListener('click', (event) => {
|
||||||
|
event.preventDefault()
|
||||||
|
const tab = link.dataset.tab
|
||||||
|
|
||||||
|
// Update state
|
||||||
|
this.tabGroups.primary = tab
|
||||||
|
|
||||||
|
// Hide all tabs
|
||||||
|
tabContents.forEach(t => {
|
||||||
|
t.classList.remove('active')
|
||||||
|
t.style.display = 'none'
|
||||||
|
})
|
||||||
|
|
||||||
|
// Show selected tab
|
||||||
|
const selectedTab = html.querySelector(`.tab[data-group="primary"][data-tab="${tab}"]`)
|
||||||
|
if (selectedTab) {
|
||||||
|
selectedTab.classList.add('active')
|
||||||
|
selectedTab.style.display = 'block'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update nav links
|
||||||
|
tabLinks.forEach(l => {
|
||||||
|
if (l.dataset.tab === tab) {
|
||||||
|
l.classList.add('active')
|
||||||
|
} else {
|
||||||
|
l.classList.remove('active')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// Inline item editing
|
||||||
|
html.querySelectorAll('.edit-item-data').forEach(input => {
|
||||||
|
input.addEventListener('change', (event) => {
|
||||||
|
const li = event.target.closest('.item')
|
||||||
|
const itemId = li?.dataset.itemId
|
||||||
|
const itemType = li?.dataset.itemType
|
||||||
|
const itemField = event.target.dataset.itemField
|
||||||
|
const dataType = event.target.dataset.dtype
|
||||||
|
const value = event.target.value
|
||||||
|
if (itemId && itemType && itemField) {
|
||||||
|
this.actor.editItemField(itemId, itemType, itemField, dataType, value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// #region Drag & Drop
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create drag-and-drop workflow handlers for this Application
|
||||||
|
* @returns {DragDrop[]} An array of DragDrop handlers
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
#createDragDropHandlers() {
|
||||||
|
return this.options.dragDrop.map((d) => {
|
||||||
|
d.permissions = {
|
||||||
|
dragstart: this._canDragStart.bind(this),
|
||||||
|
drop: this._canDragDrop.bind(this),
|
||||||
|
}
|
||||||
|
d.callbacks = {
|
||||||
|
dragstart: this._onDragStart.bind(this),
|
||||||
|
drop: this._onDrop.bind(this),
|
||||||
|
}
|
||||||
|
return new foundry.applications.ux.DragDrop(d)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define whether a user is able to begin a dragstart workflow for a given drag selector
|
||||||
|
* @param {string} selector The candidate HTML selector for dragging
|
||||||
|
* @returns {boolean} Can the current user drag this selector?
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
_canDragStart(selector) {
|
||||||
|
return this.isEditable
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define whether a user is able to conclude a drag-and-drop workflow for a given drop selector
|
||||||
|
* @param {string} selector The candidate HTML selector for the drop target
|
||||||
|
* @returns {boolean} Can the current user drop on this selector?
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
_canDragDrop(selector) {
|
||||||
|
return this.isEditable
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback actions which occur at the beginning of a drag start workflow.
|
||||||
|
* @param {DragEvent} event The originating DragEvent
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
_onDragStart(event) {
|
||||||
|
const li = event.currentTarget.closest(".item")
|
||||||
|
if (!li?.dataset.itemId) return
|
||||||
|
const item = this.actor.items.get(li.dataset.itemId)
|
||||||
|
if (!item) return
|
||||||
|
|
||||||
|
const dragData = item.toDragData()
|
||||||
|
event.dataTransfer.setData("text/plain", JSON.stringify(dragData))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback actions which occur when a dragged element is dropped on a target.
|
||||||
|
* @param {DragEvent} event The originating DragEvent
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
async _onDrop(event) {
|
||||||
|
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event)
|
||||||
|
const actor = this.actor
|
||||||
|
|
||||||
|
// Handle different data types
|
||||||
|
switch (data.type) {
|
||||||
|
case "Item":
|
||||||
|
return this._onDropItem(event, data)
|
||||||
|
case "Actor":
|
||||||
|
return this._onDropActor(event, data)
|
||||||
|
case "ActiveEffect":
|
||||||
|
return this._onDropActiveEffect(event, data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle dropping an Item on the actor sheet
|
||||||
|
* @param {DragEvent} event
|
||||||
|
* @param {object} data
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
async _onDropItem(event, data) {
|
||||||
|
if (!this.actor.isOwner) return false
|
||||||
|
|
||||||
|
let item = await fromUuid(data.uuid)
|
||||||
|
if (item.pack) {
|
||||||
|
item = await HeritiersUtility.searchItem(item)
|
||||||
|
}
|
||||||
|
|
||||||
|
const itemData = item.toObject ? item.toObject() : item
|
||||||
|
return this.actor.createEmbeddedDocuments("Item", [itemData])
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle dropping an Actor on the sheet
|
||||||
|
* @param {DragEvent} event
|
||||||
|
* @param {object} data
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
async _onDropActor(event, data) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle dropping an ActiveEffect on the sheet
|
||||||
|
* @param {DragEvent} event
|
||||||
|
* @param {object} data
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
async _onDropActiveEffect(event, data) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
// #region Action Handlers
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle between edit and play mode
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static #onToggleSheet(event, target) {
|
||||||
|
const wasEditMode = this.isEditMode
|
||||||
|
this._sheetMode = wasEditMode ? this.constructor.SHEET_MODES.PLAY : this.constructor.SHEET_MODES.EDIT
|
||||||
|
this.render({ force: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Edit the actor image
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onEditImage(event, target) {
|
||||||
|
const fp = new FilePicker({
|
||||||
|
type: "image",
|
||||||
|
current: this.actor.img,
|
||||||
|
callback: (path) => {
|
||||||
|
this.actor.update({ img: path })
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return fp.browse()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Edit an item
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onEditItem(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const itemId = li?.dataset.itemId
|
||||||
|
if (!itemId) return
|
||||||
|
const item = this.actor.items.get(itemId)
|
||||||
|
if (item) item.sheet.render(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete an item
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onDeleteItem(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
await HeritiersUtility.confirmDelete(this, li)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new item
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onCreateItem(event, target) {
|
||||||
|
const itemType = target.dataset.type
|
||||||
|
|
||||||
|
// Cas spécial pour les sorts avec une compétence spécifique
|
||||||
|
if (itemType === "sort" && target.dataset.sortCompetence) {
|
||||||
|
const sortCompetence = target.dataset.sortCompetence
|
||||||
|
await this.actor.createEmbeddedDocuments('Item', [{
|
||||||
|
name: `Nouveau ${itemType} de ${sortCompetence}`,
|
||||||
|
type: itemType,
|
||||||
|
system: { competence: sortCompetence }
|
||||||
|
}], { renderSheet: true })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.actor.createEmbeddedDocuments("Item", [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Equip/unequip an item
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onEquipItem(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const itemId = li?.dataset.itemId
|
||||||
|
if (itemId) {
|
||||||
|
await this.actor.equipItem(itemId)
|
||||||
|
this.render()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modify item quantity
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onModifyQuantity(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const itemId = li?.dataset.itemId
|
||||||
|
const value = Number(target.dataset.quantiteValue)
|
||||||
|
if (itemId) {
|
||||||
|
await this.actor.incDecQuantity(itemId, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll initiative
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollInitiative(event, target) {
|
||||||
|
await this.actor.rollInitiative()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll caractéristique
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollCarac(event, target) {
|
||||||
|
const key = target.dataset.key
|
||||||
|
if (key) {
|
||||||
|
await this.actor.rollCarac(key, false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll rang
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollRang(event, target) {
|
||||||
|
const key = target.dataset.rangKey
|
||||||
|
if (key) {
|
||||||
|
await this.actor.rollRang(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll root competence
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollRootCompetence(event, target) {
|
||||||
|
const compKey = target.dataset.attrKey
|
||||||
|
if (compKey) {
|
||||||
|
await this.actor.rollRootCompetence(compKey)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll competence
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollCompetence(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const compId = li?.dataset.itemId
|
||||||
|
if (compId) {
|
||||||
|
await this.actor.rollCompetence(compId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll sort
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollSort(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const sortId = li?.dataset.itemId
|
||||||
|
if (sortId) {
|
||||||
|
await this.actor.rollSort(sortId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll attaque arme
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollAttaqueArme(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const armeId = li?.dataset.itemId
|
||||||
|
if (armeId) {
|
||||||
|
await this.actor.rollAttaqueArme(armeId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll attaque brutale arme
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollAttaqueBrutaleArme(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const armeId = li?.dataset.itemId
|
||||||
|
if (armeId) {
|
||||||
|
await this.actor.rollAttaqueBrutaleArme(armeId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll attaque charge arme
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollAttaqueChargeArme(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const armeId = li?.dataset.itemId
|
||||||
|
if (armeId) {
|
||||||
|
await this.actor.rollAttaqueChargeArme(armeId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll assomer arme
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollAssomerArme(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const armeId = li?.dataset.itemId
|
||||||
|
if (armeId) {
|
||||||
|
await this.actor.rollAssomerArme(armeId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Roll pouvoir
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onRollPouvoir(event, target) {
|
||||||
|
const li = target.closest(".item")
|
||||||
|
const pouvoirId = li?.dataset.itemId
|
||||||
|
if (pouvoirId) {
|
||||||
|
await this.actor.rollPouvoir(pouvoirId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle masque
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onToggleMasque(event, target) {
|
||||||
|
await this.actor.toggleMasqueStatut()
|
||||||
|
this.render()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dialog récupération usage
|
||||||
|
* @param {Event} event
|
||||||
|
* @param {HTMLElement} target
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onDialogRecupUsage(event, target) {
|
||||||
|
new Dialog({
|
||||||
|
title: "Récupération des Points d'Usage",
|
||||||
|
content: "<p>Combien de Points d'Usage souhaitez-vous récupérer ?</p>",
|
||||||
|
buttons: {
|
||||||
|
one: {
|
||||||
|
icon: '<i class="fas fa-check"></i>',
|
||||||
|
label: "1 Point",
|
||||||
|
callback: () => {
|
||||||
|
this.actor.recupUsage(1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
two: {
|
||||||
|
icon: '<i class="fas fa-check"></i>',
|
||||||
|
label: "2 Points",
|
||||||
|
callback: () => {
|
||||||
|
this.actor.recupUsage(2)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
three: {
|
||||||
|
icon: '<i class="fas fa-check"></i>',
|
||||||
|
label: "3 Points",
|
||||||
|
callback: () => {
|
||||||
|
this.actor.recupUsage(3)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
icon: '<i class="fas fa-times"></i>',
|
||||||
|
label: "Annuler"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
default: "one"
|
||||||
|
}).render(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
// #endregion
|
||||||
|
}
|
||||||
212
modules/applications/sheets/base-item-sheet.mjs
Normal file
212
modules/applications/sheets/base-item-sheet.mjs
Normal file
@@ -0,0 +1,212 @@
|
|||||||
|
const { HandlebarsApplicationMixin } = foundry.applications.api
|
||||||
|
|
||||||
|
export default class HeritiersItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) {
|
||||||
|
constructor(options = {}) {
|
||||||
|
super(options)
|
||||||
|
this.#dragDrop = this.#createDragDropHandlers()
|
||||||
|
}
|
||||||
|
|
||||||
|
#dragDrop
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
classes: ["fvtt-les-heritiers", "item"],
|
||||||
|
position: {
|
||||||
|
width: 620,
|
||||||
|
height: 600,
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
submitOnChange: true,
|
||||||
|
},
|
||||||
|
window: {
|
||||||
|
resizable: true,
|
||||||
|
},
|
||||||
|
tabs: [
|
||||||
|
{
|
||||||
|
navSelector: 'nav[data-group="primary"]',
|
||||||
|
contentSelector: "section.sheet-body",
|
||||||
|
initial: "description",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
dragDrop: [{ dragSelector: "[data-drag]", dropSelector: null }],
|
||||||
|
actions: {
|
||||||
|
editImage: HeritiersItemSheet.#onEditImage,
|
||||||
|
postItem: HeritiersItemSheet.#onPostItem,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tab groups state
|
||||||
|
* @type {object}
|
||||||
|
*/
|
||||||
|
tabGroups = { primary: "description" }
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
async _prepareContext() {
|
||||||
|
const context = {
|
||||||
|
fields: this.document.schema.fields,
|
||||||
|
systemFields: this.document.system.schema.fields,
|
||||||
|
item: this.document,
|
||||||
|
system: this.document.system,
|
||||||
|
source: this.document.toObject(),
|
||||||
|
enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }),
|
||||||
|
isEditMode: true,
|
||||||
|
isEditable: this.isEditable,
|
||||||
|
isGM: game.user.isGM,
|
||||||
|
config: CONFIG.HERITIERS,
|
||||||
|
}
|
||||||
|
return context
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
_onRender(context, options) {
|
||||||
|
super._onRender(context, options)
|
||||||
|
this.#dragDrop.forEach((d) => d.bind(this.element))
|
||||||
|
|
||||||
|
// Activate tab navigation manually
|
||||||
|
const nav = this.element.querySelector('nav.tabs[data-group]')
|
||||||
|
if (nav) {
|
||||||
|
const group = nav.dataset.group
|
||||||
|
// Activate the current tab
|
||||||
|
const activeTab = this.tabGroups[group] || "description"
|
||||||
|
nav.querySelectorAll('[data-tab]').forEach(link => {
|
||||||
|
const tab = link.dataset.tab
|
||||||
|
link.classList.toggle('active', tab === activeTab)
|
||||||
|
link.addEventListener('click', (event) => {
|
||||||
|
event.preventDefault()
|
||||||
|
this.tabGroups[group] = tab
|
||||||
|
this.render()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// Show/hide tab content
|
||||||
|
this.element.querySelectorAll('[data-group="' + group + '"][data-tab]').forEach(content => {
|
||||||
|
content.classList.toggle('active', content.dataset.tab === activeTab)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// #region Drag-and-Drop Workflow
|
||||||
|
/**
|
||||||
|
* Create drag-and-drop workflow handlers for this Application
|
||||||
|
* @returns {DragDrop[]} An array of DragDrop handlers
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
#createDragDropHandlers() {
|
||||||
|
return this.options.dragDrop.map((d) => {
|
||||||
|
d.permissions = {
|
||||||
|
dragstart: this._canDragStart.bind(this),
|
||||||
|
drop: this._canDragDrop.bind(this),
|
||||||
|
}
|
||||||
|
d.callbacks = {
|
||||||
|
dragstart: this._onDragStart.bind(this),
|
||||||
|
dragover: this._onDragOver.bind(this),
|
||||||
|
drop: this._onDrop.bind(this),
|
||||||
|
}
|
||||||
|
return new foundry.applications.ux.DragDrop(d)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can the User start a drag workflow for a given drag selector?
|
||||||
|
* @param {string} selector The candidate HTML selector for the drag event
|
||||||
|
* @returns {boolean} Can the current user drag this selector?
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
_canDragStart(selector) {
|
||||||
|
return this.isEditable
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can the User drop an entry at a given drop selector?
|
||||||
|
* @param {string} selector The candidate HTML selector for the drop event
|
||||||
|
* @returns {boolean} Can the current user drop on this selector?
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
_canDragDrop(selector) {
|
||||||
|
return this.isEditable
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback for dragstart events.
|
||||||
|
* @param {DragEvent} event The drag start event
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
_onDragStart(event) {
|
||||||
|
const target = event.currentTarget
|
||||||
|
const dragData = { type: "Item", uuid: this.document.uuid }
|
||||||
|
event.dataTransfer.setData("text/plain", JSON.stringify(dragData))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback for dragover events.
|
||||||
|
* @param {DragEvent} event The drag over event
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
_onDragOver(event) {
|
||||||
|
// Default behavior is fine
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback for drop events.
|
||||||
|
* @param {DragEvent} event The drop event
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
async _onDrop(event) {
|
||||||
|
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event)
|
||||||
|
const item = await fromUuid(data.uuid)
|
||||||
|
if (!item) return
|
||||||
|
|
||||||
|
console.log("Item dropped:", item)
|
||||||
|
}
|
||||||
|
// #endregion
|
||||||
|
|
||||||
|
// #region Action Handlers
|
||||||
|
/**
|
||||||
|
* Edit the item image
|
||||||
|
* @param {Event} event The triggering event
|
||||||
|
* @param {HTMLElement} target The target element
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onEditImage(event, target) {
|
||||||
|
const fp = new FilePicker({
|
||||||
|
type: "image",
|
||||||
|
current: this.document.img,
|
||||||
|
callback: (path) => {
|
||||||
|
this.document.update({ img: path })
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return fp.browse()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Post item to chat
|
||||||
|
* @param {Event} event The triggering event
|
||||||
|
* @param {HTMLElement} target The target element
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
static async #onPostItem(event, target) {
|
||||||
|
let chatData = foundry.utils.duplicate(this.document)
|
||||||
|
if (this.document.actor) {
|
||||||
|
chatData.actor = { id: this.document.actor.id }
|
||||||
|
}
|
||||||
|
// Don't post any image for the item if the default image is used
|
||||||
|
if (chatData.img.includes("/blank.png") || chatData.img.includes("/mystery-man")) {
|
||||||
|
chatData.img = null
|
||||||
|
}
|
||||||
|
// JSON object for easy creation
|
||||||
|
chatData.jsondata = JSON.stringify({
|
||||||
|
compendium: "postedItem",
|
||||||
|
payload: chatData,
|
||||||
|
})
|
||||||
|
|
||||||
|
const html = await renderTemplate('systems/fvtt-les-heritiers/templates/post-item.html', chatData)
|
||||||
|
const chatOptions = {
|
||||||
|
user: game.user.id,
|
||||||
|
content: html,
|
||||||
|
}
|
||||||
|
ChatMessage.create(chatOptions)
|
||||||
|
}
|
||||||
|
|
||||||
|
// #endregion
|
||||||
|
}
|
||||||
19
modules/applications/sheets/capacitenaturelle-sheet.mjs
Normal file
19
modules/applications/sheets/capacitenaturelle-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersCapaciteNaturelleSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.capacitenaturelle",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-capacitenaturelle-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/competence-sheet.mjs
Normal file
19
modules/applications/sheets/competence-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersCompetenceSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.competence",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-competence-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/contact-sheet.mjs
Normal file
19
modules/applications/sheets/contact-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersContactSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.contact",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-contact-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/desavantage-sheet.mjs
Normal file
19
modules/applications/sheets/desavantage-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersDesavantageSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.desavantage",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-desavantage-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/equipement-sheet.mjs
Normal file
19
modules/applications/sheets/equipement-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersEquipementSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.equipement",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-equipement-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/fee-sheet.mjs
Normal file
19
modules/applications/sheets/fee-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersFeeSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.fee",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-fee-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
59
modules/applications/sheets/personnage-sheet.mjs
Normal file
59
modules/applications/sheets/personnage-sheet.mjs
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
import HeritiersActorSheet from "./base-actor-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersPersonnageSheet extends HeritiersActorSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
classes: [...super.DEFAULT_OPTIONS.classes],
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Actor.personnage",
|
||||||
|
},
|
||||||
|
actions: {
|
||||||
|
...super.DEFAULT_OPTIONS.actions,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/actor-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
tabGroups = { primary: "stats" }
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
async _prepareContext() {
|
||||||
|
const context = await super._prepareContext()
|
||||||
|
const actor = this.document
|
||||||
|
|
||||||
|
// Add personnage-specific data
|
||||||
|
context.skills = actor.getSkills()
|
||||||
|
context.utileSkillsMental = actor.organizeUtileSkills("mental")
|
||||||
|
context.utileSkillsPhysical = actor.organizeUtileSkills("physical")
|
||||||
|
context.competencesMagie = game.system.lesheritiers.config.competencesMagie || []
|
||||||
|
context.futileSkills = actor.organizeFutileSkills()
|
||||||
|
context.contacts = actor.organizeContacts()
|
||||||
|
context.armes = foundry.utils.duplicate(actor.getWeapons())
|
||||||
|
context.monnaies = foundry.utils.duplicate(actor.getMonnaies())
|
||||||
|
context.pouvoirs = foundry.utils.duplicate(actor.getPouvoirs())
|
||||||
|
context.fee = foundry.utils.duplicate(actor.getFee() || {})
|
||||||
|
context.protections = foundry.utils.duplicate(actor.getArmors())
|
||||||
|
context.combat = actor.getCombatValues()
|
||||||
|
context.equipements = foundry.utils.duplicate(actor.getEquipments())
|
||||||
|
context.avantages = foundry.utils.duplicate(actor.getAvantages())
|
||||||
|
context.atouts = foundry.utils.duplicate(actor.getAtouts())
|
||||||
|
context.capacites = foundry.utils.duplicate(actor.getCapacites())
|
||||||
|
context.desavantages = foundry.utils.duplicate(actor.getDesavantages())
|
||||||
|
context.profils = foundry.utils.duplicate(actor.getProfils())
|
||||||
|
context.pvMalus = actor.getPvMalus()
|
||||||
|
context.heritage = game.settings.get("fvtt-les-heritiers", "heritiers-heritage")
|
||||||
|
context.initiative = actor.getFlag("world", "last-initiative") || -1
|
||||||
|
context.magieList = actor.prepareMagie()
|
||||||
|
context.isPNJ = false
|
||||||
|
|
||||||
|
return context
|
||||||
|
}
|
||||||
|
}
|
||||||
59
modules/applications/sheets/pnj-sheet.mjs
Normal file
59
modules/applications/sheets/pnj-sheet.mjs
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
import HeritiersActorSheet from "./base-actor-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersPnjSheet extends HeritiersActorSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
classes: [...super.DEFAULT_OPTIONS.classes],
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Actor.pnj",
|
||||||
|
},
|
||||||
|
actions: {
|
||||||
|
...super.DEFAULT_OPTIONS.actions,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/actor-pnj-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
tabGroups = { primary: "stats" }
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
async _prepareContext() {
|
||||||
|
const context = await super._prepareContext()
|
||||||
|
const actor = this.document
|
||||||
|
|
||||||
|
// Add PNJ-specific data
|
||||||
|
context.skills = actor.getSkills()
|
||||||
|
context.utileSkillsMental = actor.organizeUtileSkills("mental")
|
||||||
|
context.utileSkillsPhysical = actor.organizeUtileSkills("physical")
|
||||||
|
context.competencesMagie = game.system.lesheritiers.config.competencesMagie || []
|
||||||
|
context.futileSkills = actor.organizeFutileSkills()
|
||||||
|
context.contacts = actor.organizeContacts()
|
||||||
|
context.armes = foundry.utils.duplicate(actor.getWeapons())
|
||||||
|
context.monnaies = foundry.utils.duplicate(actor.getMonnaies())
|
||||||
|
context.pouvoirs = foundry.utils.duplicate(actor.getPouvoirs())
|
||||||
|
context.fee = foundry.utils.duplicate(actor.getFee() || {})
|
||||||
|
context.protections = foundry.utils.duplicate(actor.getArmors())
|
||||||
|
context.combat = actor.getCombatValues()
|
||||||
|
context.equipements = foundry.utils.duplicate(actor.getEquipments())
|
||||||
|
context.avantages = foundry.utils.duplicate(actor.getAvantages())
|
||||||
|
context.atouts = foundry.utils.duplicate(actor.getAtouts())
|
||||||
|
context.capacites = foundry.utils.duplicate(actor.getCapacites())
|
||||||
|
context.desavantages = foundry.utils.duplicate(actor.getDesavantages())
|
||||||
|
context.profils = foundry.utils.duplicate(actor.getProfils())
|
||||||
|
context.pvMalus = actor.getPvMalus()
|
||||||
|
context.heritage = game.settings.get("fvtt-les-heritiers", "heritiers-heritage")
|
||||||
|
context.initiative = actor.getFlag("world", "last-initiative") || -1
|
||||||
|
context.magieList = actor.prepareMagie()
|
||||||
|
context.isPNJ = true
|
||||||
|
|
||||||
|
return context
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/pouvoir-sheet.mjs
Normal file
19
modules/applications/sheets/pouvoir-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersPouvoirSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.pouvoir",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-pouvoir-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/profil-sheet.mjs
Normal file
19
modules/applications/sheets/profil-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersProfilSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.profil",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-profil-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/protection-sheet.mjs
Normal file
19
modules/applications/sheets/protection-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersProtectionSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.protection",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-protection-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/applications/sheets/sort-sheet.mjs
Normal file
19
modules/applications/sheets/sort-sheet.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import HeritiersItemSheet from "./base-item-sheet.mjs"
|
||||||
|
|
||||||
|
export default class HeritiersSortSheet extends HeritiersItemSheet {
|
||||||
|
/** @override */
|
||||||
|
static DEFAULT_OPTIONS = {
|
||||||
|
...super.DEFAULT_OPTIONS,
|
||||||
|
window: {
|
||||||
|
...super.DEFAULT_OPTIONS.window,
|
||||||
|
title: "SHEETS.Item.sort",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static PARTS = {
|
||||||
|
sheet: {
|
||||||
|
template: "systems/fvtt-les-heritiers/templates/item-sort-sheet.html",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
import { HeritiersUtility } from "./heritiers-utility.js";
|
import { HeritiersUtility } from "./heritiers-utility.js";
|
||||||
import { HeritiersRollDialog } from "./heritiers-roll-dialog.js";
|
import { HeritiersRollDialog } from "./applications/heritiers-roll-dialog.mjs";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const __degatsBonus = [-2, -2, -1, -1, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 8, 8, 9, 9, 10, 10]
|
const __degatsBonus = [-2, -2, -1, -1, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 8, 8, 9, 9, 10, 10]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
import { HeritiersUtility } from "./heritiers-utility.js";
|
import { HeritiersUtility } from "./heritiers-utility.js";
|
||||||
import { HeritiersRollDialog } from "./heritiers-roll-dialog.js";
|
import { HeritiersRollDialog } from "./applications/heritiers-roll-dialog.mjs";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class HeritiersCommands {
|
export class HeritiersCommands {
|
||||||
|
|||||||
@@ -9,14 +9,17 @@
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Import Modules
|
// Import Modules
|
||||||
import { HeritiersActor } from "./heritiers-actor.js";
|
import { HeritiersActor } from "./heritiers-actor.js";
|
||||||
import { HeritiersItemSheet } from "./heritiers-item-sheet.js";
|
import { HeritiersItem } from "./heritiers-item.js";
|
||||||
import { HeritiersActorSheet } from "./heritiers-actor-sheet.js";
|
|
||||||
import { HeritiersActorPNJSheet } from "./heritiers-actor-pnj-sheet.js";
|
|
||||||
import { HeritiersUtility } from "./heritiers-utility.js";
|
import { HeritiersUtility } from "./heritiers-utility.js";
|
||||||
import { HeritiersCombat } from "./heritiers-combat.js";
|
import { HeritiersCombat } from "./heritiers-combat.js";
|
||||||
import { HeritiersItem } from "./heritiers-item.js";
|
|
||||||
import { HERITIERS_CONFIG } from "./heritiers-config.js";
|
import { HERITIERS_CONFIG } from "./heritiers-config.js";
|
||||||
|
|
||||||
|
// Import DataModels
|
||||||
|
import * as models from "./models/index.mjs";
|
||||||
|
|
||||||
|
// Import AppV2 Sheets
|
||||||
|
import * as sheets from "./applications/sheets/_module.mjs";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/* Foundry VTT Initialization */
|
/* Foundry VTT Initialization */
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -45,22 +48,62 @@ Hooks.once("init", async function () {
|
|||||||
// Define custom Entity classes
|
// Define custom Entity classes
|
||||||
CONFIG.Combat.documentClass = HeritiersCombat
|
CONFIG.Combat.documentClass = HeritiersCombat
|
||||||
CONFIG.Actor.documentClass = HeritiersActor
|
CONFIG.Actor.documentClass = HeritiersActor
|
||||||
|
CONFIG.Actor.dataModels = {
|
||||||
|
personnage: models.PersonnageDataModel,
|
||||||
|
pnj: models.PnjDataModel
|
||||||
|
}
|
||||||
|
|
||||||
CONFIG.Item.documentClass = HeritiersItem
|
CONFIG.Item.documentClass = HeritiersItem
|
||||||
|
CONFIG.Item.dataModels = {
|
||||||
|
accessoire: models.AccessoireDataModel,
|
||||||
|
arme: models.ArmeDataModel,
|
||||||
|
atoutfeerique: models.AtoutFeeriqueDataModel,
|
||||||
|
avantage: models.AvantageDataModel,
|
||||||
|
capacitenaturelle: models.CapaciteNaturelleDataModel,
|
||||||
|
competence: models.CompetenceDataModel,
|
||||||
|
contact: models.ContactDataModel,
|
||||||
|
desavantage: models.DesavantageDataModel,
|
||||||
|
equipement: models.EquipementDataModel,
|
||||||
|
fee: models.FeeDataModel,
|
||||||
|
pouvoir: models.PouvoirDataModel,
|
||||||
|
profil: models.ProfilDataModel,
|
||||||
|
protection: models.ProtectionDataModel,
|
||||||
|
sort: models.SortDataModel
|
||||||
|
}
|
||||||
|
|
||||||
// Create an object of bonus/malus from -6 to +6 signed
|
// Create an object of bonus/malus from -6 to +6 signed
|
||||||
HERITIERS_CONFIG.bonusMalus = Array.from({ length: 7 }, (v, k) => toString(k - 6))
|
HERITIERS_CONFIG.bonusMalus = Array.from({ length: 7 }, (v, k) => toString(k - 6))
|
||||||
|
CONFIG.HERITIERS = HERITIERS_CONFIG
|
||||||
|
|
||||||
game.system.lesheritiers = {
|
game.system.lesheritiers = {
|
||||||
HeritiersUtility,
|
HeritiersUtility,
|
||||||
config: HERITIERS_CONFIG
|
config: HERITIERS_CONFIG,
|
||||||
|
models,
|
||||||
|
sheets
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Register sheet application classes
|
// Register sheet application classes
|
||||||
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||||
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", sheets.HeritiersPersonnageSheet, { types: ["personnage"], makeDefault: true })
|
||||||
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", sheets.HeritiersPnjSheet, { types: ["pnj"], makeDefault: true })
|
||||||
|
|
||||||
|
// Register AppV2 Item Sheets
|
||||||
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
||||||
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersAccessoireSheet, { types: ["accessoire"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersArmeSheet, { types: ["arme"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersAtoutFeeriqueSheet, { types: ["atoutfeerique"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersAvantageSheet, { types: ["avantage"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersCapaciteNaturelleSheet, { types: ["capacitenaturelle"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersCompetenceSheet, { types: ["competence"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersContactSheet, { types: ["contact"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersDesavantageSheet, { types: ["desavantage"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersEquipementSheet, { types: ["equipement"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersFeeSheet, { types: ["fee"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersPouvoirSheet, { types: ["pouvoir"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersProfilSheet, { types: ["profil"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersProtectionSheet, { types: ["protection"], makeDefault: true })
|
||||||
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", sheets.HeritiersSortSheet, { types: ["sort"], makeDefault: true })
|
||||||
|
|
||||||
HeritiersUtility.init()
|
HeritiersUtility.init()
|
||||||
|
|
||||||
|
|||||||
16
modules/models/accessoire.mjs
Normal file
16
modules/models/accessoire.mjs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les accessoires
|
||||||
|
*/
|
||||||
|
export default class AccessoireDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prix: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
lieu: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
30
modules/models/arme.mjs
Normal file
30
modules/models/arme.mjs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les armes
|
||||||
|
*/
|
||||||
|
export default class ArmeDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prix: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
categorie: new fields.StringField({ initial: "" }),
|
||||||
|
armetype: new fields.StringField({ initial: "" }),
|
||||||
|
degats: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
precision: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
cadence: new fields.StringField({ initial: "" }),
|
||||||
|
enraiement: new fields.StringField({ initial: "" }),
|
||||||
|
magasin: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
charge: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
portee: new fields.StringField({ initial: "" }),
|
||||||
|
legalite: new fields.StringField({ initial: "" }),
|
||||||
|
dissimulation: new fields.StringField({ initial: "" }),
|
||||||
|
zone: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
temps: new fields.StringField({ initial: "" }),
|
||||||
|
allumage: new fields.StringField({ initial: "" }),
|
||||||
|
special: new fields.StringField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
11
modules/models/atoutfeerique.mjs
Normal file
11
modules/models/atoutfeerique.mjs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les atouts féériques
|
||||||
|
*/
|
||||||
|
export default class AtoutFeeriqueDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
11
modules/models/avantage.mjs
Normal file
11
modules/models/avantage.mjs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les avantages
|
||||||
|
*/
|
||||||
|
export default class AvantageDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
11
modules/models/base-item.mjs
Normal file
11
modules/models/base-item.mjs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* Base data model pour les items
|
||||||
|
*/
|
||||||
|
export default class BaseItemDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
21
modules/models/capacitenaturelle.mjs
Normal file
21
modules/models/capacitenaturelle.mjs
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les capacités naturelles
|
||||||
|
*/
|
||||||
|
export default class CapaciteNaturelleDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
pouvoirtype: new fields.StringField({ initial: "" }),
|
||||||
|
activation: new fields.StringField({ initial: "" }),
|
||||||
|
cibles: new fields.StringField({ initial: "" }),
|
||||||
|
effet: new fields.StringField({ initial: "" }),
|
||||||
|
duree: new fields.StringField({ initial: "" }),
|
||||||
|
portee: new fields.StringField({ initial: "" }),
|
||||||
|
resistance: new fields.StringField({ initial: "" }),
|
||||||
|
resistanceautre: new fields.StringField({ initial: "" }),
|
||||||
|
isvirulence: new fields.BooleanField({ initial: false }),
|
||||||
|
virulence: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
43
modules/models/competence.mjs
Normal file
43
modules/models/competence.mjs
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les compétences
|
||||||
|
*/
|
||||||
|
export default class CompetenceDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
categorie: new fields.StringField({ initial: "" }),
|
||||||
|
profil: new fields.StringField({ initial: "" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
nomniveau: new fields.SchemaField({
|
||||||
|
1: new fields.StringField({ initial: "" }),
|
||||||
|
2: new fields.StringField({ initial: "" }),
|
||||||
|
3: new fields.StringField({ initial: "" }),
|
||||||
|
4: new fields.StringField({ initial: "" })
|
||||||
|
}),
|
||||||
|
nomniveausouffle: new fields.SchemaField({
|
||||||
|
soufflecombat: new fields.SchemaField({
|
||||||
|
1: new fields.StringField({ initial: "" }),
|
||||||
|
2: new fields.StringField({ initial: "" }),
|
||||||
|
3: new fields.StringField({ initial: "" }),
|
||||||
|
4: new fields.StringField({ initial: "" })
|
||||||
|
}),
|
||||||
|
soufflemouvement: new fields.SchemaField({
|
||||||
|
1: new fields.StringField({ initial: "" }),
|
||||||
|
2: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
3: new fields.StringField({ initial: "" }),
|
||||||
|
4: new fields.StringField({ initial: "" })
|
||||||
|
}),
|
||||||
|
souffleesprit: new fields.SchemaField({
|
||||||
|
1: new fields.StringField({ initial: "" }),
|
||||||
|
2: new fields.StringField({ initial: "" }),
|
||||||
|
3: new fields.StringField({ initial: "" }),
|
||||||
|
4: new fields.StringField({ initial: "" })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
predilection: new fields.BooleanField({ initial: false }),
|
||||||
|
specialites: new fields.ArrayField(new fields.ObjectField(), { initial: [] }),
|
||||||
|
ismagie: new fields.BooleanField({ initial: false }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
12
modules/models/contact.mjs
Normal file
12
modules/models/contact.mjs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les contacts
|
||||||
|
*/
|
||||||
|
export default class ContactDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
contacttype: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
11
modules/models/desavantage.mjs
Normal file
11
modules/models/desavantage.mjs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les désavantages
|
||||||
|
*/
|
||||||
|
export default class DesavantageDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
15
modules/models/equipement.mjs
Normal file
15
modules/models/equipement.mjs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les équipements
|
||||||
|
*/
|
||||||
|
export default class EquipementDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prix: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/models/fee.mjs
Normal file
19
modules/models/fee.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les fées
|
||||||
|
*/
|
||||||
|
export default class FeeDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
feetype: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
avantages: new fields.StringField({ initial: "" }),
|
||||||
|
desavantages: new fields.StringField({ initial: "" }),
|
||||||
|
pouvoirsfeeriquesmasque: new fields.StringField({ initial: "" }),
|
||||||
|
pouvoirsfeeriquesdemasque: new fields.StringField({ initial: "" }),
|
||||||
|
atoutsfeeriques: new fields.StringField({ initial: "" }),
|
||||||
|
competences: new fields.StringField({ initial: "" }),
|
||||||
|
capacitenaturelles: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
24
modules/models/index.mjs
Normal file
24
modules/models/index.mjs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* Index des DataModels pour Les Héritiers
|
||||||
|
* Ce fichier centralise tous les exports des modèles de données
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Modèles d'acteurs
|
||||||
|
export { default as PersonnageDataModel } from './personnage.mjs';
|
||||||
|
export { default as PnjDataModel } from './pnj.mjs';
|
||||||
|
|
||||||
|
// Modèles d'items
|
||||||
|
export { default as AccessoireDataModel } from './accessoire.mjs';
|
||||||
|
export { default as ArmeDataModel } from './arme.mjs';
|
||||||
|
export { default as AtoutFeeriqueDataModel } from './atoutfeerique.mjs';
|
||||||
|
export { default as AvantageDataModel } from './avantage.mjs';
|
||||||
|
export { default as CapaciteNaturelleDataModel } from './capacitenaturelle.mjs';
|
||||||
|
export { default as CompetenceDataModel } from './competence.mjs';
|
||||||
|
export { default as ContactDataModel } from './contact.mjs';
|
||||||
|
export { default as DesavantageDataModel } from './desavantage.mjs';
|
||||||
|
export { default as EquipementDataModel } from './equipement.mjs';
|
||||||
|
export { default as FeeDataModel } from './fee.mjs';
|
||||||
|
export { default as PouvoirDataModel } from './pouvoir.mjs';
|
||||||
|
export { default as ProfilDataModel } from './profil.mjs';
|
||||||
|
export { default as ProtectionDataModel } from './protection.mjs';
|
||||||
|
export { default as SortDataModel } from './sort.mjs';
|
||||||
234
modules/models/personnage.mjs
Normal file
234
modules/models/personnage.mjs
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les personnages
|
||||||
|
*/
|
||||||
|
export default class PersonnageDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
// Template biodata
|
||||||
|
biodata: new fields.SchemaField({
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
activite: new fields.StringField({ initial: "" }),
|
||||||
|
nomhumain: new fields.StringField({ initial: "" }),
|
||||||
|
activites: new fields.StringField({ initial: "" }),
|
||||||
|
fortune: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
traitscaracteres: new fields.StringField({ initial: "" }),
|
||||||
|
tailledemasquee: new fields.StringField({ initial: "" }),
|
||||||
|
taillemasquee: new fields.StringField({ initial: "" }),
|
||||||
|
poidsmasquee: new fields.StringField({ initial: "" }),
|
||||||
|
poidsdemasquee: new fields.StringField({ initial: "" }),
|
||||||
|
apparencemasquee: new fields.StringField({ initial: "" }),
|
||||||
|
apparencedemasquee: new fields.StringField({ initial: "" }),
|
||||||
|
titrefamille: new fields.StringField({ initial: "" }),
|
||||||
|
langues: new fields.StringField({ initial: "" }),
|
||||||
|
factionfeerique: new fields.StringField({ initial: "" }),
|
||||||
|
typetaille: new fields.StringField({ initial: "" }),
|
||||||
|
age: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
poids: new fields.StringField({ initial: "" }),
|
||||||
|
taille: new fields.StringField({ initial: "" }),
|
||||||
|
cheveux: new fields.StringField({ initial: "" }),
|
||||||
|
sexe: new fields.StringField({ initial: "" }),
|
||||||
|
yeux: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
revesetranges: new fields.HTMLField({ initial: "" }),
|
||||||
|
secretsdecouverts: new fields.HTMLField({ initial: "" }),
|
||||||
|
questions: new fields.HTMLField({ initial: "" }),
|
||||||
|
habitat: new fields.HTMLField({ initial: "" }),
|
||||||
|
notes: new fields.HTMLField({ initial: "" }),
|
||||||
|
statut: new fields.StringField({ initial: "" }),
|
||||||
|
playernotes: new fields.HTMLField({ initial: "" }),
|
||||||
|
gmnotes: new fields.HTMLField({ initial: "" }),
|
||||||
|
magie: new fields.BooleanField({ initial: false })
|
||||||
|
}),
|
||||||
|
// Template core
|
||||||
|
subactors: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
||||||
|
caracteristiques: new fields.SchemaField({
|
||||||
|
agi: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Agilité" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "agilite" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "agi" }),
|
||||||
|
kind: new fields.StringField({ initial: "physical" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
con: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Constitution" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "constitution" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "con" }),
|
||||||
|
kind: new fields.StringField({ initial: "physical" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
for: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Force" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "force" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "for" }),
|
||||||
|
kind: new fields.StringField({ initial: "physical" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
prec: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Précision" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "precision" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "prec" }),
|
||||||
|
kind: new fields.StringField({ initial: "physical" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
esp: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Esprit" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "esprit" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "esp" }),
|
||||||
|
kind: new fields.StringField({ initial: "mental" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
per: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Perception" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "perception" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "per" }),
|
||||||
|
kind: new fields.StringField({ initial: "mental" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pres: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Prestance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "pres" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pres" }),
|
||||||
|
kind: new fields.StringField({ initial: "mental" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
san: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Sang-Froid" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "sangfroid" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "san" }),
|
||||||
|
kind: new fields.StringField({ initial: "mental" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
statutmasque: new fields.StringField({ initial: "masque" }),
|
||||||
|
rang: new fields.SchemaField({
|
||||||
|
tricherie: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Tricherie" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
feerie: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Féerie" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
masque: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Masque" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
heritage: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Héritage" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
scenarios: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
pv: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
mod: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
competences: new fields.SchemaField({
|
||||||
|
aventurier: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Aventurier" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
pp: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
combattant: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Combattant" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
pp: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
erudit: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Erudit" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
pp: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
gentleman: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Gentleman" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
pp: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
roublard: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Roublard" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
pp: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
savant: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Savant" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rang: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
pp: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
magie: new fields.SchemaField({
|
||||||
|
pointsame: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
max: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
experience: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
pourtricher: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
combat: new fields.SchemaField({
|
||||||
|
esquive: new fields.SchemaField({
|
||||||
|
masquee: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
demasquee: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
parade: new fields.SchemaField({
|
||||||
|
masquee: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
demasquee: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
resistancephysique: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
resistancepsychique: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
protection: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
effetssecondaires: new fields.StringField({ initial: "" }),
|
||||||
|
dissimulation: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
initiative: new fields.SchemaField({
|
||||||
|
masquee: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
demasquee: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
corpsacorps: new fields.SchemaField({
|
||||||
|
masquee: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
demasquee: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
tir: new fields.SchemaField({
|
||||||
|
masquee: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
demasquee: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
})
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
10
modules/models/pnj.mjs
Normal file
10
modules/models/pnj.mjs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les PNJ
|
||||||
|
* Utilise le même schéma que les personnages
|
||||||
|
*/
|
||||||
|
import PersonnageDataModel from './personnage.mjs';
|
||||||
|
|
||||||
|
export default class PnjDataModel extends PersonnageDataModel {
|
||||||
|
// Les PNJ utilisent exactement le même schéma que les personnages
|
||||||
|
// On hérite simplement de PersonnageDataModel
|
||||||
|
}
|
||||||
29
modules/models/pouvoir.mjs
Normal file
29
modules/models/pouvoir.mjs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les pouvoirs
|
||||||
|
*/
|
||||||
|
export default class PouvoirDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
pouvoirtype: new fields.StringField({ initial: "" }),
|
||||||
|
masquetype: new fields.StringField({ initial: "" }),
|
||||||
|
niveau: new fields.StringField({ initial: "" }),
|
||||||
|
activation: new fields.StringField({ initial: "" }),
|
||||||
|
istest: new fields.BooleanField({ initial: false }),
|
||||||
|
feeriemasque: new fields.StringField({ initial: "feerie" }),
|
||||||
|
zoneffet: new fields.StringField({ initial: "" }),
|
||||||
|
testautre: new fields.StringField({ initial: "" }),
|
||||||
|
carac: new fields.StringField({ initial: "pre" }),
|
||||||
|
duree: new fields.StringField({ initial: "" }),
|
||||||
|
cibles: new fields.StringField({ initial: "" }),
|
||||||
|
effet: new fields.StringField({ initial: "" }),
|
||||||
|
portee: new fields.StringField({ initial: "" }),
|
||||||
|
resistance: new fields.StringField({ initial: "" }),
|
||||||
|
resistanceautre: new fields.StringField({ initial: "" }),
|
||||||
|
pointsusagecourant: new fields.NumberField({ initial: -1, integer: true }),
|
||||||
|
isvirulence: new fields.BooleanField({ initial: false }),
|
||||||
|
virulence: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
12
modules/models/profil.mjs
Normal file
12
modules/models/profil.mjs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les profils
|
||||||
|
*/
|
||||||
|
export default class ProfilDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
profiltype: new fields.StringField({ initial: "majeur" }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
20
modules/models/protection.mjs
Normal file
20
modules/models/protection.mjs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les protections
|
||||||
|
*/
|
||||||
|
export default class ProtectionDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prix: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
points: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
protectiontype: new fields.StringField({ initial: "" }),
|
||||||
|
effetsecondaire: new fields.StringField({ initial: "" }),
|
||||||
|
malusagilite: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
dissimulation: new fields.StringField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
27
modules/models/sort.mjs
Normal file
27
modules/models/sort.mjs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les sorts
|
||||||
|
*/
|
||||||
|
export default class SortDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
niveau: new fields.StringField({ initial: "1" }),
|
||||||
|
rang: new fields.StringField({ initial: "1" }),
|
||||||
|
competence: new fields.StringField({ initial: "Druidisme" }),
|
||||||
|
carac1: new fields.StringField({ initial: "esp" }),
|
||||||
|
carac2: new fields.StringField({ initial: "none" }),
|
||||||
|
sdspecial: new fields.StringField({ initial: "" }),
|
||||||
|
duree: new fields.StringField({ initial: "" }),
|
||||||
|
portee: new fields.StringField({ initial: "" }),
|
||||||
|
concentration: new fields.StringField({ initial: "" }),
|
||||||
|
informatif: new fields.BooleanField({ initial: false }),
|
||||||
|
texteinformatif: new fields.StringField({ initial: "" }),
|
||||||
|
critique: new fields.StringField({ initial: "" }),
|
||||||
|
ingredients: new fields.StringField({ initial: "" }),
|
||||||
|
resistance: new fields.StringField({ initial: "" }),
|
||||||
|
coutactivation: new fields.StringField({ initial: "" }),
|
||||||
|
souffle: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
16
package.json
Normal file
16
package.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "fvtt-les-heritiers",
|
||||||
|
"version": "13.0.7",
|
||||||
|
"description": "Les Héritiers RPG for FoundryVTT (French)",
|
||||||
|
"scripts": {
|
||||||
|
"build": "gulp build",
|
||||||
|
"watch": "gulp watch"
|
||||||
|
},
|
||||||
|
"author": "Uberwald/LeRatierBretonnien",
|
||||||
|
"license": "SEE LICENSE IN LICENCE.txt",
|
||||||
|
"devDependencies": {
|
||||||
|
"gulp": "^4.0.2",
|
||||||
|
"gulp-less": "^5.0.0",
|
||||||
|
"gulp-sourcemaps": "^3.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
"secondaryTokenAttribute": "bonneaventure.actuelle",
|
"secondaryTokenAttribute": "bonneaventure.actuelle",
|
||||||
"socket": true,
|
"socket": true,
|
||||||
"styles": [
|
"styles": [
|
||||||
"styles/simple.css"
|
"styles/heritiers.css"
|
||||||
],
|
],
|
||||||
"title": "Les Héritiers",
|
"title": "Les Héritiers",
|
||||||
"url": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers",
|
"url": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers",
|
||||||
|
|||||||
547
templates/actor-pnj-sheet.hbs
Normal file
547
templates/actor-pnj-sheet.hbs
Normal file
@@ -0,0 +1,547 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{!-- Sheet Header --}}
|
||||||
|
<header class="sheet-header">
|
||||||
|
<div class="header-fields background-sheet-header">
|
||||||
|
<div class="flexrow">
|
||||||
|
<img class="profile-img" src="{{actor.img}}" data-action="editImage" title="{{actor.name}}" />
|
||||||
|
<div class="flexcol">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||||
|
<div class="flexrow">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each system.caracteristiques as |carac key|}}
|
||||||
|
{{#if (eq kind "physical")}}
|
||||||
|
<li class="item flexrow ">
|
||||||
|
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" data-action="rollCarac" data-key="{{key}}">{{carac.label}}</a></h4>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each system.caracteristiques as |carac key|}}
|
||||||
|
{{#if (eq kind "mental")}}
|
||||||
|
<li class="item flexrow ">
|
||||||
|
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" data-action="rollCarac" data-key="{{key}}">{{carac.label}}</a></h4>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<label class="item-field-label-short">PV</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.value" value="{{system.pv.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.max" value="{{system.pv.max}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short">Malus</label>
|
||||||
|
<input type="text" class="item-field-label-short" value="{{pvMalus.value}}" data-dtype="Number" disabled />
|
||||||
|
<span> </span>
|
||||||
|
|
||||||
|
<select class="item-field-label-medium" type="text" name="system.statutmasque" value="{{system.statutmasque}}" data-dtype="string">
|
||||||
|
{{selectOptions config.statutMasque selected=system.statutmasque}}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<span> </span>
|
||||||
|
<label class="item-field-label-short">Tricherie</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.tricherie.value" value="{{system.rang.tricherie.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.tricherie.max" value="{{system.rang.tricherie.max}}" data-dtype="Number" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Tab Navigation --}}
|
||||||
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
|
<a class="item" data-tab="competences">Compétences</a>
|
||||||
|
<a class="item" data-tab="atouts">Atouts&Matériel</a>
|
||||||
|
<a class="item" data-tab="combat">Combat</a>
|
||||||
|
<a class="item" data-tab="notes">Notes</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
{{!-- Competence Tab --}}
|
||||||
|
<div class="tab competences" data-group="primary" data-tab="competences">
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="grid-2col">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{#each utileSkillsPhysical as |skillDef keyProfil|}}
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.hbs skillDef=skillDef keyProfil=keyProfil isPNJ=true}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{#each utileSkillsMental as |skillDef keyProfil|}}
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.hbs skillDef=skillDef keyProfil=keyProfil isPNJ=true}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<span class="item-field-label-long2">
|
||||||
|
<h3><label class="items-title-text">Compétences Futiles</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
</li>
|
||||||
|
{{#each futileSkills as |skill key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-competence" data-action="rollRootCompetence" item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{skill.name}}</a></span>
|
||||||
|
|
||||||
|
<select class="item-field-label-short edit-item-data" type="text"
|
||||||
|
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
|
||||||
|
{{selectOptions @root.config.listNiveau selected=skill.system.niveau}}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="item flexrow " >
|
||||||
|
<h2>Magie</h3>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="item-field-label-short"
|
||||||
|
data-rang-key="feerie">Point d'Ame</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magie.pointsame.value"
|
||||||
|
value="{{system.magie.pointsame.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magie.pointsame.max"
|
||||||
|
value="{{system.magie.pointsame.max}}" data-dtype="Number" {{#if issGM}} {{else}} disabled {{/if}} />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#each magieList as |magie idx|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{magie.competence._id}}" data-item-type="competence">
|
||||||
|
<h2 class="flexrow"><label class="items-title-text "><a class="roll-competence" data-action="rollRootCompetence" item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{magie.name}} {{magie.competence.system.niveau}} </a> </label>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</h2>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h3><label class="items-title-text">Nom du sort</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="sort" title="Ajouter un sort"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort" data-action="rollSort">{{sort.name}}</a></span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Equipement Tab --}}
|
||||||
|
<div class="tab combat" data-group="primary" data-tab="combat">
|
||||||
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<button class="chat-card-button roll-initiative" data-action="rollInitiative">Initiative (actuelle : {{initiative}} )</button>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-medium"><strong>Esquive</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.esquive.masquee" value="{{system.combat.esquive.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.esquive.demasquee" value="{{system.combat.esquive.demasquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium"><strong>Parade</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.parade.masquee" value="{{system.combat.parade.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.parade.demasquee" value="{{system.combat.parade.demasquee}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long">Rés. physique</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.resistancephysique.value" value="{{system.combat.resistancephysique.value}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-long">Rés. psychique</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.resistancepsychique.value" value="{{system.combat.resistancepsychique.value}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Protection : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.protection.value" value="{{system.combat.protection.value}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long">Effets secondaires</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.effetssecondaires" value="{{system.combat.effetssecondaires}}" data-dtype="String" />
|
||||||
|
<label class="item-field-label-long">Dissimulation : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.dissimulation.value" value="{{system.combat.dissimulation.value}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long"><strong>Corps à Corps</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masqué</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.corpsacorps.masquee" value="{{system.combat.corpsacorps.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasqué</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.corpsacorps.demasquee" value="{{system.combat.corpsacorps.demasquee}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long"><strong>A distance</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masqué</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.tir.masquee" value="{{system.combat.tir.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasqué</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.tir.demasquee" value="{{system.combat.tir.demasquee}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Armes</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Attaque</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Dégats</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="arme" title="Ajouter une arme"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each armes as |arme key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{arme._id}}" data-item-type="arme">
|
||||||
|
<img class="item-name-img" src="{{arme.img}}" />
|
||||||
|
<span class="item-name-label competence-name">{{arme.name}}</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-attaque-arme" data-action="rollAttaqueArme" button-sheet-roll">Attaquer</button>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
{{arme.system.degats}}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-equip" data-action="equipItem" title="Equipé">{{#if arme.system.equipped}}<i
|
||||||
|
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Protections</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Protection</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="protection" title="Ajouter une protection"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each protections as |protection key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{protection._id}}" data-item-type="protection">
|
||||||
|
<img class="item-name-img" src="{{protection.img}}" />
|
||||||
|
<span class="item-name-label competence-name">{{protection.name}}</span>
|
||||||
|
<span class="item-field-label-short arme-defensif"><label
|
||||||
|
class="arme-defensif">{{protection.system.protection}}</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{!-- atouts Tab --}}
|
||||||
|
<div class="tab atouts" data-group="primary" data-tab="atouts">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<li class="item flexrow " data-item-id="{{fee._id}}" data-item-type="avantage">
|
||||||
|
<img class="item-name-img" src="{{fee.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{fee.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="roll-rang" data-action="rollRang" item-field-label-short" data-rang-key="feerie">Féerie</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.feerie.value" value="{{system.rang.feerie.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.feerie.max" value="{{system.rang.feerie.max}}" data-dtype="Number" />
|
||||||
|
<span class="item-field-label-medium"></span>
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="roll-rang" data-action="rollRang" item-field-label-short" data-rang-key="masque">Masque</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.masque.value" value="{{system.rang.masque.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.masque.max" value="{{system.rang.masque.max}}" data-dtype="Number" />
|
||||||
|
<span class="item-field-label-medium"></span>
|
||||||
|
<label class="item-field-label-long roll-style"><a class="dialog-recup-usage" data-action="dialogRecupUsage" item-field-label-long">Récup. P. d'Usage</a></label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Avantages</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="avantage" title="Ajouter un avantage"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each avantages as |avantage key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{avantage._id}}" data-item-type="avantage">
|
||||||
|
<img class="item-name-img" src="{{avantage.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{avantage.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Désavantages</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="desavantage" title="Ajouter un Désavantage"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each desavantages as |desavantage key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{desavantage._id}}" data-item-type="desavantage">
|
||||||
|
<img class="item-name-img" src="{{desavantage.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{desavantage.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Atouts Féériques</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="atoutfeerique" title="Ajouter un Atout féerique"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each atouts as |atout key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{atout._id}}" data-item-type="atout">
|
||||||
|
<img class="item-name-img" src="{{atout.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{atout.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h3><label class="items-title-text">Pouvoirs</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Masque</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Type</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Usage</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="pouvoir" title="Ajouter un pouvoir"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each pouvoirs as |pouvoir key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{pouvoir._id}}" data-item-type="pouvoir">
|
||||||
|
<img class="item-name-img" src="{{pouvoir.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-pouvoir" data-action="rollPouvoir">{{pouvoir.name}}</a></span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.masquetype}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.pouvoirtype}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.niveau}}</span>
|
||||||
|
<span class="item-field-label-medium">{{pouvoir.system.pointsusagecourant}}/{{pouvoir.maxUsage}}</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Capacités Naturelles</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="capacitenaturelle" title="Ajouter une Capacité naturelle"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each capacites as |capa key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{capa._id}}" data-item-type="capacite">
|
||||||
|
<img class="item-name-img" src="{{capa.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{capa.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Equipements</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="equipement" title="Créer un équipement"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each equipements as |equip key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{equip._id}}" data-item-type="equipement">
|
||||||
|
<img class="item-name-img" src="{{equip.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{equip.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="tab notes" data-group="primary" data-tab="notes">
|
||||||
|
<span>
|
||||||
|
<h3>Historique</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
547
templates/actor-pnj-sheet.hbs.backup
Normal file
547
templates/actor-pnj-sheet.hbs.backup
Normal file
@@ -0,0 +1,547 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{!-- Sheet Header --}}
|
||||||
|
<header class="sheet-header">
|
||||||
|
<div class="header-fields background-sheet-header">
|
||||||
|
<div class="flexrow">
|
||||||
|
<img class="profile-img" src="{{actor.img}}" data-action="editImage" title="{{actor.name}}" />
|
||||||
|
<div class="flexcol">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||||
|
<div class="flexrow">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each system.caracteristiques as |carac key|}}
|
||||||
|
{{#if (eq kind "physical")}}
|
||||||
|
<li class="item flexrow ">
|
||||||
|
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" data-key="{{key}}">{{carac.label}}</a></h4>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each system.caracteristiques as |carac key|}}
|
||||||
|
{{#if (eq kind "mental")}}
|
||||||
|
<li class="item flexrow ">
|
||||||
|
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" data-key="{{key}}">{{carac.label}}</a></h4>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<label class="item-field-label-short">PV</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.value" value="{{system.pv.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.max" value="{{system.pv.max}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short">Malus</label>
|
||||||
|
<input type="text" class="item-field-label-short" value="{{pvMalus.value}}" data-dtype="Number" disabled />
|
||||||
|
<span> </span>
|
||||||
|
|
||||||
|
<select class="item-field-label-medium" type="text" name="system.statutmasque" value="{{system.statutmasque}}" data-dtype="string">
|
||||||
|
{{selectOptions config.statutMasque selected=system.statutmasque}}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<span> </span>
|
||||||
|
<label class="item-field-label-short">Tricherie</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.tricherie.value" value="{{system.rang.tricherie.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.tricherie.max" value="{{system.rang.tricherie.max}}" data-dtype="Number" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Tab Navigation --}}
|
||||||
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
|
<a class="item" data-tab="competences">Compétences</a>
|
||||||
|
<a class="item" data-tab="atouts">Atouts&Matériel</a>
|
||||||
|
<a class="item" data-tab="combat">Combat</a>
|
||||||
|
<a class="item" data-tab="notes">Notes</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
{{!-- Competence Tab --}}
|
||||||
|
<div class="tab competences" data-group="primary" data-tab="competences">
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="grid-2col">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{#each utileSkillsPhysical as |skillDef keyProfil|}}
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.hbs skillDef=skillDef keyProfil=keyProfil isPNJ=true}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{#each utileSkillsMental as |skillDef keyProfil|}}
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.hbs skillDef=skillDef keyProfil=keyProfil isPNJ=true}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<span class="item-field-label-long2">
|
||||||
|
<h3><label class="items-title-text">Compétences Futiles</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
</li>
|
||||||
|
{{#each futileSkills as |skill key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-competence item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{skill.name}}</a></span>
|
||||||
|
|
||||||
|
<select class="item-field-label-short edit-item-data" type="text"
|
||||||
|
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
|
||||||
|
{{selectOptions @root.config.listNiveau selected=skill.system.niveau}}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="item flexrow " >
|
||||||
|
<h2>Magie</h3>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="item-field-label-short"
|
||||||
|
data-rang-key="feerie">Point d'Ame</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magie.pointsame.value"
|
||||||
|
value="{{system.magie.pointsame.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magie.pointsame.max"
|
||||||
|
value="{{system.magie.pointsame.max}}" data-dtype="Number" {{#if issGM}} {{else}} disabled {{/if}} />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#each magieList as |magie idx|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{magie.competence._id}}" data-item-type="competence">
|
||||||
|
<h2 class="flexrow"><label class="items-title-text "><a class="roll-competence item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{magie.name}} {{magie.competence.system.niveau}} </a> </label>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</h2>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h3><label class="items-title-text">Nom du sort</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="sort" title="Ajouter un sort"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort">{{sort.name}}</a></span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Equipement Tab --}}
|
||||||
|
<div class="tab combat" data-group="primary" data-tab="combat">
|
||||||
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<button class="chat-card-button roll-initiative">Initiative (actuelle : {{initiative}} )</button>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-medium"><strong>Esquive</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.esquive.masquee" value="{{system.combat.esquive.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.esquive.demasquee" value="{{system.combat.esquive.demasquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium"><strong>Parade</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.parade.masquee" value="{{system.combat.parade.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.parade.demasquee" value="{{system.combat.parade.demasquee}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long">Rés. physique</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.resistancephysique.value" value="{{system.combat.resistancephysique.value}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-long">Rés. psychique</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.resistancepsychique.value" value="{{system.combat.resistancepsychique.value}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Protection : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.protection.value" value="{{system.combat.protection.value}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long">Effets secondaires</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.effetssecondaires" value="{{system.combat.effetssecondaires}}" data-dtype="String" />
|
||||||
|
<label class="item-field-label-long">Dissimulation : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.dissimulation.value" value="{{system.combat.dissimulation.value}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long"><strong>Corps à Corps</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masqué</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.corpsacorps.masquee" value="{{system.combat.corpsacorps.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasqué</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.corpsacorps.demasquee" value="{{system.combat.corpsacorps.demasquee}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long"><strong>A distance</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masqué</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.tir.masquee" value="{{system.combat.tir.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasqué</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.tir.demasquee" value="{{system.combat.tir.demasquee}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Armes</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Attaque</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Dégats</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each armes as |arme key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{arme._id}}" data-item-type="arme">
|
||||||
|
<img class="item-name-img" src="{{arme.img}}" />
|
||||||
|
<span class="item-name-label competence-name">{{arme.name}}</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-attaque-arme button-sheet-roll">Attaquer</button>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
{{arme.system.degats}}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-equip" title="Equipé">{{#if arme.system.equipped}}<i
|
||||||
|
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Protections</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Protection</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="protection" title="Ajouter une protection"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each protections as |protection key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{protection._id}}" data-item-type="protection">
|
||||||
|
<img class="item-name-img" src="{{protection.img}}" />
|
||||||
|
<span class="item-name-label competence-name">{{protection.name}}</span>
|
||||||
|
<span class="item-field-label-short arme-defensif"><label
|
||||||
|
class="arme-defensif">{{protection.system.protection}}</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{!-- atouts Tab --}}
|
||||||
|
<div class="tab atouts" data-group="primary" data-tab="atouts">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<li class="item flexrow " data-item-id="{{fee._id}}" data-item-type="avantage">
|
||||||
|
<img class="item-name-img" src="{{fee.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{fee.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short" data-rang-key="feerie">Féerie</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.feerie.value" value="{{system.rang.feerie.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.feerie.max" value="{{system.rang.feerie.max}}" data-dtype="Number" />
|
||||||
|
<span class="item-field-label-medium"></span>
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short" data-rang-key="masque">Masque</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.masque.value" value="{{system.rang.masque.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.masque.max" value="{{system.rang.masque.max}}" data-dtype="Number" />
|
||||||
|
<span class="item-field-label-medium"></span>
|
||||||
|
<label class="item-field-label-long roll-style"><a class="dialog-recup-usage item-field-label-long">Récup. P. d'Usage</a></label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Avantages</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="avantage" title="Ajouter un avantage"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each avantages as |avantage key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{avantage._id}}" data-item-type="avantage">
|
||||||
|
<img class="item-name-img" src="{{avantage.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{avantage.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Désavantages</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="desavantage" title="Ajouter un Désavantage"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each desavantages as |desavantage key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{desavantage._id}}" data-item-type="desavantage">
|
||||||
|
<img class="item-name-img" src="{{desavantage.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{desavantage.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Atouts Féériques</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="atoutfeerique" title="Ajouter un Atout féerique"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each atouts as |atout key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{atout._id}}" data-item-type="atout">
|
||||||
|
<img class="item-name-img" src="{{atout.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{atout.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h3><label class="items-title-text">Pouvoirs</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Masque</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Type</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Usage</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="pouvoir" title="Ajouter un pouvoir"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each pouvoirs as |pouvoir key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{pouvoir._id}}" data-item-type="pouvoir">
|
||||||
|
<img class="item-name-img" src="{{pouvoir.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-pouvoir">{{pouvoir.name}}</a></span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.masquetype}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.pouvoirtype}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.niveau}}</span>
|
||||||
|
<span class="item-field-label-medium">{{pouvoir.system.pointsusagecourant}}/{{pouvoir.maxUsage}}</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Capacités Naturelles</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="capacitenaturelle" title="Ajouter une Capacité naturelle"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each capacites as |capa key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{capa._id}}" data-item-type="capacite">
|
||||||
|
<img class="item-name-img" src="{{capa.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{capa.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Equipements</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="equipement" title="Créer un équipement"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each equipements as |equip key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{equip._id}}" data-item-type="equipement">
|
||||||
|
<img class="item-name-img" src="{{equip.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{equip.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="tab notes" data-group="primary" data-tab="notes">
|
||||||
|
<span>
|
||||||
|
<h3>Historique</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
948
templates/actor-sheet.hbs
Normal file
948
templates/actor-sheet.hbs
Normal file
@@ -0,0 +1,948 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{!-- Sheet Header --}}
|
||||||
|
<header class="sheet-header">
|
||||||
|
<div class="header-fields background-sheet-header">
|
||||||
|
<div class="flexrow">
|
||||||
|
<img class="profile-img" src="{{actor.img}}" data-action="editImage" title="{{actor.name}}" />
|
||||||
|
<div class="flexcol">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||||
|
<div class="flexrow">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each system.caracteristiques as |carac key|}}
|
||||||
|
{{#if (eq kind "physical")}}
|
||||||
|
<li class="item flexrow ">
|
||||||
|
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" data-action="rollCarac"
|
||||||
|
data-key="{{key}}">{{carac.label}}</a></h4>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.value" data-tooltip="Valeur actuelle" value="{{carac.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.rang" data-tooltip="Rang" value="{{carac.rang}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each system.caracteristiques as |carac key|}}
|
||||||
|
{{#if (eq kind "mental")}}
|
||||||
|
<li class="item flexrow ">
|
||||||
|
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" data-action="rollCarac"
|
||||||
|
data-key="{{key}}">{{carac.label}}</a></h4>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-tooltip="Valeur actuelle"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-tooltip="Rang"
|
||||||
|
data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<label class="item-field-label-short">PV</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.value" value="{{system.pv.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.max" value="{{system.pv.max}}" disabled
|
||||||
|
data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.mod" value="{{system.pv.mod}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short">Malus</label>
|
||||||
|
<input type="text" class="item-field-label-short" value="{{pvMalus.value}}" data-dtype="Number" disabled />
|
||||||
|
<span> </span>
|
||||||
|
|
||||||
|
<select class="item-field-label-medium" type="text" name="system.statutmasque"
|
||||||
|
value="{{system.statutmasque}}" data-dtype="string">
|
||||||
|
{{selectOptions config.statutMasque selected=system.statutmasque}}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<span> </span>
|
||||||
|
<label class="item-field-label-short">Tricherie</label>
|
||||||
|
<input type="text" class="item-field-label-short-num" name="system.rang.tricherie.value"
|
||||||
|
value="{{system.rang.tricherie.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short-num" name="system.rang.tricherie.max"
|
||||||
|
value="{{system.rang.tricherie.max}}" data-dtype="Number" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Tab Navigation --}}
|
||||||
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
|
<a class="item" data-tab="competences">Compétences</a>
|
||||||
|
<a class="item" data-tab="fee">Fée</a>
|
||||||
|
{{#if system.biodata.magie}}
|
||||||
|
<a class="item" data-tab="magie">Magie</a>
|
||||||
|
{{/if}}
|
||||||
|
<a class="item" data-tab="combat">Combat</a>
|
||||||
|
<a class="item" data-tab="equipement">Equipement</a>
|
||||||
|
<a class="item" data-tab="contact">Contacts</a>
|
||||||
|
<a class="item" data-tab="biodata">Bio</a>
|
||||||
|
<a class="item" data-tab="notes">Notes</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
{{!-- Competence Tab --}}
|
||||||
|
<div class="tab competences" data-group="primary" data-tab="competences">
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="grid-2col">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{#each utileSkillsPhysical as |skillDef keyProfil|}}
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.hbs skillDef=skillDef keyProfil=keyProfil
|
||||||
|
config=config}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{#each utileSkillsMental as |skillDef keyProfil|}}
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.hbs skillDef=skillDef keyProfil=keyProfil
|
||||||
|
config=config}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<span class="item-field-label-long2">
|
||||||
|
<h3><label class="items-title-text">Compétences Futiles</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="competence" title="Ajouter une compétence futile"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each futileSkills as |skill key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-competence" data-action="rollRootCompetence" item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{skill.name}}</a></span>
|
||||||
|
|
||||||
|
<select class="item-field-label-short edit-item-data" type="text" data-item-field="niveau"
|
||||||
|
value="{{skill.system.niveau}}" data-dtype="Number">
|
||||||
|
{{selectOptions @root.config.listNiveau selected=skill.system.niveau}}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Equipement Tab --}}
|
||||||
|
<div class="tab combat" data-group="primary" data-tab="combat">
|
||||||
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<button class="chat-card-button roll-initiative" data-action="rollInitiative">Initiative (actuelle : {{initiative}} )</button>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-medium"><strong>Esquive</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.esquive.masquee"
|
||||||
|
value="{{system.combat.esquive.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.esquive.demasquee"
|
||||||
|
value="{{system.combat.esquive.demasquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short"> </label>
|
||||||
|
<label class="item-field-label-medium"><strong>Parade</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.parade.masquee"
|
||||||
|
value="{{system.combat.parade.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.parade.demasquee"
|
||||||
|
value="{{system.combat.parade.demasquee}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long">Rés. physique</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.resistancephysique.value"
|
||||||
|
value="{{system.combat.resistancephysique.value}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short"> </label>
|
||||||
|
<label class="item-field-label-long">Rés. psychique</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.resistancepsychique.value"
|
||||||
|
value="{{system.combat.resistancepsychique.value}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short"> </label>
|
||||||
|
<label class="item-field-label-medium">Protection : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.protection.value"
|
||||||
|
value="{{system.combat.protection.value}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long">Effets secondaires</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.effetssecondaires"
|
||||||
|
value="{{system.combat.effetssecondaires}}" data-dtype="String" />
|
||||||
|
<label class="item-field-label-short"> </label>
|
||||||
|
<label class="item-field-label-long">Dissimulation : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.dissimulation.value"
|
||||||
|
value="{{system.combat.dissimulation.value}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Armes</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Dégats</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Attaque</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="arme" title="Ajouter une arme"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each armes as |arme key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{arme._id}}" data-item-type="arme">
|
||||||
|
<img class="item-name-img" src="{{arme.img}}" />
|
||||||
|
<span class="item-name-label competence-name">{{arme.name}}</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
{{arme.system.degats}}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-attaque-arme" data-action="rollAttaqueArme" button-sheet-roll">Attaque</button>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-assomer-arme" data-action="rollAssomerArme" button-sheet-roll">Assommer</button>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
{{#if arme.system.isMelee}}
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-attaque-charge-arme" data-action="rollAttaqueChargeArme" button-sheet-roll">Charger</button>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-attaque-brutale-arme" data-action="rollAttaqueBrutaleArme" button-sheet-roll button-sheet-roll-long1">Attaque
|
||||||
|
brutale</button>
|
||||||
|
</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-equip" data-action="equipItem" title="Equipé">{{#if arme.system.equipped}}<i
|
||||||
|
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Protections</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Protection</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="protection" title="Ajouter une protection"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each protections as |protection key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{protection._id}}" data-item-type="protection">
|
||||||
|
<img class="item-name-img" src="{{protection.img}}" />
|
||||||
|
<span class="item-name-label competence-name">{{protection.name}}</span>
|
||||||
|
<span class="item-field-label-short arme-defensif"><label
|
||||||
|
class="arme-defensif">{{protection.system.protection}}</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{!-- Fee Tab --}}
|
||||||
|
<div class="tab fee" data-group="primary" data-tab="fee">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<li class="item flexrow " data-item-id="{{fee._id}}" data-item-type="avantage">
|
||||||
|
<img class="item-name-img" src="{{fee.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{fee.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="roll-rang" data-action="rollRang" item-field-label-short"
|
||||||
|
data-rang-key="feerie">Féerie</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.feerie.value"
|
||||||
|
value="{{system.rang.feerie.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.feerie.max"
|
||||||
|
value="{{system.rang.feerie.max}}" data-dtype="Number" />
|
||||||
|
<span class="item-field-label-medium"></span>
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="roll-rang" data-action="rollRang" item-field-label-short"
|
||||||
|
data-rang-key="masque">Masque</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.masque.value"
|
||||||
|
value="{{system.rang.masque.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.masque.max"
|
||||||
|
value="{{system.rang.masque.max}}" data-dtype="Number" />
|
||||||
|
<span class="item-field-label-medium"></span>
|
||||||
|
<label class="item-field-label-long roll-style"><a class="dialog-recup-usage" data-action="dialogRecupUsage" item-field-label-long">Récup.
|
||||||
|
P. d'Usage</a></label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Avantages</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="avantage" title="Ajouter un avantage"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each avantages as |avantage key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{avantage._id}}" data-item-type="avantage">
|
||||||
|
<img class="item-name-img" src="{{avantage.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{avantage.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Désavantages</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="desavantage" title="Ajouter un désavantage"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each desavantages as |desavantage key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{desavantage._id}}" data-item-type="desavantage">
|
||||||
|
<img class="item-name-img" src="{{desavantage.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{desavantage.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Atouts Féériques</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="atoutfeerique" title="Ajouter un atout féerique"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each atouts as |atout key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{atout._id}}" data-item-type="atout">
|
||||||
|
<img class="item-name-img" src="{{atout.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{atout.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h3><label class="items-title-text">Pouvoirs</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Masque</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Type</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Usage</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="pouvoir" title="Ajouter un pouvoir"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each pouvoirs as |pouvoir key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{pouvoir._id}}" data-item-type="pouvoir">
|
||||||
|
<img class="item-name-img" src="{{pouvoir.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-pouvoir" data-action="rollPouvoir">{{pouvoir.name}}</a></span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.masquetype}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.pouvoirtype}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.niveau}}</span>
|
||||||
|
<span class="item-field-label-medium">{{pouvoir.system.pointsusagecourant}}/{{pouvoir.maxUsage}}</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Capacités Naturelles</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="capacitenaturelle" title="Ajouter une capacité naturelle"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each capacites as |capa key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{capa._id}}" data-item-type="capacite">
|
||||||
|
<img class="item-name-img" src="{{capa.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{capa.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Magie Tab --}}
|
||||||
|
<div class="tab magie" data-group="primary" data-tab="magie">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-medium roll-style">Point d'Ame</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magie.pointsame.value"
|
||||||
|
value="{{system.magie.pointsame.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magie.pointsame.max"
|
||||||
|
value="{{system.magie.pointsame.max}}" data-dtype="Number" {{#if isGM}} {{else}} disabled {{/if}} />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#each magieList as |magie idx|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{magie.competence._id}}" data-item-type="competence">
|
||||||
|
<h3 class="flexrow"><label class="items-title-text "><a class="roll-competence" data-action="rollRootCompetence" item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{magie.name}} {{magie.competence.system.niveau}} </a> </label>
|
||||||
|
<!-- <span>Rang : {{magie.rang}}</span> -->
|
||||||
|
<span>{{magie.rangSpecificName}}</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</h3>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if (eq magie.name "Magie du Clan")}}
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<h4 class="items-title-text">Souffle de Combat</h4>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each sorts.soufflecombat as |niveau key|}}
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h4><label class="items-title-text">Niveau {{key}} {{niveau.nomNiveau}}</label></h4>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if @root.isGM}}
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="sort" data-sort-competence={{magie.name}}
|
||||||
|
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each niveau.sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort" data-action="rollSort">{{sort.name}}</a></span>
|
||||||
|
{{#if sort.system.informatif}}
|
||||||
|
<span class="item-field-label-medium">Informatif</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4 class="items-title-text">Souffle de Mouvement</h4>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each sorts.soufflemouvement as |niveau key|}}
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h4><label class="items-title-text">Niveau {{key}} {{niveau.nomNiveau}}</label></h4>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if @root.isGM}}
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="sort" data-sort-competence={{magie.name}}
|
||||||
|
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each niveau.sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort" data-action="rollSort">{{sort.name}}</a></span>
|
||||||
|
{{#if sort.system.informatif}}
|
||||||
|
<span class="item-field-label-medium">Informatif</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
<h4 class="items-title-text">Souffle de l'Esprit</h4>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each sorts.souffleesprit as |niveau key|}}
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h4><label class="items-title-text">Niveau {{key}} {{niveau.nomNiveau}}</label></h4>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if @root.isGM}}
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="sort" data-sort-competence={{magie.name}}
|
||||||
|
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each niveau.sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort" data-action="rollSort">{{sort.name}}</a></span>
|
||||||
|
{{#if sort.system.informatif}}
|
||||||
|
<span class="item-field-label-medium">Informatif</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{else}}
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each sorts as |niveau key|}}
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h4><label class="items-title-text">Niveau {{key}} {{niveau.nomNiveau}}</label></h4>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if @root.isGM}}
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="sort" data-sort-competence={{magie.name}}
|
||||||
|
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each niveau.sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort" data-action="rollSort">{{sort.name}}</a></span>
|
||||||
|
|
||||||
|
{{#if sort.system.informatif}}
|
||||||
|
<span class="item-field-label-medium">Informatif</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Equipement Tab --}}
|
||||||
|
<div class="tab equipement" data-group="primary" data-tab="equipement">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Equipements</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="equipement" title="Créer un équipement"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each equipements as |equip key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{equip._id}}" data-item-type="equipement">
|
||||||
|
<img class="item-name-img" src="{{equip.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{equip.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Contact Tab --}}
|
||||||
|
<div class="tab contact" data-group="primary" data-tab="contact">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long3">
|
||||||
|
<h3><label class="items-title-text">Contacts, Allies et Ennemis</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="contact" title="Créer un contact"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#each contacts as |contactList idx|}}
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">{{contactList.label}}</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-action="createItem" data-type="contact" title="Créer un contact"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each contactList.list as |contact key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{contact._id}}" data-item-type="contact">
|
||||||
|
<img class="item-name-img" src="{{contact.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{contact.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Biography Tab --}}
|
||||||
|
<div class="tab biodata" data-group="primary" data-tab="biodata">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h3><label class="items-title-text">Profils</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Type</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each profils as |profil key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{profil._id}}" data-item-type="profil">
|
||||||
|
<img class="item-name-img" src="{{profil.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{profil.name}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst profil.system.profiltype}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" data-action="editItem" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" data-action="deleteItem" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<div class="grid-2col">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Nom humain</label> <input type="text" class=""
|
||||||
|
name="system.biodata.nomhumain" value="{{system.biodata.nomhumain}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Activités</label> <input type="text" class=""
|
||||||
|
name="system.biodata.activites" value="{{system.biodata.activites}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Apparence masquée</label> <input type="text" class=""
|
||||||
|
name="system.biodata.apparencemasquee" value="{{system.biodata.apparencemasquee}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Apparence démasquée</label> <input type="text" class=""
|
||||||
|
name="system.biodata.apparencedemasquee" value="{{system.biodata.apparencedemasquee}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Titre et Famille</label> <input type="text" class=""
|
||||||
|
name="system.biodata.titrefamille" value="{{system.biodata.titrefamille}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Factions féériques</label> <input type="text" class=""
|
||||||
|
name="system.biodata.factionfeerique" value="{{system.biodata.factionfeerique}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Traits de caractères dominants</label> <input type="text" class=""
|
||||||
|
name="system.biodata.traitscaracteres" value="{{system.biodata.traitscaracteres}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Langues</label> <input type="text" class=""
|
||||||
|
name="system.biodata.langues" value="{{system.biodata.langues}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid grid-3col">
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Fortune</label>
|
||||||
|
<input type="text" class="" name="system.biodata.fortune" value="{{system.biodata.fortune}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Genre</label>
|
||||||
|
<input type="text" class="" name="system.biodata.sex" value="{{system.biodata.sex}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Age</label>
|
||||||
|
<input type="text" class="" name="system.biodata.age" value="{{system.biodata.age}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{#if isGM}}
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Fiche de Magie ?</label>
|
||||||
|
<input type="checkbox" class="item-field-label-short edit-item-data" name="system.biodata.magie"
|
||||||
|
{{checked system.biodata.magie}} />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Taille Masquée</label>
|
||||||
|
<input type="text" class="" name="system.biodata.taillemasquee" value="{{system.biodata.taillemasquee}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Taille Démasquée</label>
|
||||||
|
<input type="text" class="" name="system.biodata.tailledemasquee"
|
||||||
|
value="{{system.biodata.tailledemasquee}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Type de taille</label>
|
||||||
|
<input type="text" class="" name="system.experience.typetaille" value="{{system.experience.typetaille}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Points d'héritage</label>
|
||||||
|
<input type="text" class="" name="system.rang.heritage.value" value="{{system.rang.heritage.value}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Poids Masqué</label>
|
||||||
|
<input type="text" class="" name="system.biodata.poidsmasquee" value="{{system.biodata.poidsmasquee}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Poids Démasqué</label>
|
||||||
|
<input type="text" class="" name="system.biodata.poidsdemasquee"
|
||||||
|
value="{{system.biodata.poidsdemasquee}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">XP</label>
|
||||||
|
<input type="text" class="" name="system.experience.value" value="{{system.experience.value}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">XP pour tricher</label>
|
||||||
|
<input type="text" class="" name="system.experience.pourtricher"
|
||||||
|
value="{{system.experience.pourtricher}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if isGM}}
|
||||||
|
{{#if system.biodata.magie}}
|
||||||
|
<div class="magie-text-helper"><strong>Magie activée : </strong>Glissez/Déplacez la/les compétences de Magie
|
||||||
|
nécessaires
|
||||||
|
depuis le compendium dans l'onglet "Magie", puis faites de même pour les sorts.
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab notes" data-group="primary" data-tab="notes">
|
||||||
|
<span>
|
||||||
|
<h3>Historique</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<h3>Notes diverses</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor playernotes target="system.biodata.playernotes" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<h3>Rêves étranges</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor revesetranges target="system.biodata.revesetranges" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<h3>Secrets découverts</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor secretsdecouverts target="system.biodata.secretsdecouverts" button=true owner=owner
|
||||||
|
editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<h3>Questions en suspens</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor questions target="system.biodata.questions" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
948
templates/actor-sheet.hbs.backup
Normal file
948
templates/actor-sheet.hbs.backup
Normal file
@@ -0,0 +1,948 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{!-- Sheet Header --}}
|
||||||
|
<header class="sheet-header">
|
||||||
|
<div class="header-fields background-sheet-header">
|
||||||
|
<div class="flexrow">
|
||||||
|
<img class="profile-img" src="{{actor.img}}" data-action="editImage" title="{{actor.name}}" />
|
||||||
|
<div class="flexcol">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" {{#if isPlayMode}}disabled{{/if}} /></h1>
|
||||||
|
<div class="flexrow">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each system.caracteristiques as |carac key|}}
|
||||||
|
{{#if (eq kind "physical")}}
|
||||||
|
<li class="item flexrow ">
|
||||||
|
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac"
|
||||||
|
data-key="{{key}}">{{carac.label}}</a></h4>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.value" data-tooltip="Valeur actuelle" value="{{carac.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.rang" data-tooltip="Rang" value="{{carac.rang}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each system.caracteristiques as |carac key|}}
|
||||||
|
{{#if (eq kind "mental")}}
|
||||||
|
<li class="item flexrow ">
|
||||||
|
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac"
|
||||||
|
data-key="{{key}}">{{carac.label}}</a></h4>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-tooltip="Valeur actuelle"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-tooltip="Rang"
|
||||||
|
data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<label class="item-field-label-short">PV</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.value" value="{{system.pv.value}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.max" value="{{system.pv.max}}" disabled
|
||||||
|
data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.pv.mod" value="{{system.pv.mod}}"
|
||||||
|
data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short">Malus</label>
|
||||||
|
<input type="text" class="item-field-label-short" value="{{pvMalus.value}}" data-dtype="Number" disabled />
|
||||||
|
<span> </span>
|
||||||
|
|
||||||
|
<select class="item-field-label-medium" type="text" name="system.statutmasque"
|
||||||
|
value="{{system.statutmasque}}" data-dtype="string">
|
||||||
|
{{selectOptions config.statutMasque selected=system.statutmasque}}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<span> </span>
|
||||||
|
<label class="item-field-label-short">Tricherie</label>
|
||||||
|
<input type="text" class="item-field-label-short-num" name="system.rang.tricherie.value"
|
||||||
|
value="{{system.rang.tricherie.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short-num" name="system.rang.tricherie.max"
|
||||||
|
value="{{system.rang.tricherie.max}}" data-dtype="Number" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{!-- Sheet Tab Navigation --}}
|
||||||
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
|
<a class="item" data-tab="competences">Compétences</a>
|
||||||
|
<a class="item" data-tab="fee">Fée</a>
|
||||||
|
{{#if system.biodata.magie}}
|
||||||
|
<a class="item" data-tab="magie">Magie</a>
|
||||||
|
{{/if}}
|
||||||
|
<a class="item" data-tab="combat">Combat</a>
|
||||||
|
<a class="item" data-tab="equipement">Equipement</a>
|
||||||
|
<a class="item" data-tab="contact">Contacts</a>
|
||||||
|
<a class="item" data-tab="biodata">Bio</a>
|
||||||
|
<a class="item" data-tab="notes">Notes</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
{{!-- Competence Tab --}}
|
||||||
|
<div class="tab competences" data-group="primary" data-tab="competences">
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="grid-2col">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{#each utileSkillsPhysical as |skillDef keyProfil|}}
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.hbs skillDef=skillDef keyProfil=keyProfil
|
||||||
|
config=config}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{#each utileSkillsMental as |skillDef keyProfil|}}
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.hbs skillDef=skillDef keyProfil=keyProfil
|
||||||
|
config=config}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<span class="item-field-label-long2">
|
||||||
|
<h3><label class="items-title-text">Compétences Futiles</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="competence" title="Ajouter une compétence futile"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each futileSkills as |skill key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-competence item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{skill.name}}</a></span>
|
||||||
|
|
||||||
|
<select class="item-field-label-short edit-item-data" type="text" data-item-field="niveau"
|
||||||
|
value="{{skill.system.niveau}}" data-dtype="Number">
|
||||||
|
{{selectOptions @root.config.listNiveau selected=skill.system.niveau}}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Equipement Tab --}}
|
||||||
|
<div class="tab combat" data-group="primary" data-tab="combat">
|
||||||
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
<button class="chat-card-button roll-initiative">Initiative (actuelle : {{initiative}} )</button>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-medium"><strong>Esquive</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.esquive.masquee"
|
||||||
|
value="{{system.combat.esquive.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.esquive.demasquee"
|
||||||
|
value="{{system.combat.esquive.demasquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short"> </label>
|
||||||
|
<label class="item-field-label-medium"><strong>Parade</strong></label>
|
||||||
|
<label class="item-field-label-medium">Masquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.parade.masquee"
|
||||||
|
value="{{system.combat.parade.masquee}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-medium">Démasquée</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.parade.demasquee"
|
||||||
|
value="{{system.combat.parade.demasquee}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long">Rés. physique</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.resistancephysique.value"
|
||||||
|
value="{{system.combat.resistancephysique.value}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short"> </label>
|
||||||
|
<label class="item-field-label-long">Rés. psychique</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.resistancepsychique.value"
|
||||||
|
value="{{system.combat.resistancepsychique.value}}" data-dtype="Number" />
|
||||||
|
<label class="item-field-label-short"> </label>
|
||||||
|
<label class="item-field-label-medium">Protection : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.protection.value"
|
||||||
|
value="{{system.combat.protection.value}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<label class="item-field-label-long">Effets secondaires</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.effetssecondaires"
|
||||||
|
value="{{system.combat.effetssecondaires}}" data-dtype="String" />
|
||||||
|
<label class="item-field-label-short"> </label>
|
||||||
|
<label class="item-field-label-long">Dissimulation : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.combat.dissimulation.value"
|
||||||
|
value="{{system.combat.dissimulation.value}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Armes</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Dégats</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Attaque</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each armes as |arme key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{arme._id}}" data-item-type="arme">
|
||||||
|
<img class="item-name-img" src="{{arme.img}}" />
|
||||||
|
<span class="item-name-label competence-name">{{arme.name}}</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
{{arme.system.degats}}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-attaque-arme button-sheet-roll">Attaque</button>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-assomer-arme button-sheet-roll">Assommer</button>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
{{#if arme.system.isMelee}}
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-attaque-charge-arme button-sheet-roll">Charger</button>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<button class="roll-attaque-brutale-arme button-sheet-roll button-sheet-roll-long1">Attaque
|
||||||
|
brutale</button>
|
||||||
|
</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-equip" title="Equipé">{{#if arme.system.equipped}}<i
|
||||||
|
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Protections</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Protection</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="protection" title="Ajouter une protection"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each protections as |protection key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{protection._id}}" data-item-type="protection">
|
||||||
|
<img class="item-name-img" src="{{protection.img}}" />
|
||||||
|
<span class="item-name-label competence-name">{{protection.name}}</span>
|
||||||
|
<span class="item-field-label-short arme-defensif"><label
|
||||||
|
class="arme-defensif">{{protection.system.protection}}</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{!-- Fee Tab --}}
|
||||||
|
<div class="tab fee" data-group="primary" data-tab="fee">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<li class="item flexrow " data-item-id="{{fee._id}}" data-item-type="avantage">
|
||||||
|
<img class="item-name-img" src="{{fee.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{fee.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short"
|
||||||
|
data-rang-key="feerie">Féerie</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.feerie.value"
|
||||||
|
value="{{system.rang.feerie.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.feerie.max"
|
||||||
|
value="{{system.rang.feerie.max}}" data-dtype="Number" />
|
||||||
|
<span class="item-field-label-medium"></span>
|
||||||
|
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short"
|
||||||
|
data-rang-key="masque">Masque</a></label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.masque.value"
|
||||||
|
value="{{system.rang.masque.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rang.masque.max"
|
||||||
|
value="{{system.rang.masque.max}}" data-dtype="Number" />
|
||||||
|
<span class="item-field-label-medium"></span>
|
||||||
|
<label class="item-field-label-long roll-style"><a class="dialog-recup-usage item-field-label-long">Récup.
|
||||||
|
P. d'Usage</a></label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Avantages</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="avantage" title="Ajouter un avantage"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each avantages as |avantage key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{avantage._id}}" data-item-type="avantage">
|
||||||
|
<img class="item-name-img" src="{{avantage.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{avantage.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Désavantages</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="desavantage" title="Ajouter un désavantage"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each desavantages as |desavantage key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{desavantage._id}}" data-item-type="desavantage">
|
||||||
|
<img class="item-name-img" src="{{desavantage.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{desavantage.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Atouts Féériques</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="atoutfeerique" title="Ajouter un atout féerique"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each atouts as |atout key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{atout._id}}" data-item-type="atout">
|
||||||
|
<img class="item-name-img" src="{{atout.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{atout.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h3><label class="items-title-text">Pouvoirs</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Masque</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Type</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Usage</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="pouvoir" title="Ajouter un pouvoir"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each pouvoirs as |pouvoir key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{pouvoir._id}}" data-item-type="pouvoir">
|
||||||
|
<img class="item-name-img" src="{{pouvoir.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-pouvoir">{{pouvoir.name}}</a></span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.masquetype}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.pouvoirtype}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst pouvoir.system.niveau}}</span>
|
||||||
|
<span class="item-field-label-medium">{{pouvoir.system.pointsusagecourant}}/{{pouvoir.maxUsage}}</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Capacités Naturelles</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="capacitenaturelle" title="Ajouter une capacité naturelle"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each capacites as |capa key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{capa._id}}" data-item-type="capacite">
|
||||||
|
<img class="item-name-img" src="{{capa.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{capa.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Magie Tab --}}
|
||||||
|
<div class="tab magie" data-group="primary" data-tab="magie">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-medium roll-style">Point d'Ame</label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magie.pointsame.value"
|
||||||
|
value="{{system.magie.pointsame.value}}" data-dtype="Number" />
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magie.pointsame.max"
|
||||||
|
value="{{system.magie.pointsame.max}}" data-dtype="Number" {{#if isGM}} {{else}} disabled {{/if}} />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#each magieList as |magie idx|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{magie.competence._id}}" data-item-type="competence">
|
||||||
|
<h3 class="flexrow"><label class="items-title-text "><a class="roll-competence item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{magie.name}} {{magie.competence.system.niveau}} </a> </label>
|
||||||
|
<!-- <span>Rang : {{magie.rang}}</span> -->
|
||||||
|
<span>{{magie.rangSpecificName}}</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</h3>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if (eq magie.name "Magie du Clan")}}
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<h4 class="items-title-text">Souffle de Combat</h4>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each sorts.soufflecombat as |niveau key|}}
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h4><label class="items-title-text">Niveau {{key}} {{niveau.nomNiveau}}</label></h4>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if @root.isGM}}
|
||||||
|
<a class="item-control item-add" data-type="sort" data-sort-competence={{magie.name}}
|
||||||
|
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each niveau.sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort">{{sort.name}}</a></span>
|
||||||
|
{{#if sort.system.informatif}}
|
||||||
|
<span class="item-field-label-medium">Informatif</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4 class="items-title-text">Souffle de Mouvement</h4>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each sorts.soufflemouvement as |niveau key|}}
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h4><label class="items-title-text">Niveau {{key}} {{niveau.nomNiveau}}</label></h4>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if @root.isGM}}
|
||||||
|
<a class="item-control item-add" data-type="sort" data-sort-competence={{magie.name}}
|
||||||
|
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each niveau.sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort">{{sort.name}}</a></span>
|
||||||
|
{{#if sort.system.informatif}}
|
||||||
|
<span class="item-field-label-medium">Informatif</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
<h4 class="items-title-text">Souffle de l'Esprit</h4>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each sorts.souffleesprit as |niveau key|}}
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h4><label class="items-title-text">Niveau {{key}} {{niveau.nomNiveau}}</label></h4>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if @root.isGM}}
|
||||||
|
<a class="item-control item-add" data-type="sort" data-sort-competence={{magie.name}}
|
||||||
|
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each niveau.sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort">{{sort.name}}</a></span>
|
||||||
|
{{#if sort.system.informatif}}
|
||||||
|
<span class="item-field-label-medium">Informatif</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{else}}
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each sorts as |niveau key|}}
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h4><label class="items-title-text">Niveau {{key}} {{niveau.nomNiveau}}</label></h4>
|
||||||
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if @root.isGM}}
|
||||||
|
<a class="item-control item-add" data-type="sort" data-sort-competence={{magie.name}}
|
||||||
|
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each niveau.sorts as |sort key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||||
|
<img class="item-name-img" src="{{sort.img}}" />
|
||||||
|
<span class="item-field-label-long2 roll-style"><a class="roll-sort">{{sort.name}}</a></span>
|
||||||
|
|
||||||
|
{{#if sort.system.informatif}}
|
||||||
|
<span class="item-field-label-medium">Informatif</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Equipement Tab --}}
|
||||||
|
<div class="tab equipement" data-group="primary" data-tab="equipement">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">Equipements</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="equipement" title="Créer un équipement"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each equipements as |equip key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{equip._id}}" data-item-type="equipement">
|
||||||
|
<img class="item-name-img" src="{{equip.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{equip.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Contact Tab --}}
|
||||||
|
<div class="tab contact" data-group="primary" data-tab="contact">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long3">
|
||||||
|
<h3><label class="items-title-text">Contacts, Allies et Ennemis</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="contact" title="Créer un contact"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#each contacts as |contactList idx|}}
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header">
|
||||||
|
<h3><label class="items-title-text">{{contactList.label}}</label></h3>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-add" data-type="contact" title="Créer un contact"><i
|
||||||
|
class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each contactList.list as |contact key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{contact._id}}" data-item-type="contact">
|
||||||
|
<img class="item-name-img" src="{{contact.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{contact.name}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Biography Tab --}}
|
||||||
|
<div class="tab biodata" data-group="primary" data-tab="biodata">
|
||||||
|
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header item-field-label-long2-img">
|
||||||
|
<h3><label class="items-title-text">Profils</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">Type</label>
|
||||||
|
</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#each profils as |profil key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{profil._id}}" data-item-type="profil">
|
||||||
|
<img class="item-name-img" src="{{profil.img}}" />
|
||||||
|
<span class="item-field-label-long2">{{profil.name}}</span>
|
||||||
|
<span class="item-field-label-medium">{{upperFirst profil.system.profiltype}}</span>
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<div class="grid-2col">
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Nom humain</label> <input type="text" class=""
|
||||||
|
name="system.biodata.nomhumain" value="{{system.biodata.nomhumain}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Activités</label> <input type="text" class=""
|
||||||
|
name="system.biodata.activites" value="{{system.biodata.activites}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Apparence masquée</label> <input type="text" class=""
|
||||||
|
name="system.biodata.apparencemasquee" value="{{system.biodata.apparencemasquee}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Apparence démasquée</label> <input type="text" class=""
|
||||||
|
name="system.biodata.apparencedemasquee" value="{{system.biodata.apparencedemasquee}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Titre et Famille</label> <input type="text" class=""
|
||||||
|
name="system.biodata.titrefamille" value="{{system.biodata.titrefamille}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Factions féériques</label> <input type="text" class=""
|
||||||
|
name="system.biodata.factionfeerique" value="{{system.biodata.factionfeerique}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Traits de caractères dominants</label> <input type="text" class=""
|
||||||
|
name="system.biodata.traitscaracteres" value="{{system.biodata.traitscaracteres}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long2">Langues</label> <input type="text" class=""
|
||||||
|
name="system.biodata.langues" value="{{system.biodata.langues}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid grid-3col">
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Fortune</label>
|
||||||
|
<input type="text" class="" name="system.biodata.fortune" value="{{system.biodata.fortune}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Genre</label>
|
||||||
|
<input type="text" class="" name="system.biodata.sex" value="{{system.biodata.sex}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Age</label>
|
||||||
|
<input type="text" class="" name="system.biodata.age" value="{{system.biodata.age}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{#if isGM}}
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Fiche de Magie ?</label>
|
||||||
|
<input type="checkbox" class="item-field-label-short edit-item-data" name="system.biodata.magie"
|
||||||
|
{{checked system.biodata.magie}} />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Taille Masquée</label>
|
||||||
|
<input type="text" class="" name="system.biodata.taillemasquee" value="{{system.biodata.taillemasquee}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Taille Démasquée</label>
|
||||||
|
<input type="text" class="" name="system.biodata.tailledemasquee"
|
||||||
|
value="{{system.biodata.tailledemasquee}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Type de taille</label>
|
||||||
|
<input type="text" class="" name="system.experience.typetaille" value="{{system.experience.typetaille}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Points d'héritage</label>
|
||||||
|
<input type="text" class="" name="system.rang.heritage.value" value="{{system.rang.heritage.value}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Poids Masqué</label>
|
||||||
|
<input type="text" class="" name="system.biodata.poidsmasquee" value="{{system.biodata.poidsmasquee}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">Poids Démasqué</label>
|
||||||
|
<input type="text" class="" name="system.biodata.poidsdemasquee"
|
||||||
|
value="{{system.biodata.poidsdemasquee}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">XP</label>
|
||||||
|
<input type="text" class="" name="system.experience.value" value="{{system.experience.value}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<label class="generic-label">XP pour tricher</label>
|
||||||
|
<input type="text" class="" name="system.experience.pourtricher"
|
||||||
|
value="{{system.experience.pourtricher}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if isGM}}
|
||||||
|
{{#if system.biodata.magie}}
|
||||||
|
<div class="magie-text-helper"><strong>Magie activée : </strong>Glissez/Déplacez la/les compétences de Magie
|
||||||
|
nécessaires
|
||||||
|
depuis le compendium dans l'onglet "Magie", puis faites de même pour les sorts.
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab notes" data-group="primary" data-tab="notes">
|
||||||
|
<span>
|
||||||
|
<h3>Historique</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<h3>Notes diverses</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor playernotes target="system.biodata.playernotes" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<h3>Rêves étranges</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor revesetranges target="system.biodata.revesetranges" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<h3>Secrets découverts</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor secretsdecouverts target="system.biodata.secretsdecouverts" button=true owner=owner
|
||||||
|
editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<h3>Questions en suspens</h3>
|
||||||
|
</span>
|
||||||
|
<div class="medium-editor item-text-long-line">
|
||||||
|
{{editor questions target="system.biodata.questions" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
30
templates/chat-assommer-result.hbs
Normal file
30
templates/chat-assommer-result.hbs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<div class="chat-message-header">
|
||||||
|
{{#if actorImg}}
|
||||||
|
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
||||||
|
{{/if}}
|
||||||
|
<h4 class=chat-actor-name>{{alias}}</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
{{#if actionImg}}
|
||||||
|
<div>
|
||||||
|
<img class="chat-icon" src="{{actionImg}}" alt="{{name}}" />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>Assomer {{defenderName}} en état de : {{etatAssommer}}</li>
|
||||||
|
|
||||||
|
{{#if isSuccess}}
|
||||||
|
<li>Marge : {{marge}}</li>
|
||||||
|
<li>{{defenderName}} est assomé pour {{dureeAssommer}} minutes !</li>
|
||||||
|
{{else}}
|
||||||
|
<li>{{defenderName}} n'a pas été assomé et est conscient la tentative !</li>
|
||||||
|
{{/if}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
43
templates/chat-cc-result.hbs
Normal file
43
templates/chat-cc-result.hbs
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<div class="chat-message-header">
|
||||||
|
{{#if actorImg}}
|
||||||
|
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
||||||
|
{{/if}}
|
||||||
|
<h4 class=chat-actor-name>{{alias}}</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
{{#if actionImg}}
|
||||||
|
<div>
|
||||||
|
<img class="chat-icon" src="{{actionImg}}" alt="{{name}}" />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>Défense de {{defenderName}} : {{defenderMode}} ({{defenderValue}})</li>
|
||||||
|
|
||||||
|
{{#if isSuccess}}
|
||||||
|
<li>Marge : {{marge}}</li>
|
||||||
|
<li>Degats de l'arme : {{degatsArme}}</li>
|
||||||
|
|
||||||
|
{{#if (eq attaqueCible "membre")}}
|
||||||
|
<li><strong>Cible un membre : La cible a -2 de malus sur ces actions avec ce membre (mouvement 2 si jambes)</strong>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq attaqueCible "main")}}
|
||||||
|
<li><strong>Cible une main : La cible ne peut plus utiliser sa main</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if isCriticalSuccess}}
|
||||||
|
<Li>Critique : Aubaine ou +2 aux dégats ci-dessus</li>
|
||||||
|
{{/if}}
|
||||||
|
{{else}}
|
||||||
|
<li>Echec face à la {{defenderMode}} !</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
145
templates/chat-generic-result.hbs
Normal file
145
templates/chat-generic-result.hbs
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
<div class="chat-message-header">
|
||||||
|
{{#if actorImg}}
|
||||||
|
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
||||||
|
{{/if}}
|
||||||
|
<h4 class=chat-actor-name>{{alias}}</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
{{#if actionImg}}
|
||||||
|
<div>
|
||||||
|
<img class="chat-icon" src="{{actionImg}}" alt="{{name}}" />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li class="heritiers-roll"><strong>Caractéristique :</strong> {{carac.label}} ({{carac.value}})</li>
|
||||||
|
|
||||||
|
{{#if rang}}
|
||||||
|
<li><strong>{{rang.label}} :</strong> {{rang.value}}</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if competence}}
|
||||||
|
<li><strong>Compétence :</strong> {{competence.name}} ({{competence.system.niveau}})</li>
|
||||||
|
{{#if useSpecialite}}
|
||||||
|
<li>Bonus de spécialité +1</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if arme}}
|
||||||
|
<li><strong>Attaque avec : </strong>{{arme.name}}</li>
|
||||||
|
{{#if (eq mode "assommer")}}
|
||||||
|
<li>Attaque pour assommer</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if pouvoir}}
|
||||||
|
<li><strong>Pouvoir</strong> : {{pouvoir.name}}</li>
|
||||||
|
<li><strong>Effet</strong> : {{pouvoir.system.effet}}</li>
|
||||||
|
{{#if (ne pouvoir.system.duree "")}}
|
||||||
|
<li><strong>Durée :</strong> {{pouvoir.system.duree}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne pouvoir.system.portee "")}}
|
||||||
|
<li><strong>Portée :</strong> {{pouvoir.system.portee}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne pouvoir.system.resistance "")}}
|
||||||
|
<li><strong>Résistance :</strong> {{pouvoir.system.resistance}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne pouvoir.system.resistanceautre "")}}
|
||||||
|
<li><strong>Résistance autre :</strong> {{pouvoir.system.resistanceautre}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne pouvoir.system.zoneeffet "")}}
|
||||||
|
<li><strong>Zone d'effet :</strong> {{pouvoir.system.zoneeffet}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne pouvoir.system.cibles "")}}
|
||||||
|
<li><strong>Cibles :</strong> {{pouvoir.system.cibles}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne pouvoir.system.virulence "")}}
|
||||||
|
<li><strong>Virulence :</strong> {{pouvoir.system.virulence}}</li>
|
||||||
|
{{/if}}
|
||||||
|
<li><strong>Points d'usage consommés :</strong> {{pouvoirPointsUsage}}</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if sort}}
|
||||||
|
<li><strong>Sort :</strong> {{sort.name}}</li>
|
||||||
|
{{#if (ne sort.system.resistance "")}}
|
||||||
|
<li><strong>Résistance :</strong> {{sort.system.resistance}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne sort.system.concentration "")}}
|
||||||
|
<li><strong>Concentration :</strong> {{sort.system.concentration}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne sort.system.duree "")}}
|
||||||
|
<li><strong>Durée :</strong> {{sort.system.duree}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne sort.system.portee "")}}
|
||||||
|
<li><strong>Portée :</strong> {{sort.system.portee}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne sort.system.ingredients "")}}
|
||||||
|
<li><strong>Ingrédients :</strong> {{sort.system.ingredients}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (ne sort.system.coutactivation "")}}
|
||||||
|
<li><strong>Coût d'activation :</strong> {{sort.system.coutactivation}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if spendEsprit}}
|
||||||
|
<li><strong>Points d'Esprit dépensé :</strong> 1</li>
|
||||||
|
{{else}}
|
||||||
|
<li><strong>Coût en points d'Âme</strong> : {{sortPointsAme}}</li>
|
||||||
|
{{#if (eq sort.system.competence "Magie du Clan")}}
|
||||||
|
<li><strong>Souffle :</strong> {{sort.system.souffle}}</li>
|
||||||
|
<li><strong>Cout en PV :</strong> 2</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if forcedValue}}
|
||||||
|
<li>Vous dépensez 2 points de Tricherie et utilisez une face adjacente du dé !</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if noRoll}}
|
||||||
|
{{else}}
|
||||||
|
<li><strong>Formule :</strong> {{diceFormula}}</li>
|
||||||
|
<li><strong>Résultat du dé :</strong> {{diceResult}} </li>
|
||||||
|
|
||||||
|
{{#if adjacentFaces}}
|
||||||
|
<li><strong>Faces adjacentes :</strong>
|
||||||
|
{{#each adjacentFaces as |value key|}}
|
||||||
|
<a class="roll-tricherie-2" data-dice-value="{{value}}">{{value}}</a>
|
||||||
|
{{/each}}
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<li><strong>Total : {{finalResult}} {{#if (gt sdValue "-1")}}(Marge : {{marge}}){{/if}}</strong></li>
|
||||||
|
|
||||||
|
|
||||||
|
{{#if (gt sdValue "-1")}}
|
||||||
|
<li><strong>Seuil de difficulté :</strong> {{sdValue}}</li>
|
||||||
|
{{#if isSuccess}}
|
||||||
|
<li class="chat-success">Succès...
|
||||||
|
</li>
|
||||||
|
{{else}}
|
||||||
|
<li class="chat-failure">Echec...</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if isBrelan}}
|
||||||
|
<li class="chat-success">Brelan sur 3 dés !</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if isSuite}}
|
||||||
|
<li class="chat-success">Suite sur 3 dés !</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if isCriticalSuccess}}
|
||||||
|
<li class="chat-success">Réussite Critique !!!</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if isCriticalFailure}}
|
||||||
|
<li class="chat-failure">Echec Critique !!!</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
6
templates/editor-notes-gm.hbs
Normal file
6
templates/editor-notes-gm.hbs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{{#if data.isGM}}
|
||||||
|
<h3>GM Notes : </h3>
|
||||||
|
<div class="form-group editor">
|
||||||
|
{{editor data.biodata.gmnotes target="system.biodata.gmnotes" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
38
templates/item-accessoire-sheet.hbs
Normal file
38
templates/item-accessoire-sheet.hbs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Lieu : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.lieu"
|
||||||
|
value="{{system.lieu}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Prix : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.prix"
|
||||||
|
value="{{system.prix}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Quantité : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.quantite"
|
||||||
|
value="{{system.quantite}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Equipé ? : </label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.equipped" {{checked system.equipped}}/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
134
templates/item-arme-sheet.hbs
Normal file
134
templates/item-arme-sheet.hbs
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Catégorie : </label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.categorie"
|
||||||
|
value="{{system.categorie}}" data-dtype="string">
|
||||||
|
{{selectOptions config.categorieArme selected=system.categorie}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Type : </label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.armetype"
|
||||||
|
value="{{system.armetype}}" data-dtype="string">
|
||||||
|
{{selectOptions config.typeArme selected=system.armetype}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Degats : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.degats" value="{{system.degats}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Precision : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.precision"
|
||||||
|
value="{{system.precision}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Cadence : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.cadence"
|
||||||
|
value="{{system.cadence}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Enraiement : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.enraiement"
|
||||||
|
value="{{system.enraiement}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Magasin : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.magasin"
|
||||||
|
value="{{system.magasin}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Charge : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.charge"
|
||||||
|
value="{{system.charge}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Portée : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.portee"
|
||||||
|
value="{{system.portee}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Légalité : </label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.legalite"
|
||||||
|
value="{{system.legalite}}" data-dtype="string">
|
||||||
|
{{selectOptions config.armeLegalite selected=system.legalite}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Dissimulation : </label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.dissimulation"
|
||||||
|
value="{{system.dissimulation}}" data-dtype="string">
|
||||||
|
{{selectOptions config.armeDissimulation selected=system.dissimulation}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Zone : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.zone"
|
||||||
|
value="{{system.zone}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Temps : </label>
|
||||||
|
<input type="text" class="item-field-label-long" name="system.temps"
|
||||||
|
value="{{system.temps}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Allumage : </label>
|
||||||
|
<input type="text" class="item-field-label-long" name="system.allumage"
|
||||||
|
value="{{system.allumage}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Special : </label>
|
||||||
|
<input type="text" class="item-field-label-long" name="system.special"
|
||||||
|
value="{{system.special}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Rareté : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rarete"
|
||||||
|
value="{{system.rarete}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Quantité : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.quantite"
|
||||||
|
value="{{system.quantite}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Prix : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.prix"
|
||||||
|
value="{{system.prix}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Equipé : </label>
|
||||||
|
<input type="checkbox" name="system.equipped" {{checked system.equipped}} />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
17
templates/item-atoutfeerique-sheet.hbs
Normal file
17
templates/item-atoutfeerique-sheet.hbs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<!-- Les atouts féériques n'ont que la description -->
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Les atouts féériques sont décrits dans l'onglet Description</label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
17
templates/item-avantage-sheet.hbs
Normal file
17
templates/item-avantage-sheet.hbs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<!-- Les avantages n'ont que la description -->
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Les avantages sont décrits dans l'onglet Description</label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
79
templates/item-capacitenaturelle-sheet.hbs
Normal file
79
templates/item-capacitenaturelle-sheet.hbs
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs}}
|
||||||
|
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Type </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.pouvoirtype" value="{{system.pouvoirtype}}" data-dtype="string">
|
||||||
|
{{selectOptions config.typePouvoir selected=system.pouvoirtype}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Activation </label>
|
||||||
|
<input type="text" class="padd-right color-class-common item-field-label-long3"
|
||||||
|
name="system.activation" value="{{system.activation}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Cibles </label>
|
||||||
|
<input type="text" class="padd-right color-class-common item-field-label-long3"
|
||||||
|
name="system.cibles" value="{{system.cibles}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Effet </label>
|
||||||
|
<textarea rows="6" type="text" class="padd-right color-class-common item-field-label-long3" name="system.effet"
|
||||||
|
data-dtype="String">{{system.effet}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Portée </label>
|
||||||
|
<input type="text" class="padd-right color-class-common item-field-label-long3"
|
||||||
|
name="system.portee" value="{{system.portee}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Résistance</label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.resistance" value="{{system.resistance}}" data-dtype="string">
|
||||||
|
{{selectOptions config.resistancePouvoir selected=system.resistance}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if (eq system.resistance "autre")}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Résistance (Autre) </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.resistanceautre" value="{{system.resistanceautre}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Virulence (ie Poison) ? </label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.isvirulence" {{checked system.isvirulence}}/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if system.isvirulence}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Virulence </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.virulence" value="{{system.virulence}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
81
templates/item-competence-sheet.hbs
Normal file
81
templates/item-competence-sheet.hbs
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Catégorie </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.categorie" value="{{system.categorie}}" data-dtype="string">
|
||||||
|
{{selectOptions config.competenceCategorie selected=system.categorie}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Profil </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text" name="system.profil"
|
||||||
|
value="{{system.profil}}" data-dtype="string">
|
||||||
|
{{selectOptions config.competenceProfil selected=system.profil labelAttr="name"}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Compétence de Prédilection ? </label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.predilection" {{checked system.predilection}} />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Niveau </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.niveau" value="{{system.niveau}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if (eq system.profil "magie")}}
|
||||||
|
{{#if (eq item.name "Magie du Clan")}}
|
||||||
|
{{#each system.nomniveausouffle.soufflecombat as |niveau key|}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Niveau {{key}} Souffle du Combat</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long"
|
||||||
|
name="system.nomniveausouffle.soufflecombat.{{key}}" value="{{niveau}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{#each system.nomniveausouffle.soufflemouvement as |niveau key|}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Niveau {{key}} Souffle du Mouvement</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long"
|
||||||
|
name="system.nomniveausouffle.soufflemouvement.{{key}}" value="{{niveau}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{#each system.nomniveausouffle.souffleesprit as |niveau key|}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Niveau {{key}} Souffle de l'Esprit</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long"
|
||||||
|
name="system.nomniveausouffle.souffleesprit.{{key}}" value="{{niveau}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{else}}
|
||||||
|
{{#each system.nomniveau as |niveau key|}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Nom du Niveau {{key}}</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long"
|
||||||
|
name="system.nomniveau.{{key}}" value="{{niveau}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<h3>Spécialités</h3>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
22
templates/item-contact-sheet.hbs
Normal file
22
templates/item-contact-sheet.hbs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Type : </label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.contacttype" value="{{system.contacttype}}" data-dtype="String">
|
||||||
|
{{selectOptions config.typeContact selected=system.contacttype}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
17
templates/item-desavantage-sheet.hbs
Normal file
17
templates/item-desavantage-sheet.hbs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<!-- Les désavantages n'ont que la description -->
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Les désavantages sont décrits dans l'onglet Description</label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
38
templates/item-equipement-sheet.hbs
Normal file
38
templates/item-equipement-sheet.hbs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Rareté : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.rarete"
|
||||||
|
value="{{system.rarete}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Prix : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.prix"
|
||||||
|
value="{{system.prix}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Quantité : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.quantite"
|
||||||
|
value="{{system.quantite}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Equipé ? : </label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.equipped" {{checked system.equipped}}/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
78
templates/item-fee-sheet.hbs
Normal file
78
templates/item-fee-sheet.hbs
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs}}
|
||||||
|
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs}}
|
||||||
|
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Type de féé</label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.feetype"
|
||||||
|
value="{{system.feetype}}" data-dtype="string">
|
||||||
|
{{selectOptions config.typeFee selected=system.feetype}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Avantages</label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<textarea rows="5" cols="60" name="system.avantages" data-dtype="String">{{system.avantages}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Désavantages</label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<textarea rows="5" cols="60" name="system.desavantages" data-dtype="String">{{system.desavantages}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Capacités naturelles</label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<textarea rows="5" cols="60" name="system.capacitenaturelles" data-dtype="String">{{system.capacitenaturelles}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Pouvoirs féériques (Masqués)</label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<textarea rows="5" cols="60" name="system.pouvoirsfeeriquesmasque" data-dtype="String">{{system.pouvoirsfeeriquesmasque}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Pouvoirs féériques (Démasqués)</label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<textarea rows="5" cols="60" name="system.pouvoirsfeeriquesdemasque" data-dtype="String">{{system.pouvoirsfeeriquesdemasque}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Atouts féériques</label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<textarea rows="5" cols="60" name="system.atoutsfeeriques" data-dtype="String">{{system.atoutsfeeriques}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Compétences</label>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<textarea rows="5" cols="60" name="system.competences" data-dtype="String">{{system.competences}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
157
templates/item-pouvoir-sheet.hbs
Normal file
157
templates/item-pouvoir-sheet.hbs
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs}}
|
||||||
|
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Masqué/Démasque </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.masquetype" value="{{system.masquetype}}" data-dtype="string">
|
||||||
|
{{selectOptions config.masquePouvoir selected=system.masquetype}}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Type </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.pouvoirtype" value="{{system.pouvoirtype}}" data-dtype="string">
|
||||||
|
{{selectOptions config.typePouvoir selected=system.pouvoirtype}}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Niveau </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.niveau" value="{{system.niveau}}" data-dtype="string">
|
||||||
|
{{selectOptions config.niveauPouvoir selected=system.niveau}}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Activation </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.activation" value="{{system.activation}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Jet nécessaire ? </label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.istest" {{checked system.istest}}/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if system.istest}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Base </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.feeriemasque" value="{{system.feeriemasque}}" data-dtype="string">
|
||||||
|
{{selectOptions config.baseTestPouvoir selected=system.feeriemasque}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if (eq system.feeriemasque "autre")}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Jet </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3" name="system.testautre" value="{{system.testautre}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{else}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">+ Carac </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.carac" value="{{system.carac}}" data-dtype="string">
|
||||||
|
{{selectOptions config.caracList selected=system.carac}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Points d'usage max/jour </label>
|
||||||
|
{{#if (eq usageMax -1)}}
|
||||||
|
<label class="generic-label item-field-label-short">Inconnu</label>
|
||||||
|
{{else}}
|
||||||
|
<label class="generic-label item-field-label-short">{{usageMax}}</label>
|
||||||
|
{{/if}}
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Points d'usage restants </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.pointsusagecourant" value="{{system.pointsusagecourant}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Cibles </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.cibles" value="{{system.cibles}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Durée </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3" name="system.duree" value="{{system.duree}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Effet </label>
|
||||||
|
<textarea rows="6" type="text" class="padd-right color-class-common item-field-label-long3" name="system.effet"
|
||||||
|
data-dtype="String">{{system.effet}}</textarea>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Portée </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.portee" value="{{system.portee}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Résistance</label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.resistance" value="{{system.resistance}}" data-dtype="string">
|
||||||
|
{{selectOptions config.resistancePouvoir selected=system.resistance}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if (eq system.resistance "autre")}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Résistance (Autre) </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.resistanceautre" value="{{system.resistanceautre}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Zone d'effet </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.zoneeffet" value="{{system.zoneeffet}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Virulence (ie Poison) ? </label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.isvirulence" {{checked system.isvirulence}}/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if system.isvirulence}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Virulence </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.virulence" value="{{system.virulence}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
20
templates/item-profil-sheet.hbs
Normal file
20
templates/item-profil-sheet.hbs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Type : </label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.profiltype" value="{{system.profiltype}}" data-dtype="String">
|
||||||
|
{{selectOptions config.typeProfil selected=system.profiltype}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
65
templates/item-protection-sheet.hbs
Normal file
65
templates/item-protection-sheet.hbs
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs this}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs this}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Type : </label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.protectiontype"
|
||||||
|
value="{{system.protectiontype}}" data-dtype="string">
|
||||||
|
{{selectOptions config.typeProtection selected=system.protectiontype}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="item-field-label-long">Valeur de protection : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.points" value="{{system.points}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Effets secondaires : </label>
|
||||||
|
<input type="text" class="item-field-label-long" name="system.effetsecondaire"
|
||||||
|
value="{{system.effetsecondaire}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Malus d'agilité : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.malusagilite"
|
||||||
|
value="{{system.malusagilite}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Dissimulation : </label>
|
||||||
|
<select class="item-field-label-long" type="text" name="system.dissimulation"
|
||||||
|
value="{{system.dissimulation}}" data-dtype="string">
|
||||||
|
{{selectOptions config.armeDissimulation selected=system.dissimulation}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Prix : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.prix"
|
||||||
|
value="{{system.prix}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Quantité : </label>
|
||||||
|
<input type="text" class="item-field-label-short" name="system.quantite"
|
||||||
|
value="{{system.quantite}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long">Equipé ? : </label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.equipped" {{checked system.equipped}}/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
134
templates/item-sort-sheet.hbs
Normal file
134
templates/item-sort-sheet.hbs
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
<section class="{{cssClass}}" autocomplete="off">
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-header.hbs}}
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-nav.hbs}}
|
||||||
|
|
||||||
|
|
||||||
|
{{> systems/fvtt-les-heritiers/templates/partial-item-description.hbs}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Compétence de Magie </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||||
|
name="system.competence" value="{{system.competence}}" data-dtype="String">
|
||||||
|
{{selectOptions competencesMagie selected=system.competence valueAttr="name" labelAttr="name"}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if (eq system.competence "Magie du Clan")}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Souffle </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text" name="system.souffle"
|
||||||
|
value="{{system.souffle}}" data-dtype="string">
|
||||||
|
{{selectOptions config.soufflesMagieDuClan selected=system.souffle}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Carac 1 </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text" name="system.carac1"
|
||||||
|
value="{{system.carac1}}" data-dtype="string">
|
||||||
|
{{selectOptions config.caracList selected=system.carac1}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Carac 2 </label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text" name="system.carac2"
|
||||||
|
value="{{system.carac2}}" data-dtype="string">
|
||||||
|
<option value="none">Aucune</option>
|
||||||
|
{{selectOptions config.caracList selected=system.carac2}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Niveau</label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text" name="system.niveau"
|
||||||
|
value="{{system.niveau}}" data-dtype="string">
|
||||||
|
{{selectOptions config.listNiveauSort selected=system.niveau}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Sort Informatif?</label>
|
||||||
|
<input type="checkbox" name="system.informatif" {{#if system.informatif}} checked {{/if}} />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if system.informatif}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Texte Informatif</label>
|
||||||
|
<textarea class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.texteinformatif" data-dtype="String">{{system.texteinformatif}}</textarea>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2"
|
||||||
|
data-tooltip="A renseigner si le SD n'est pas celui du niveau par défaut">SD spécial</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.sdspecial" value="{{system.sdspecial}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Rang</label>
|
||||||
|
<select class="status-small-label color-class-common item-field-label-long" type="text" name="system.rang"
|
||||||
|
value="{{system.rang}}" data-dtype="string">
|
||||||
|
{{selectOptions config.listRangSort selected=system.rang}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Durée </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.duree" value="{{system.duree}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Portée </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.portee" value="{{system.portee}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Concentration </label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.concentration" value="{{system.concentration}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Résistance</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.resistance" value="{{system.resistance}}" data-dtype="String" />
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Critique</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.critique" value="{{system.critique}}" data-dtype="String" />
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Ingrédients</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.ingredients" value="{{system.ingredients}}" data-dtype="String" />
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label item-field-label-long2">Cout spécial d'activation</label>
|
||||||
|
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"
|
||||||
|
name="system.coutactivation" value="{{system.coutactivation}}" data-dtype="String" />
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
24
templates/partial-actor-equipment.hbs
Normal file
24
templates/partial-actor-equipment.hbs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{equip._id}}">
|
||||||
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" src="{{equip.img}}" /></a>
|
||||||
|
{{#if (eq level 1)}}
|
||||||
|
<span class="item-name-label">{{equip.name}}</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-name-label-level2">{{equip.name}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<span class="item-field-label-long"><label>
|
||||||
|
{{equip.system.quantity}}
|
||||||
|
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
|
||||||
|
</label>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
{{#if (eq level 1)}}
|
||||||
|
<a class="item-control item-equip" title="Worn">{{#if equip.system.equipped}}<i
|
||||||
|
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
{{/if}}
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</section>
|
||||||
6
templates/partial-item-description.hbs
Normal file
6
templates/partial-item-description.hbs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<div class="tab description" data-group="primary" data-tab="description">
|
||||||
|
<div class="editor">
|
||||||
|
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
9
templates/partial-item-header.hbs
Normal file
9
templates/partial-item-header.hbs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<header class="sheet-header">
|
||||||
|
<div class="flexrow background-sheet-header">
|
||||||
|
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
</section>
|
||||||
6
templates/partial-item-nav.hbs
Normal file
6
templates/partial-item-nav.hbs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{{!-- Sheet Tab Navigation --}}
|
||||||
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
|
<a class="item" data-tab="description">Description</a>
|
||||||
|
<a class="item" data-tab="details">Details</a>
|
||||||
|
</nav>
|
||||||
|
</section>
|
||||||
49
templates/partial-utile-skills.hbs
Normal file
49
templates/partial-utile-skills.hbs
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
<li class="item flexrow">
|
||||||
|
{{#if isPNJ}}
|
||||||
|
<span class="item-field-label-long roll-style">
|
||||||
|
<a class="roll-root-competence item-field-label-short" data-attr-key="{{keyProfil}}">
|
||||||
|
<h3><label class="items-title-text">{{upperFirst keyProfil}}</label></h3>
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-long">
|
||||||
|
<h3><label class="items-title-text">{{upperFirst keyProfil}}</label></h3>
|
||||||
|
</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<label class="short-label">Niveau</label>
|
||||||
|
</span>
|
||||||
|
{{#if isPNJ}}
|
||||||
|
<span class="item-field-label-short">
|
||||||
|
<input type="text" data-dtype="Number" class="item-field-label-short"
|
||||||
|
name="system.competences.{{keyProfil}}.niveau" value="{{skillDef.niveau}}">
|
||||||
|
</span>
|
||||||
|
{{/if}}
|
||||||
|
<div class="item-filler"> </div>
|
||||||
|
</li>
|
||||||
|
{{#each skillDef.skills as |skill key|}}
|
||||||
|
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
|
||||||
|
<span class="item-field-label-long roll-style"><a class="roll-competence item-field-label-short"
|
||||||
|
data-attr-key="tochoose">{{skill.name}}</a></span>
|
||||||
|
<select class="item-field-label-short edit-item-data" type="text" data-item-field="niveau"
|
||||||
|
value="{{skill.system.niveau}}" data-dtype="Number">
|
||||||
|
{{selectOptions @root.config.listNiveau selected=skill.system.niveau}}
|
||||||
|
</select>
|
||||||
|
<input type="checkbox" class="item-field-label-short edit-item-data" data-tooltip="Prédilection" data-item-field="predilection" {{checked
|
||||||
|
skill.system.predilection}} />
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{#if (count skill.specList)}}
|
||||||
|
<span class="specialisarion-margin specialisation-label item-field-label-long2">{{skill.specList}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
9
templates/post-item.hbs
Normal file
9
templates/post-item.hbs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<div class="post-item" data-transfer="{{transfer}}">
|
||||||
|
<h3><b>{{name}}</b></h3>
|
||||||
|
{{#if img}}
|
||||||
|
<img class="chat-img" src="{{img}}" title="{{name}}" />
|
||||||
|
{{/if}}
|
||||||
|
<h4><b>Description : </b></h4>
|
||||||
|
<p class="card-content">{{{system.description}}}</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
168
templates/roll-dialog-generic.hbs
Normal file
168
templates/roll-dialog-generic.hbs
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
<form class="skill-roll-dialog">
|
||||||
|
<header class="roll-dialog-header">
|
||||||
|
{{#if img}}
|
||||||
|
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||||
|
{{/if}}
|
||||||
|
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
{{#if (eq mode "rang")}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">{{rang.label}}</span>
|
||||||
|
<span class="roll-dialog-label">{{rang.value}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq mode "carac")}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Caracteristique</span>
|
||||||
|
<span class="roll-dialog-label">{{carac.label}} ({{carac.value}})</span>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Caracteristique</span>
|
||||||
|
<select class="status-small-label color-class-common" id="caracKey" type="text" name="caracKey" value="caracKey"
|
||||||
|
data-dtype="string">
|
||||||
|
{{selectOptions caracList selected=caracKey valueAttr="abbrev" nameAttr="abbrev" labelAttr="label"}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if caracMessage}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">{{caracMessage}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if competence}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">{{competence.name}}</span>
|
||||||
|
<span class="small-label roll-dialog-label">{{competence.system.niveau}}</span>
|
||||||
|
</div>
|
||||||
|
{{#if competence.nbSpec}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Spécialités : {{competence.specList}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Bonus de spécialité ?</span>
|
||||||
|
<input type="checkbox" class="item-field-label-short" id="useSpecialite" {{checked useSpecialite}} />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if pouvoir}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Pouvoir : </span>
|
||||||
|
<span class="small-label roll-dialog-label">{{pouvoir.name}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Activation : </span>
|
||||||
|
<span class="small-label roll-dialog-label">{{pouvoir.system.activation}}</span>
|
||||||
|
</div>
|
||||||
|
{{#if pouvoirBase}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">{{pouvoirBase.label}} : </span>
|
||||||
|
<span class="small-label roll-dialog-label">{{pouvoirBase.value}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Points d'usage consommés : </span>
|
||||||
|
<select class="status-small-label color-class-common" id="pouvoirPointsUsage" type="Number"
|
||||||
|
name="pouvoirPointsUsage" value="pouvoirPointsUsage" data-dtype="Number">
|
||||||
|
{{selectOptions config.pointsUsageList selected=pouvoirPointsUsage}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#each rulesMalus as |malus key|}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">{{malus.name}}</span>
|
||||||
|
<span class="small-label roll-dialog-label">{{malus.value}}</span>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
{{#if (and arme arme.system.isMelee)}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Attaque à plusieurs </span>
|
||||||
|
<select class="roll-dialog-label" id="bonus-attaque-plusieurs" type="text" value="{{bonusAttaquePlusieurs}}"
|
||||||
|
data-dtype="Number">
|
||||||
|
{{selectOptions config.attaquePlusieursList selected=pouvoirPointsUsage}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Attaque dans le dos ?</span>
|
||||||
|
<input type="checkbox" class="item-field-label-short" id="attaqueDos" {{checked attaqueDos}} />
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Attaque à deux armes </span>
|
||||||
|
<select class="roll-dialog-label" id="bonus-attaque-deux-armes" type="text" value="{{attaqueDeuxArmes}}"
|
||||||
|
data-dtype="Number">
|
||||||
|
{{selectOptions config.attaque2ArmesListe selected=attaqueDeuxArmes valueAttr="value" nameAttr="value"
|
||||||
|
labelAttr="label"}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Seconde arme</span>
|
||||||
|
<select class="roll-dialog-label" id="bonus-attaque-seconde-arme" type="text" value="{{secondeArme}}"
|
||||||
|
data-dtype="String">
|
||||||
|
{{selectOptions armes selected=secondeArme valueAttr="id" nameAttr="id" labelAttr="name"}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if arme}}
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="roll-dialog-label">Ataque ciblée : </label>
|
||||||
|
<select class="roll-dialog-label" type="text" id="attaque-cible" value="{{attaqueCible}}" data-dtype="String">
|
||||||
|
{{selectOptions config.attaqueCible selected=attaqueCible}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if sort}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Sort : </span>
|
||||||
|
<span class="small-label roll-dialog-label">{{sort.name}} ({{sort.system.niveau}})</span>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Duree : </span>
|
||||||
|
<span class="small-label roll-dialog-label">{{sort.system.duree}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Portee : </span>
|
||||||
|
<span class="small-label roll-dialog-label">{{sort.system.portee}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Ingrédients : </span>
|
||||||
|
<span class="small-label roll-dialog-label">{{sort.system.ingredients}}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Bonus/Malus </span>
|
||||||
|
<select class="roll-dialog-label" id="bonus-malus-context" type="text" value="{{bonusMalusContext}}"
|
||||||
|
data-dtype="Number">
|
||||||
|
{{selectOptions config.bonusMalusContext selected=bonusMalusContext valueAttr="value" nameAttr="value"
|
||||||
|
labelAttr="label"}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if cacheDifficulte}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Difficulté Cachée/Inconnue</span>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Difficulté</span>
|
||||||
|
<select class="status-small-label color-class-common" id="sdValue" type="text" name="sdValue" value="sdValue"
|
||||||
|
data-dtype="string">
|
||||||
|
{{selectOptions sdList selected=sdValue}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
Reference in New Issue
Block a user