foundryvtt-beam-saber/module/blades.js
Peter Varaksin fee245cfcd Progress
2020-04-21 09:51:49 +03:00

69 lines
2 KiB
JavaScript

/**
* A simple and flexible system for world-building using an arbitrary collection of character and item attributes
* Author: Atropos
* Software License: GNU GPLv3
*/
// Import Modules
import { preloadHandlebarsTemplates } from "./templates.js";
// import { SimpleItemSheet } from "./item-sheet.js";
import { BladesActorSheet } from "./actor-sheet.js";
/* -------------------------------------------- */
/* Foundry VTT Initialization */
/* -------------------------------------------- */
Hooks.once("init", async function() {
console.log(`Initializing Blades In the Dark System`);
/**
* Set an initiative formula for the system
* @type {String}
*/
CONFIG.Combat.initiative = {
formula: "1d20",
decimals: 2
};
// Register sheet application classes
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("bitd", BladesActorSheet, { makeDefault: true });
// Items.unregisterSheet("core", ItemSheet);
// Items.registerSheet("bitd", SimpleItemSheet, {makeDefault: true});
preloadHandlebarsTemplates();
// Multiboxes.
Handlebars.registerHelper('multiboxes', function(selected, options) {
let html = options.fn(this);
selected.forEach(selected_value => {
if (selected_value !== false) {
const escapedValue = RegExp.escape(Handlebars.escapeExpression(selected_value));
const rgx = new RegExp(' value=\"' + escapedValue + '\"');
html = html.replace(rgx, "$& checked=\"checked\"");
}
});
return html;
});
// Trauma Counter
Handlebars.registerHelper('traumacounter', function(selected, options) {
let html = options.fn(this);
var count = selected.length;
if (count > 4) count = 4;
const rgx = new RegExp(' value=\"' + count + '\"');
return html.replace(rgx, "$& checked=\"checked\"");
});
// Equals handlebar.
Handlebars.registerHelper('eq', function (a, b, options) {
return (a === b) ? options.fn(this) : '';
});
});