/** * Malefices system * Author: Uberwald * Software License: Prop */ /* -------------------------------------------- */ /* -------------------------------------------- */ // Import Modules import { MaleficesActor } from "./malefices-actor.js"; import { MaleficesItemSheet } from "./malefices-item-sheet.js"; import { MaleficesActorSheet } from "./malefices-actor-sheet.js"; import { MaleficesNPCSheet } from "./malefices-npc-sheet.js"; import { MaleficesUtility } from "./malefices-utility.js"; import { MaleficesCombat } from "./malefices-combat.js"; import { MaleficesItem } from "./malefices-item.js"; import { MaleficesHotbar } from "./malefices-hotbar.js" import { MaleficesCharacterSummary } from "./malefices-summary-app.js" import { MALEFICES_CONFIG } from "./malefices-config.js" import { ClassCounter} from "https://www.uberwald.me/fvtt_appcount/count-class-ready.js" /* -------------------------------------------- */ /* Foundry VTT Initialization */ /* -------------------------------------------- */ /************************************************************************************/ Hooks.once("init", async function () { console.log(`Initializing Malefices RPG`); game.system.malefices = { config: MALEFICES_CONFIG, MaleficesHotbar } /* -------------------------------------------- */ // preload handlebars templates MaleficesUtility.preloadHandlebarsTemplates(); /* -------------------------------------------- */ // Set an initiative formula for the system CONFIG.Combat.initiative = { formula: "1d6", decimals: 1 }; /* -------------------------------------------- */ game.socket.on("system.fvtt-malefices", data => { MaleficesUtility.onSocketMesssage(data) }); /* -------------------------------------------- */ // Define custom Entity classes CONFIG.Combat.documentClass = MaleficesCombat CONFIG.Actor.documentClass = MaleficesActor CONFIG.Item.documentClass = MaleficesItem /* -------------------------------------------- */ // Register sheet application classes Actors.unregisterSheet("core", ActorSheet); Actors.registerSheet("fvtt-malefices", MaleficesActorSheet, { types: ["personnage"], makeDefault: true }); Actors.registerSheet("fvtt-malefices", MaleficesNPCSheet, { types: ["pnj"], makeDefault: false }); Items.unregisterSheet("core", ItemSheet); Items.registerSheet("fvtt-malefices", MaleficesItemSheet, { makeDefault: true }); MaleficesUtility.init() }); /* -------------------------------------------- */ function welcomeMessage() { if (game.user.isGM) { ChatMessage.create({ user: game.user.id, whisper: [game.user.id], content: `
Le Livre de Base de Maléfices v4 est nécessaire pour jouer : https://arkhane-asylum.fr/en/malefices/
Maléfices et un jeu de rôle publié par Arkhane Asylum Publishing, tout les droits leur appartiennent.
Système développé par LeRatierBretonnien avec l'aide de la Dame du Lac et Malik, support sur le Discord FR de Foundry.
Commandes : /tirage pour le tirage des tarots, /carte pour tirer une simple carte et /resume pour le résumé des PJs (MJ seulement)` }); } } /* -------------------------------------------- */ /* Foundry VTT Initialization */ /* -------------------------------------------- */ Hooks.once("ready", function () { // User warning if (!game.user.isGM && game.user.character == undefined) { ui.notifications.info("Attention ! Aucun personnage relié au joueur !"); ChatMessage.create({ content: "WARNING Le joueur " + game.user.name + " n'est pas relié à un personnage !", user: game.user._id }); } ClassCounter.registerUsageCount(); welcomeMessage(); MaleficesUtility.ready() MaleficesCharacterSummary.ready() }) /* -------------------------------------------- */ /* Foundry VTT Initialization */ /* -------------------------------------------- */ Hooks.on("chatMessage", (html, content, msg) => { if (content[0] == '/') { let regExp = /(\S+)/g; let commands = content.match(regExp); if (game.system.malefices.commands.processChatCommand(commands, content, msg)) { return false; } } return true; });