Various fixes and enhancements
This commit is contained in:
@ -146,22 +146,22 @@ export const TEDEUM_CONFIG = {
|
||||
livre: { label: "Livres", id: "livre", value: 100 }
|
||||
},
|
||||
etapesEducation: {
|
||||
pouponniere: { label: "La Pouponnière", value: "pouponniere", agemin: 0, agemax: 6, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasMultiplier: false },
|
||||
petitsgrimauds: { label: "La classe des Petits Grimauds", value: "petitsgrimauds", agemin: 7, agemax: 12,nbCompetences: 10, nbCaracteristiques: 3, hasQuestionnaire: true, hasMultiplier: false },
|
||||
rosevie: { label: "Les Roses de la Vie", value: "rosevie", agemin: 13, agemax: 16, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasMultiplier: false },
|
||||
ageviril: { label: "L'Age Viril", value: "ageviril", agemin: 17, agemax: 17, nbCompetences: 9, nbCaracteristiques: 2, hasQuestionnaire: false, hasMultiplier: true },
|
||||
pouponniere: { label: "La Pouponnière", value: "pouponniere", agemin: 0, agemax: 6, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasDebouches: false, hasMultiplier: false, canCompetencesOpt: false },
|
||||
petitsgrimauds: { label: "La classe des Petits Grimauds", value: "petitsgrimauds", agemin: 7, agemax: 12,nbCompetences: 10, nbCaracteristiques: 3, hasDebouches: false, hasQuestionnaire: true, hasMultiplier: false, canCompetencesOpt: false },
|
||||
rosevie: { label: "Les Roses de la Vie", value: "rosevie", agemin: 13, agemax: 16, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasDebouches: true, hasMultiplier: false, canCompetencesOpt: false },
|
||||
ageviril: { label: "L'Age Viril", value: "ageviril", agemin: 17, agemax: 17, nbCompetences: 9, nbCaracteristiques: 2, hasQuestionnaire: false, hasDebouches: false, hasMultiplier: true, canCompetencesOpt: true },
|
||||
},
|
||||
origineSociale: {
|
||||
noblesseepee: { label: "Noblesse d'épée", id: "noblesseepee", caracteristiques: {entregent: 1, puissance: 1}, cagnotte: 10, cagnotteUnit: "livre", value: 1 },
|
||||
noblessecloche: { label: "Noblesse de cloche", id: "noblessecloche", caracteristiques: {entregent: 1, savoir: 1}, cagnotte: 50, cagnotteUnit: "livre", value: 2 },
|
||||
hautenoblesse: { label: "Haute noblesse (Illégitime)", id: "hautenoblesse", caracteristiques: {complexion: 1, puissance: 1}, cagnotte: 20, cagnotteUnit: "livre", value: 3 },
|
||||
hautebourgeoisie: { label: "Haute bourgeoisie", id: "hautebourgeoisie", caracteristiques: {savoir: 1, sensibilite: 1}, cagnotte: 60, cagnotteUnit: "livre",value: 4 },
|
||||
petitebourgeoisie: { label: "Petite bourgeoisie (Marchands)", caracteristiques: {entregent: 1, sensibilite: 1}, cagnotte: 20, cagnotteUnit: "livre",id: "petitebourgeoisie", value: 5 },
|
||||
artisan: { label: "Artisans", id: "artisan", caracteristiques: {adresse: 1, sensibilite: 1}, cagnotte: 10, cagnotteUnit: "livre",value: 6 },
|
||||
laboureur: { label: "Laboureurs", id: "laboureur", caracteristiques: {entregent: 1, complexion: 1}, cagnotte: 10, cagnotteUnit: "livre",value: 7 },
|
||||
domesticite: { label: "Domesticité", id: "domesticite", caracteristiques: {entregent: 1, adresse: 1}, cagnotte: 2, cagnotteUnit: "sol",value: 8 },
|
||||
paysannerie: { label: "Paysannerie", id: "paysannerie", caracteristiques: {puissance: 1, complexion: 1}, cagnotte: 1, cagnotteUnit: "sol", value: 9 },
|
||||
gueux: { label: "Gueux", id: "gueux", caracteristiques: {adresse: 1, complexion: 1}, cagnotte: 4, cagnotteUnit: "denier", value: 10 },
|
||||
noblesseepee: { label: "Noblesse d'épée", id: "noblesseepee", caracteristiques: {entregent: 1, puissance: 1}, cagnotte: 10, cagnotteUnit: "livres", value: 1 },
|
||||
noblessecloche: { label: "Noblesse de cloche", id: "noblessecloche", caracteristiques: {entregent: 1, savoir: 1}, cagnotte: 50, cagnotteUnit: "livres", value: 2 },
|
||||
hautenoblesse: { label: "Haute noblesse (Illégitime)", id: "hautenoblesse", caracteristiques: {complexion: 1, puissance: 1}, cagnotte: 20, cagnotteUnit: "livres", value: 3 },
|
||||
hautebourgeoisie: { label: "Haute bourgeoisie", id: "hautebourgeoisie", caracteristiques: {savoir: 1, sensibilite: 1}, cagnotte: 60, cagnotteUnit: "livres",value: 4 },
|
||||
petitebourgeoisie: { label: "Petite bourgeoisie (Marchands)", caracteristiques: {entregent: 1, sensibilite: 1}, cagnotte: 20, cagnotteUnit: "livres",id: "petitebourgeoisie", value: 5 },
|
||||
artisan: { label: "Artisans", id: "artisan", caracteristiques: {adresse: 1, sensibilite: 1}, cagnotte: 10, cagnotteUnit: "livres",value: 6 },
|
||||
laboureur: { label: "Laboureurs", id: "laboureur", caracteristiques: {entregent: 1, complexion: 1}, cagnotte: 10, cagnotteUnit: "livres",value: 7 },
|
||||
domesticite: { label: "Domesticité", id: "domesticite", caracteristiques: {entregent: 1, adresse: 1}, cagnotte: 2, cagnotteUnit: "sous",value: 8 },
|
||||
paysannerie: { label: "Paysannerie", id: "paysannerie", caracteristiques: {puissance: 1, complexion: 1}, cagnotte: 1, cagnotteUnit: "sous", value: 9 },
|
||||
gueux: { label: "Gueux", id: "gueux", caracteristiques: {adresse: 1, complexion: 1}, cagnotte: 4, cagnotteUnit: "deniers", value: 10 },
|
||||
},
|
||||
bonusMalus: [
|
||||
{ value: "-2", label: "-2 niveaux" },
|
||||
|
@ -6,6 +6,19 @@ export class TeDeumUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async init() {
|
||||
Hooks.on('renderChatLog', (log, html, data) => TeDeumUtility.chatListeners(html));
|
||||
|
||||
Hooks.on("renderActorDirectory", (app, html, data) => {
|
||||
if (game.user.can('ACTOR_CREATE')) {
|
||||
const button = document.createElement('button');
|
||||
button.style.width = '90%';
|
||||
button.innerHTML = 'Créer un Personnage'
|
||||
button.addEventListener('click', () => {
|
||||
let cr = new game.system.tedeum.TeDeumCharacterCreator();
|
||||
cr.init()
|
||||
})
|
||||
html.find('.header-actions').after(button)
|
||||
}
|
||||
})
|
||||
//Hooks.on("getChatLogEntryContext", (html, options) => TeDeumUtility.chatMenuManager(html, options));
|
||||
}
|
||||
|
||||
@ -64,6 +77,9 @@ export class TeDeumUtility {
|
||||
Handlebars.registerHelper('getCaracDescription', function (key, value) {
|
||||
return game.system.tedeum.config.descriptionValeur[Number(value)][key]
|
||||
})
|
||||
Handlebars.registerHelper('getEducationEtape', function (key) {
|
||||
return game.system.tedeum.config.etapesEducation[key].label
|
||||
})
|
||||
|
||||
Handlebars.registerHelper('isGM', function () {
|
||||
return game.user.isGM
|
||||
@ -76,6 +92,31 @@ export class TeDeumUtility {
|
||||
for (let i of this.competences) {
|
||||
this.competencesList[i.name.toLowerCase()] = { name: i.name, id: i._id }
|
||||
}
|
||||
this.competencesList = Object.entries(this.competencesList).sort().reduce((o, [k, v]) => (o[k] = v, o), {})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async importDefaultScene() {
|
||||
let exists = game.scenes.find(j => j.name == "Te Deum");
|
||||
if (!exists) {
|
||||
const scenes = await TeDeumUtility.loadCompendium("fvtt-te-deum.scenes")
|
||||
let newDocuments = scenes.filter(i => i.name == "Te Deum");
|
||||
if (newDocuments) {
|
||||
await game.scenes.documentClass.create(newDocuments);
|
||||
game.scenes.find(i => i.name == "Te Deum").activate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static welcomeMessage() {
|
||||
if (game.user.isGM) {
|
||||
ChatMessage.create({
|
||||
user: game.user.id,
|
||||
whisper: [game.user.id],
|
||||
content: `<div id="welcome-message-tedeum"><span class="rdd-roll-part">
|
||||
<strong>Bienvenu dans Te Deum Pour Un Massacre !</strong>` });
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
@ -89,22 +130,25 @@ export class TeDeumUtility {
|
||||
|
||||
/*-------------------------------------------- */
|
||||
static prepareEducationContent(formData) {
|
||||
let nbCompetences = game.system.tedeum.config.etapesEducation[formData.system.etape].nbCompetences
|
||||
let etape = game.system.tedeum.config.etapesEducation[formData.system.etape]
|
||||
let nbCompetences = etape.nbCompetences
|
||||
for (let key in formData.system.competences) {
|
||||
formData.system.competences[key].valid = false
|
||||
}
|
||||
for (let i = 1; i <= nbCompetences; i++) {
|
||||
formData.system.competences[`comp${i}`].valid = true
|
||||
}
|
||||
let nbCaracteristiques = game.system.tedeum.config.etapesEducation[formData.system.etape].nbCaracteristiques
|
||||
let nbCaracteristiques = etape.nbCaracteristiques
|
||||
for (let key in formData.system.caracteristiques) {
|
||||
formData.system.caracteristiques[key].valid = false
|
||||
}
|
||||
for (let i = 1; i <= nbCaracteristiques; i++) {
|
||||
formData.system.caracteristiques[`carac${i}`].valid = true
|
||||
}
|
||||
formData.hasQuestionnaire = game.system.tedeum.config.etapesEducation[formData.system.etape].hasQuestionnaire;
|
||||
formData.hasMultiplier = game.system.tedeum.config.etapesEducation[formData.system.etape].hasMultiplier;
|
||||
formData.hasQuestionnaire = etape.hasQuestionnaire;
|
||||
formData.hasMultiplier = etape.hasMultiplier;
|
||||
formData.hasDebouches = etape.hasDebouches;
|
||||
formData.canCompetencesOpt = etape.canCompetencesOpt;
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
@ -183,7 +227,8 @@ export class TeDeumUtility {
|
||||
const templatePaths = [
|
||||
'systems/fvtt-te-deum/templates/actors/editor-notes-gm.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/partial-item-nav.hbs',
|
||||
'systems/fvtt-te-deum/templates/items/partial-item-description.hbs'
|
||||
'systems/fvtt-te-deum/templates/items/partial-item-description.hbs',
|
||||
'systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs'
|
||||
]
|
||||
return loadTemplates(templatePaths);
|
||||
}
|
||||
@ -416,13 +461,13 @@ export class TeDeumUtility {
|
||||
await this.getLocalisation(rollData)
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
let bDegats = actor.getBonusDegats()
|
||||
let degatsRoll = await new Roll(rollData.arme.system.degats+"+"+bDegats.value ).roll()
|
||||
let degatsRoll = await new Roll(rollData.arme.system.degats + "+" + bDegats.value).roll()
|
||||
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
||||
rollData.degats = degatsRoll.total
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async processAttaqueDistance(rollData) {
|
||||
if (rollData.arme?.system.typeArme != "tir") {
|
||||
|
Reference in New Issue
Block a user