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 };