Ajout items et fiches
This commit is contained in:
@ -42,6 +42,7 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
providence: this.actor.prepareProvidence(),
|
||||
arbreCompetences: this.actor.prepareArbreCompetences(),
|
||||
equipements: this.actor.getEquipements(),
|
||||
graces: this.actor.getGraces(),
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
|
||||
options: this.options,
|
||||
|
@ -83,6 +83,11 @@ export class TeDeumActor extends Actor {
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getGraces() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'grace') || [])
|
||||
TeDeumUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
getArmes() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'arme') || [])
|
||||
TeDeumUtility.sortArrayObjectsByName(comp)
|
||||
|
@ -27,14 +27,30 @@ export const TEDEUM_CONFIG = {
|
||||
},
|
||||
|
||||
ARME_SPECIFICITE: {
|
||||
"encombrante": { label: "Encombrante", id: "encombrante" },
|
||||
"maintiendistance": { label: "Maintien à distance", id: "maintiendistance" },
|
||||
"treslongue": { label: "Très longue", id: "treslongue" },
|
||||
"coupassomant": { label: "Coup assomant", id: "coupassomant" },
|
||||
"peutlancer": { label: "Peut être lancée", id: "peutlancer" },
|
||||
"encombrante": { label: "Encombrante", id: "encombrante", melee: true, tir: true},
|
||||
"maintiendistance": { label: "Maintien à distance", id: "maintiendistance", melee: true, tir: false },
|
||||
"coupassomant": { label: "Coup assomant", id: "coupassomant", melee: true, tir: false},
|
||||
"peutlancer": { label: "Peut être lancée", id: "peutlancer", melee: true, tir: false},
|
||||
"pasboutportant": { label: "Inutilisable à bout portant", id: "pasboutportant", melee: false, tir: true},
|
||||
"rechargearquebusade": { label: "Retrancher l'Arquebusade au temps de recharge", id: "rechargearquebusade", melee: false, tir: true },
|
||||
"mitraille": { label: "Mitraille", id: "mitraille", melee: false, tir: true },
|
||||
"degatscharge": { label: "Dégâts accrus à la charge", id: "degatscharge", melee: true, tir: false },
|
||||
"crochecavalier": { label: "Croche-cavalier", id: "crochecavalier", melee: true, tir: false },
|
||||
"coupfaucheur": { label: "Coup du faucheur", id: "coupfaucheur", melee: true, tir: false },
|
||||
"briselances": { label: "Brise-lances", id: "briselances", melee: true, tir: false },
|
||||
"pasbrisemaingaucheespagnole": { label: "Ne peut être brisé pas une main gauche espagnole", id: "pasbrisemaingaucheespagnole", melee: true, tir: false },
|
||||
"peutbriser": { label: "Peut briser", id: "peutbriser", melee: true, tir: false },
|
||||
},
|
||||
|
||||
descriptionValeur: {
|
||||
ARME_PORTEES: {
|
||||
"brulepourpoint": { label: "Brûle-pourpoint", difficulty: "facile", id: "brulepourpoint"},
|
||||
"courte": { label: "Courte", difficulty: "pardefaut", id: "courte"},
|
||||
"moyenne": { label: "Moyenne", difficulty: "difficile", id: "moyenne"},
|
||||
"longue": { label: "Longue", difficulty: "perilleux", id: "longue"},
|
||||
"extreme": { label: "Extrême", difficulty: "desespere", id: "extreme"},
|
||||
},
|
||||
|
||||
descriptionValeurOdd: {
|
||||
1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" },
|
||||
2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" },
|
||||
3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" },
|
||||
@ -48,6 +64,14 @@ export const TEDEUM_CONFIG = {
|
||||
11: { valeur: 11, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
|
||||
12: { valeur: 12, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" },
|
||||
},
|
||||
descriptionValeur: {
|
||||
1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" },
|
||||
2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" },
|
||||
3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" },
|
||||
4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
|
||||
5: { valeur: 5, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
|
||||
6: { valeur: 6, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" },
|
||||
},
|
||||
diceValeur: [ "d4", "d6", "d8", "d10", "d12", "d20" ],
|
||||
degatsArmure : {
|
||||
sansarmure : { label: "Sans armure"},
|
||||
@ -79,6 +103,21 @@ export const TEDEUM_CONFIG = {
|
||||
melee: { label: "Mêlée", value: "melee" },
|
||||
tir: { label: "Tir", value: "tir" }
|
||||
},
|
||||
armeAllonges: {
|
||||
courte: { label: "Courte", value: "courte" },
|
||||
moyenne: { label: "Moyenne", value: "moyenne" },
|
||||
longue: { label: "Longue", value: "longue" },
|
||||
treslongue: { label: "Très longue", value: "treslongue"}
|
||||
},
|
||||
armeCompetences: {
|
||||
bagarre: { label: "Bagarre", value: "bagarre" },
|
||||
maingauche: { label: "Main gauche", value: "maingauche" },
|
||||
escrime: { label: "Escrime", value: "escrime" },
|
||||
hast: { label: "Armes d'Hast", value: "hast" },
|
||||
lancer: { label: "Lancer", value: "lancer" },
|
||||
archerie: { label: "Archerie", value: "archerie" },
|
||||
arquebusade: { label: "Arquebusade", value: "arquebusade" }
|
||||
},
|
||||
difficulte: {
|
||||
routine: { label: "Routine", value: 3 },
|
||||
facile: { label: "Facile", value: 5 },
|
||||
|
@ -50,9 +50,17 @@ export class TeDeumUtility {
|
||||
//console.log("getConfigLabel", configName, key)
|
||||
return game.system.tedeum.config[configName][key].label
|
||||
})
|
||||
Handlebars.registerHelper('isSpecArmeType', function (key, armeType) {
|
||||
return game.system.tedeum.config.ARME_SPECIFICITE[key][armeType]
|
||||
})
|
||||
|
||||
Handlebars.registerHelper('getConfigLabelWithGender', function (configName, key, genderKey) {
|
||||
return game.system.tedeum.config[configName][key]["label"+genderKey]
|
||||
})
|
||||
Handlebars.registerHelper('getCaracDescription', function (key, value) {
|
||||
return game.system.tedeum.config.descriptionValeur[Number(value)][key]
|
||||
})
|
||||
|
||||
Handlebars.registerHelper('isGM', function () {
|
||||
return game.user.isGM
|
||||
})
|
||||
@ -333,7 +341,7 @@ export class TeDeumUtility {
|
||||
}
|
||||
if (rollData.diceSum == 1) {
|
||||
let critiqueRoll = await new Roll(rollData.carac.negativeDice).roll()
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
await this.showDiceSoNice(critiqueRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.critiqueRoll = foundry.utils.duplicate(critiqueRoll)
|
||||
if (critiqueRoll.total > rollData.competence.score) {
|
||||
rollData.isEchecCritique = true
|
||||
|
@ -6,6 +6,7 @@ export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
|
||||
const schema = {};
|
||||
|
||||
schema.typeArme = new fields.StringField({required: true, choices: ["melee", "tir"], initial: "melee"});
|
||||
schema.allonge = new fields.StringField({required: true, choices: ["courte", "moyenne", "longue", "treslongue"], initial: "courte"});
|
||||
|
||||
schema.specificites = new fields.SchemaField(
|
||||
Object.values((game.system.tedeum.config.ARME_SPECIFICITE)).reduce((obj, spec) => {
|
||||
@ -15,17 +16,35 @@ export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
|
||||
return obj;
|
||||
}, {})
|
||||
);
|
||||
|
||||
|
||||
schema.portees = new fields.SchemaField(
|
||||
Object.values((game.system.tedeum.config.ARME_PORTEES)).reduce((obj, spec) => {
|
||||
obj[spec.id] = new fields.SchemaField({
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
});
|
||||
return obj;
|
||||
}, {})
|
||||
);
|
||||
|
||||
schema.degatsArmure = new fields.SchemaField( {
|
||||
sansarmure : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
cuir : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
plates : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
mailles : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
});
|
||||
|
||||
schema.tempsRecharge = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
|
||||
schema.valeurEchecCritique = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 });
|
||||
|
||||
schema.initiativeBonus = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
|
||||
|
||||
schema.degats = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
let comp = []
|
||||
for (let key of Object.keys(game.system.tedeum.config.armeCompetences)) {
|
||||
comp.push(key);
|
||||
}
|
||||
schema.competence = new fields.StringField({ required: true, choices:comp, initial: "bagarre" });
|
||||
schema.competence2 = new fields.StringField({ required: false, choices:comp, initial: "", blank: true });
|
||||
|
||||
schema.prix = new fields.NumberField({ ...requiredDouble, initial: 0, min: 0 });
|
||||
schema.monnaie = new fields.StringField({ required: true, blank: false, initial: "denier" });
|
||||
|
14
modules/data/tedeum-schema-grace.js
Normal file
14
modules/data/tedeum-schema-grace.js
Normal file
@ -0,0 +1,14 @@
|
||||
export class TeDeumGraceSchema extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
const requiredInteger = { required: true, nullable: false, integer: true };
|
||||
const schema = {};
|
||||
|
||||
schema.prerequis = new fields.StringField({ required: true, blank: true, initial: "" });
|
||||
schema.effet = new fields.StringField({ required: true, blank: true, initial: "" });
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, blank: true });
|
||||
|
||||
return schema;
|
||||
}
|
||||
}
|
@ -40,7 +40,7 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
|
||||
schema.description = new fields.HTMLField({required: true, blank: true});
|
||||
schema.connaissances = new fields.HTMLField({required: true, blank: true});
|
||||
schema.vetements = new fields.HTMLField({required: true, blank: true});
|
||||
schema.descriptiongraces = new fields.HTMLField({required: true, blank: true});
|
||||
//schema.descriptiongraces = new fields.HTMLField({required: true, blank: true});
|
||||
schema.genre = new fields.StringField({required: true, choices: ["Homme", "Femme"], initial: "Femme"});
|
||||
schema.age = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
schema.statutocial = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
|
@ -1,11 +1,12 @@
|
||||
import { TeDeumUtility } from "../common/tedeum-utility.js";
|
||||
|
||||
export const defaultItemImg = {
|
||||
arme: "systems/fvtt-te-deum/images/icons/icon_arme.webp",
|
||||
armure: "systems/fvtt-te-deum/images/icons/icon_armure.webp",
|
||||
equipement: "systems/fvtt-te-deum/images/icons/icon_equipement.webp",
|
||||
competence: "systems/fvtt-te-deum/images/icons/icon_competence.webp",
|
||||
education: "systems/fvtt-te-deum/images/icons/icon_education.webp",
|
||||
arme: "systems/fvtt-te-deum/images/icons/arme_melee.webp",
|
||||
armure: "systems/fvtt-te-deum/images/icons/armure.webp",
|
||||
equipement: "systems/fvtt-te-deum/images/icons/equipement.webp",
|
||||
competence: "systems/fvtt-te-deum/images/icons/competence.webp",
|
||||
education: "systems/fvtt-te-deum/images/icons/education.webp",
|
||||
grace: "systems/fvtt-te-deum/images/icons/grace.webp",
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -18,6 +18,7 @@ import { TeDeumCompetenceSchema } from "./data/tedeum-schema-competence.js";
|
||||
import { TeDeumEquipementSchema } from "./data/tedeum-schema-equipement.js";
|
||||
import { TeDeumOrigineSchema } from "./data/tedeum-schema-origine.js";
|
||||
import { TeDeumEducationSchema } from "./data/tedeum-schema-education.js";
|
||||
import { TeDeumGraceSchema } from "./data/tedeum-schema-grace.js";
|
||||
|
||||
import { TeDeumItem } from "./items/tedeum-item.js";
|
||||
import { TeDeumItemSheet } from "./items/tedeum-item-sheet.js";
|
||||
@ -69,7 +70,8 @@ Hooks.once("init", async function () {
|
||||
equipement: TeDeumEquipementSchema,
|
||||
armure: TeDeumArmureSchema,
|
||||
origine: TeDeumOrigineSchema,
|
||||
education: TeDeumEducationSchema
|
||||
education: TeDeumEducationSchema,
|
||||
grace: TeDeumGraceSchema
|
||||
};
|
||||
|
||||
console.log("TeDeum RPG | Ready");
|
||||
|
Reference in New Issue
Block a user