/** * 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" /* -------------------------------------------- */ /* 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 }); }); /* -------------------------------------------- */ function welcomeMessage() { if (game.user.isGM) { ChatMessage.create({ user: game.user.id, whisper: [game.user.id], content: `
Bienvenu dans Malefices, le JDR qui sent le souffre !

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)` }); } } /* -------------------------------------------- */ // Register world usage statistics function registerUsageCount(registerKey) { if (game.user.isGM) { game.settings.register(registerKey, "world-key", { name: "Unique world key", scope: "world", config: false, default: "", type: String }); let worldKey = game.settings.get(registerKey, "world-key") if (worldKey == undefined || worldKey == "") { worldKey = randomID(32) game.settings.set(registerKey, "world-key", worldKey) } // Simple API counter let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"` //$.ajaxSetup({ //headers: { 'Access-Control-Allow-Origin': '*' } //}) $.ajax(regURL) } } /* -------------------------------------------- */ /* 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 }); } // CSS patch for v9 if (game.version) { let sidebar = document.getElementById("sidebar"); sidebar.style.width = "min-content"; } registerUsageCount('fvtt-malefices') 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; });