102 lines
3.1 KiB
JavaScript
102 lines
3.1 KiB
JavaScript
/* -------------------------------------------- */
|
|
import { VadentisCombat } from "./vadentis-combat.js";
|
|
|
|
/* -------------------------------------------- */
|
|
export class VadentisUtility extends Entity {
|
|
|
|
/* -------------------------------------------- */
|
|
static async preloadHandlebarsTemplates() {
|
|
|
|
const templatePaths = [
|
|
'systems/foundryvtt-vadentis/templates/actor-sheet.html',
|
|
'systems/foundryvtt-vadentis/templates/item-sheet.html',
|
|
'systems/foundryvtt-vadentis/templates/score-option-list.html',
|
|
'systems/foundryvtt-vadentis/templates/malus-option-list.html',
|
|
'systems/foundryvtt-vadentis/templates/bonus-option-list.html',
|
|
'systems/foundryvtt-vadentis/templates/editor-notes-gm.html'
|
|
]
|
|
return loadTemplates(templatePaths);
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
static registerChatCallbacks( ) {
|
|
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
static fillRange (start, end) {
|
|
return Array(end - start + 1).fill().map((item, index) => start + index);
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
static onSocketMesssage( msg ) {
|
|
if( !game.user.isGM ) return; // Only GM
|
|
|
|
if (msg.name == 'msg_declare_actions' ) {
|
|
}
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
static async loadCompendiumNames(compendium) {
|
|
const pack = game.packs.get(compendium);
|
|
let competences;
|
|
await pack.getIndex().then(index => competences = index);
|
|
return competences;
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
static async loadCompendium(compendium, filter = item => true) {
|
|
let compendiumItems = await SoSUtility.loadCompendiumNames(compendium);
|
|
|
|
const pack = game.packs.get(compendium);
|
|
let list = [];
|
|
for (let compendiumItem of compendiumItems) {
|
|
await pack.getEntity(compendiumItem._id).then(it => {
|
|
const item = it.data;
|
|
if (filter(item)) {
|
|
list.push(item);
|
|
}
|
|
});
|
|
};
|
|
return list;
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
static getDonnees( ) {
|
|
return this.loadCompendiumNames('foundryvtt-vadentis.donnees');
|
|
}
|
|
/* -------------------------------------------- */
|
|
static getEglises( ) {
|
|
return this.loadCompendiumNames('foundryvtt-vadentis.eglises');
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
static async confirmDelete(actorSheet, li) {
|
|
let itemId = li.data("item-id");
|
|
let objet = actorSheet.actor.items.find(item => item._id == itemId);
|
|
let msgTxt = "<p>Etes vous certain de souhaiter supprimer cet item ?";
|
|
let buttons = {
|
|
delete: {
|
|
icon: '<i class="fas fa-check"></i>',
|
|
label: "Oui, à supprimer",
|
|
callback: () => {
|
|
actorSheet.actor.deleteOwnedItem(itemId);
|
|
li.slideUp(200, () => actorSheet.render(false));
|
|
}
|
|
},
|
|
cancel: {
|
|
icon: '<i class="fas fa-times"></i>',
|
|
label: "Annuler"
|
|
}
|
|
}
|
|
msgTxt += "</p>";
|
|
let d = new Dialog({
|
|
title: "Confirmer la suppression",
|
|
content: msgTxt,
|
|
buttons: buttons,
|
|
default: "cancel"
|
|
});
|
|
d.render(true);
|
|
}
|
|
|
|
} |