133 lines
4.1 KiB
JavaScript
133 lines
4.1 KiB
JavaScript
import {
|
|
CharacterData,
|
|
VehiculeData,
|
|
CreatureData,
|
|
ItemData,
|
|
EquipmentData,
|
|
DiseaseData,
|
|
CareerData,
|
|
TalentData,
|
|
ContactData,
|
|
ArmorData,
|
|
ComputerData,
|
|
WeaponData,
|
|
ItemContainerData,
|
|
SpeciesData
|
|
} from "./models/index.mjs";
|
|
|
|
import { MGT2 } from "./config.js";
|
|
import { TravellerActor, MGT2Combatant } from "./actors/actor.js";
|
|
import { TravellerItem } from "./item.js";
|
|
import { TravellerItemSheet, TravellerCharacterSheet, TravellerVehiculeSheet, TravellerCreatureSheet } from "./applications/sheets/_module.mjs";
|
|
import { preloadHandlebarsTemplates } from "./templates.js";
|
|
//import { MGT2Helper } from "./helper.js";
|
|
import {ChatHelper} from "./chatHelper.js";
|
|
|
|
/* -------------------------------------------- */
|
|
/* Foundry VTT Initialization */
|
|
/* -------------------------------------------- */
|
|
import { registerSettings } from "./settings.js";
|
|
|
|
function registerHandlebarsHelpers() {
|
|
Handlebars.registerHelper('showDM', function (dm) {
|
|
if (dm === 0) return "0";
|
|
if (dm > 0) return `+${dm}`;
|
|
if (dm < 0) return `${dm}`;
|
|
return "";
|
|
});
|
|
}
|
|
|
|
Hooks.once("init", async function () {
|
|
CONFIG.MGT2 = MGT2;
|
|
CONFIG.Combat.initiative = {
|
|
formula: "2d6 + @initiative",
|
|
decimals: 2
|
|
};
|
|
|
|
CONFIG.Actor.trackableAttributes = {
|
|
character: {
|
|
bar: ["life",
|
|
"characteristics.strength",
|
|
"characteristics.dexterity",
|
|
"characteristics.endurance",
|
|
"characteristics.intellect",
|
|
"characteristics.education",
|
|
"characteristics.social",
|
|
"characteristics.morale",
|
|
"characteristics.luck",
|
|
"characteristics.sanity",
|
|
"characteristics.charm",
|
|
"characteristics.psionic",
|
|
"characteristics.other"
|
|
],
|
|
value: ["life.value",
|
|
"health.radiations",
|
|
"characteristics.strength.value",
|
|
"characteristics.dexterity.value",
|
|
"characteristics.endurance.value",
|
|
"characteristics.intellect.value",
|
|
"characteristics.education.value",
|
|
"characteristics.social.value",
|
|
"characteristics.morale.value",
|
|
"characteristics.luck.value",
|
|
"characteristics.sanity.value",
|
|
"characteristics.charm.value",
|
|
"characteristics.psionic.value",
|
|
"characteristics.other.value"]
|
|
},
|
|
creature: {
|
|
bar: ["life"],
|
|
value: ["life.value", "life.max", "speed", "armor", "psi"]
|
|
}
|
|
};
|
|
|
|
game.mgt2 = {
|
|
TravellerActor,
|
|
TravellerItem
|
|
};
|
|
|
|
registerHandlebarsHelpers();
|
|
registerSettings();
|
|
|
|
CONFIG.Combatant.documentClass = MGT2Combatant;
|
|
CONFIG.Actor.documentClass = TravellerActor;
|
|
CONFIG.Item.documentClass = TravellerItem;
|
|
|
|
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
|
foundry.documents.collections.Actors.registerSheet("mgt2", TravellerCharacterSheet, { types: ["character"], makeDefault: true, label: "Traveller Sheet" });
|
|
foundry.documents.collections.Actors.registerSheet("mgt2", TravellerVehiculeSheet, { types: ["vehicule"], makeDefault: true, label: "Vehicule Sheet" });
|
|
foundry.documents.collections.Actors.registerSheet("mgt2", TravellerCreatureSheet, { types: ["creature"], makeDefault: true, label: "Creature Sheet" });
|
|
|
|
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
|
foundry.documents.collections.Items.registerSheet("mgt2", TravellerItemSheet, { makeDefault: true });
|
|
|
|
Object.assign(CONFIG.Actor.dataModels, {
|
|
"character": CharacterData,
|
|
"vehicule": VehiculeData,
|
|
"creature": CreatureData
|
|
});
|
|
|
|
Object.assign(CONFIG.Item.dataModels, {
|
|
"item": ItemData,
|
|
"equipment": EquipmentData,
|
|
"disease": DiseaseData,
|
|
"career": CareerData,
|
|
"talent": TalentData,
|
|
"contact": ContactData,
|
|
"weapon": WeaponData,
|
|
"computer": ComputerData,
|
|
"armor": ArmorData,
|
|
"container": ItemContainerData,
|
|
"species": SpeciesData
|
|
});
|
|
|
|
|
|
Hooks.on("renderChatMessageHTML", (message, element, messageData) => {
|
|
ChatHelper.setupCardListeners(message, element, messageData);
|
|
});
|
|
|
|
// Preload template partials
|
|
await preloadHandlebarsTemplates();
|
|
});
|
|
|
|
export { MGT2 }; |