Amelioration fiche items
This commit is contained in:
@ -12,7 +12,7 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-tedeum", "sheet", "actor"],
|
||||
classes: ["fvtt-te-deum", "sheet", "actor"],
|
||||
template: "systems/fvtt-te-deum/templates/actors/actor-sheet.hbs",
|
||||
width: 860,
|
||||
height:680,
|
||||
|
@ -65,6 +65,17 @@ export class TeDeumActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getBonusDegats() {
|
||||
return game.system.tedeum.config.BONUS_DEGATS[this.system.caracteristiques.puissance.value]
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getNbArmures() {
|
||||
return game.system.tedeum.config.MAX_ARMURES_LOURDES[this.system.caracteristiques.puissance.value]
|
||||
}
|
||||
getNbActions() {
|
||||
return game.system.tedeum.config.ACTIONS_PAR_TOUR[this.system.caracteristiques.adresse.value]
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCompetences() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'competence') || [])
|
||||
@ -118,11 +129,6 @@ export class TeDeumActor extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------- */
|
||||
getEquipments() {
|
||||
return this.items.filter(item => item.type == 'equipment')
|
||||
}
|
||||
|
||||
/* ------------------------------------------- */
|
||||
async buildContainerTree() {
|
||||
let equipments = duplicate(this.items.filter(item => item.type == "equipment") || [])
|
||||
@ -179,6 +185,7 @@ export class TeDeumActor extends Actor {
|
||||
clearInitiative() {
|
||||
this.getFlag("world", "initiative", -1)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getInitiativeScore(combatId, combatantId) {
|
||||
let init = Math.floor((this.system.attributs.physique.value + this.system.attributs.habilite.value) / 2)
|
||||
@ -238,7 +245,6 @@ export class TeDeumActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCommonRollData() {
|
||||
//this.system.internals.confrontbonus = 5 // TO BE REMOVED!!!!
|
||||
let rollData = TeDeumUtility.getBasicRollData()
|
||||
rollData.alias = this.name
|
||||
rollData.actorImg = this.img
|
||||
|
@ -1,39 +1,39 @@
|
||||
export const SYSTEM_ID = "fvtt-te-deum";
|
||||
|
||||
export const __BONUS_DEGATS = [{}, { label: "1d4", value: -2 }, { label: "1d6", value: -1 }, { label: "1d8", value: 0 },
|
||||
{ label: "1d10", value: 1 }, { label: "1d12", value: 2 }, { label: "1d20", value: 3 }]
|
||||
export const __MAX_ARMURES_LOURDES = [{}, { value: 1 }, { value: 3 }, { value: 5 },
|
||||
{ value: 7 }, { value: 9 }, { value: 11 }]
|
||||
export const __EFFORT = [{}, { value: 1 }, { value: 2 }, { value: 3 },
|
||||
{ value: 4 }, { value: 5 }, { value: 6 }]
|
||||
export const __ACTIONS_PAR_TOUR = [{}, { value: 1 }, { value: 2 }, { value: 2 },
|
||||
{ value: 3 }, { value: 3 }, { value: 4 }]
|
||||
export const __COUT_XP = [{}, { value: 10 }, { value: 10 }, { value: 10 },
|
||||
{ value: 10 }, { value: 30 }, { value: 50 }]
|
||||
|
||||
export const LOCALISATION = {
|
||||
"pieddroit": { label: "Pied Droit", value: 1, id: "pieddroit", nbArmure: 1 },
|
||||
"jambedroite": { label: "Jambe Droite", value: 1, id: "jambedroite", nbArmure: 1 },
|
||||
"jambegauche": { label: "Jambe Gauche", value: 1, id: "jambegauche", nbArmure: 1 },
|
||||
"piedgauche": { label: "Pied Gauche", value: 1, id: "piedgauche", nbArmure: 1 },
|
||||
"piedgauche": { label: "Pied Gauche", value: 1, id: "piedgauche", nbArmure: 1 },
|
||||
"maindroite": { label: "Main Droite", value: 1, id: "maindroite", nbArmure: 1 },
|
||||
"maingauche": { label: "Main Gauche", value: 1, id: "maingauche", nbArmure: 1 },
|
||||
"brasdroit": { label: "Bras Droit", value: 1, id: "brasdroit", nbArmure: 2 },
|
||||
"brasgauche": { label: "Bras Gauche", value: 1, id: "brasgauche", nbArmure: 2 },
|
||||
"corps": { label: "Corps", value: 1, id: "corps", nbArmure: 2 },
|
||||
"tete": { label: "Tête", value: 1, id: "tete", nbArmure: 2 },
|
||||
}
|
||||
|
||||
export const 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" },
|
||||
}
|
||||
|
||||
export const TEDEUM_CONFIG = {
|
||||
|
||||
BONUS_DEGATS: [{}, { label: "1d4", value: -2 }, { label: "1d6", value: -1 }, { label: "1d8", value: 0 },
|
||||
{ label: "1d10", value: 1 }, { label: "1d12", value: 2 }, { label: "1d20", value: 3 }],
|
||||
MAX_ARMURES_LOURDES: [{}, { value: 1 }, { value: 3 }, { value: 5 },
|
||||
{ value: 7 }, { value: 9 }, { value: 11 }],
|
||||
ACTIONS_PAR_TOUR: [{}, { value: 1 }, { value: 2 }, { value: 2 },
|
||||
{ value: 3 }, { value: 3 }, { value: 4 }],
|
||||
COUT_XP: [{}, { value: 10 }, { value: 10 }, { value: 10 },
|
||||
{ value: 10 }, { value: 30 }, { value: 50 }],
|
||||
|
||||
LOCALISATION: {
|
||||
"pieddroit": { label: "Pied Droit", value: 1, id: "pieddroit", nbArmure: 1 },
|
||||
"jambedroite": { label: "Jambe Droite", value: 1, id: "jambedroite", nbArmure: 1 },
|
||||
"jambegauche": { label: "Jambe Gauche", value: 1, id: "jambegauche", nbArmure: 1 },
|
||||
"piedgauche": { label: "Pied Gauche", value: 1, id: "piedgauche", nbArmure: 1 },
|
||||
"piedgauche": { label: "Pied Gauche", value: 1, id: "piedgauche", nbArmure: 1 },
|
||||
"maindroite": { label: "Main Droite", value: 1, id: "maindroite", nbArmure: 1 },
|
||||
"maingauche": { label: "Main Gauche", value: 1, id: "maingauche", nbArmure: 1 },
|
||||
"brasdroit": { label: "Bras Droit", value: 1, id: "brasdroit", nbArmure: 2 },
|
||||
"brasgauche": { label: "Bras Gauche", value: 1, id: "brasgauche", nbArmure: 2 },
|
||||
"corps": { label: "Corps", value: 1, id: "corps", nbArmure: 2 },
|
||||
"tete": { label: "Tête", value: 1, id: "tete", nbArmure: 2 },
|
||||
},
|
||||
|
||||
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" },
|
||||
},
|
||||
|
||||
descriptionValeur: {
|
||||
1: { qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" },
|
||||
2: { qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" },
|
||||
@ -48,50 +48,38 @@ export const TEDEUM_CONFIG = {
|
||||
11: { qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
|
||||
12: { qualite: "Admirabme", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" },
|
||||
},
|
||||
|
||||
degatsArmure : {
|
||||
sansarmure : { label: "Sans armure"},
|
||||
cuir : { label: "Cuir"},
|
||||
plates : { label: "Plates"},
|
||||
mailles : { label: "Mailles"},
|
||||
},
|
||||
|
||||
caracteristiques: {
|
||||
savoir: { id: "savoir", value: 1, label: "Savoir" },
|
||||
sensibilite: { id: "sensibilite", value: 1, label: "Sensibilité" },
|
||||
entregent: { id: "entregent", value: 1, label: "Entregent" },
|
||||
complexion: { id: "complexion", value: 1, label: "Complexion" },
|
||||
puissance: { id: "puissance", value: 1, label: "Puissance" },
|
||||
adresse: { id: "adresse", value: 1, label: "Adresse" },
|
||||
savoir: { id: "savoir", value: "savoir", label: "Savoir" },
|
||||
sensibilite: { id: "sensibilite", value: "sensibilite", label: "Sensibilité" },
|
||||
entregent: { id: "entregent", value: "entregent", label: "Entregent" },
|
||||
complexion: { id: "complexion", value: "complexion", label: "Complexion" },
|
||||
puissance: { id: "puissance", value: "puissance", label: "Puissance" },
|
||||
adresse: { id: "adresse", value: "adresse", label: "Adresse" },
|
||||
},
|
||||
|
||||
providence: [
|
||||
{labelM: "Brebis égarée", labelF: "Brebis égarée",value: 0, diceValue: "0"},
|
||||
{labelM: "Pauvre pêcheur", labelF: "Pauvre pêcheresse",value: 1, diceValue: "d4"},
|
||||
{labelM: "Fils prodigue", labelF: "Fille prodigue",value: 2, diceValue: "d6"},
|
||||
{labelM: "Bon samaritain", labelF: "Bon samaritain",value: 3, diceValue: "d8"},
|
||||
{labelM: "Animé par la grâce", labelF: "Animée par la grâce",value: 4, diceValue: "d10"},
|
||||
{labelM: "Oint du Seigneur", labelF: "Ointe du Seigneur",value: 5, diceValue: "d12"},
|
||||
{labelM: "Dans la main de Dieu", labelF: "Dans la main de Dieu",value: 6, diceValue: "d20"},
|
||||
{ labelM: "Brebis égarée", labelF: "Brebis égarée", value: 0, diceValue: "0" },
|
||||
{ labelM: "Pauvre pêcheur", labelF: "Pauvre pêcheresse", value: 1, diceValue: "d4" },
|
||||
{ labelM: "Fils prodigue", labelF: "Fille prodigue", value: 2, diceValue: "d6" },
|
||||
{ labelM: "Bon samaritain", labelF: "Bon samaritain", value: 3, diceValue: "d8" },
|
||||
{ labelM: "Animé par la grâce", labelF: "Animée par la grâce", value: 4, diceValue: "d10" },
|
||||
{ labelM: "Oint du Seigneur", labelF: "Ointe du Seigneur", value: 5, diceValue: "d12" },
|
||||
{ labelM: "Dans la main de Dieu", labelF: "Dans la main de Dieu", value: 6, diceValue: "d20" },
|
||||
],
|
||||
localisation: {
|
||||
1: LOCALISATION.pieddroit,
|
||||
2: LOCALISATION.piedgauche,
|
||||
3: LOCALISATION.jambedroite,
|
||||
4: LOCALISATION.jambedroite,
|
||||
5: LOCALISATION.jambegauche,
|
||||
6: LOCALISATION.jambegauche,
|
||||
7: LOCALISATION.maindroite,
|
||||
8: LOCALISATION.maingauche,
|
||||
9: LOCALISATION.brasdroit,
|
||||
10: LOCALISATION.brasdroit,
|
||||
11: LOCALISATION.brasgauche,
|
||||
12: LOCALISATION.brasgauche,
|
||||
13: LOCALISATION.corps,
|
||||
14: LOCALISATION.corps,
|
||||
15: LOCALISATION.corps,
|
||||
16: LOCALISATION.corps,
|
||||
17: LOCALISATION.corps,
|
||||
18: LOCALISATION.tete,
|
||||
19: LOCALISATION.tete,
|
||||
20: LOCALISATION.tete
|
||||
},
|
||||
|
||||
armeTypes: {
|
||||
"melee": { label: "Mêlée", value: "melee" },
|
||||
"tir": { label: "Tir", value: "tir" }
|
||||
melee: { label: "Mêlée", value: "melee" },
|
||||
tir: { label: "Tir", value: "tir" }
|
||||
},
|
||||
difficulte: {
|
||||
difficulte: {
|
||||
routine: { label: "Routine", value: 3 },
|
||||
facile: { label: "Facile", value: 5 },
|
||||
pardefaut: { label: "Par Défaut", value: 7 },
|
||||
@ -101,8 +89,26 @@ export const TEDEUM_CONFIG = {
|
||||
desespere: { label: "Désespéré", value: 15 }
|
||||
},
|
||||
monnaie: {
|
||||
denier: { label: "Deniers", value: 1 },
|
||||
sol: { label: "Sols", value: 10 },
|
||||
livre: { label: "Livres", value: 100 }
|
||||
denier: { label: "Deniers", id: "denier", value: 1 },
|
||||
sol: { label: "Sols", id: "sol", value: 10 },
|
||||
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: 2, 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 },
|
||||
},
|
||||
origineSociale: {
|
||||
noblesseepee: { label: "Noblesse d'épée", id: "noblesseepee", value: 1 },
|
||||
noblessecloche: { label: "Noblesse de cloche", id: "noblessecloche", value: 2 },
|
||||
hautenoblesse: { label: "Haute noblesse (Illégitime)", id: "hautenoblesse", value: 3 },
|
||||
hautebourgeoisie: { label: "Haute bourgeoisie", id: "hautebourgeoisie", value: 4 },
|
||||
petitebourgeoisie: { label: "Petite bourgeoisie (Marchands)", id: "petitebourgeoisie", value: 5 },
|
||||
artisan: { label: "Artisans", id: "artisan", value: 6 },
|
||||
laboureur: { label: "Laboureurs", id: "laboureur", value: 7 },
|
||||
domesticite: { label: "Domesticité", id: "domesticite", value: 8 },
|
||||
paysannerie: { label: "Paysannerie", id: "paysannerie", value: 9 },
|
||||
gueux: { label: "Gueux", id: "gueux", value: 10 },
|
||||
}
|
||||
}
|
@ -46,10 +46,53 @@ export class TeDeumUtility {
|
||||
accum += block.fn(i);
|
||||
return accum;
|
||||
})
|
||||
Handlebars.registerHelper('getConfigLabel', function (configName, key) {
|
||||
//console.log("getConfigLabel", configName, key)
|
||||
return game.system.tedeum.config[configName][key].label
|
||||
})
|
||||
Handlebars.registerHelper('getConfigLabelWithGender', function (configName, key, genderKey) {
|
||||
return game.system.tedeum.config[configName][key]["label"+genderKey]
|
||||
})
|
||||
Handlebars.registerHelper('isGM', function () {
|
||||
return game.user.isGM
|
||||
})
|
||||
|
||||
// Load compendium data
|
||||
const competences = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences")
|
||||
this.competences = competences.map(i => i.toObject())
|
||||
this.competencesList = {}
|
||||
for (let i of this.competences) {
|
||||
this.competencesList[i.name.toLowerCase()] = {name:i.name, id: i._id}
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
static getCompetences() {
|
||||
return this.competences
|
||||
}
|
||||
/*-------------------------------------------- */
|
||||
static getCompetencesForDropDown() {
|
||||
return this.competencesList
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
static prepareEducationContent(formData) {
|
||||
let nbCompetences = game.system.tedeum.config.etapesEducation[formData.system.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
|
||||
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;
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
|
@ -2,12 +2,13 @@ export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
const requiredInteger = { required: true, nullable: false, integer: true };
|
||||
const requiredDouble = { required: true, nullable: false, integer: false };
|
||||
const schema = {};
|
||||
|
||||
schema.typeArme = new fields.StringField({required: true, choices: ["melee", "tir"], initial: "melee"});
|
||||
|
||||
schema.specificites = new fields.SchemaField(
|
||||
Object.values((game.system.tedeum.ARME_SPECIFICITE)).reduce((obj, spec) => {
|
||||
Object.values((game.system.tedeum.config.ARME_SPECIFICITE)).reduce((obj, spec) => {
|
||||
obj[spec.id] = new fields.SchemaField({
|
||||
hasSpec: new fields.BooleanField({initial: false}),
|
||||
});
|
||||
@ -25,6 +26,10 @@ export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
|
||||
schema.initiativeBonus = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
|
||||
|
||||
schema.degats = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
|
||||
schema.prix = new fields.NumberField({ ...requiredDouble, initial: 0, min: 0 });
|
||||
schema.monnaie = new fields.StringField({ required: true, blank: false, initial: "denier" });
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, blank: true });
|
||||
|
||||
return schema;
|
||||
|
@ -2,10 +2,12 @@ export class TeDeumArmureSchema extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
const requiredInteger = { required: true, nullable: false, integer: true };
|
||||
const requiredDouble = { required: true, nullable: false, integer: false };
|
||||
|
||||
const schema = {};
|
||||
|
||||
schema.localisation = new fields.SchemaField(
|
||||
Object.values(LOCALISATION).reduce((obj, loc) => {
|
||||
Object.values(game.system.tedeum.config.LOCALISATION).reduce((obj, loc) => {
|
||||
obj[loc.id] = new fields.SchemaField({
|
||||
protege: new fields.BooleanField({initial: false}),
|
||||
});
|
||||
@ -15,6 +17,9 @@ export class TeDeumArmureSchema extends foundry.abstract.TypeDataModel {
|
||||
|
||||
schema.protection = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
|
||||
|
||||
schema.prix = new fields.NumberField({ ...requiredDouble, initial: 0, min: 0 });
|
||||
schema.monnaie = new fields.StringField({ required: true, blank: false, initial: "denier" });
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, blank: true });
|
||||
|
||||
return schema;
|
||||
|
@ -5,6 +5,7 @@ export class TeDeumCompetenceSchema extends foundry.abstract.TypeDataModel {
|
||||
const schema = {};
|
||||
|
||||
schema.caracteristique = new fields.StringField({ required: true, blank: false, initial: "puissance" });
|
||||
schema.isBase = new fields.BooleanField({ initial: false });
|
||||
schema.score = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
|
||||
schema.scoreBase = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
|
||||
schema.description = new fields.HTMLField({ required: true, blank: true });
|
||||
|
@ -1,12 +0,0 @@
|
||||
export class TeDeumDeboucheSchema extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
const requiredInteger = { required: true, nullable: false, integer: true };
|
||||
const schema = {};
|
||||
|
||||
schema.cagnotteMultiplier = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 });
|
||||
schema.description = new fields.HTMLField({ required: true, blank: true });
|
||||
|
||||
return schema;
|
||||
}
|
||||
}
|
@ -2,8 +2,46 @@ export class TeDeumEducationSchema extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
const requiredInteger = { required: true, nullable: false, integer: true };
|
||||
const requiredDouble = { required: true, nullable: false, integer: false };
|
||||
const schema = {};
|
||||
|
||||
schema.etape = new fields.StringField({required: true, initial: "pouponniere"});
|
||||
schema.accessible = new fields.SchemaField(
|
||||
Object.values((game.system.tedeum.config.origineSociale)).reduce((obj, spec) => {
|
||||
obj[spec.id] = new fields.SchemaField({
|
||||
isaccessible: new fields.BooleanField({initial: false}),
|
||||
});
|
||||
return obj;
|
||||
}, {})
|
||||
);
|
||||
schema.caracteristiques = new fields.SchemaField(Array.fromRange(3, 1).reduce((caracs, i) => {
|
||||
caracs[`carac${i}`] = new fields.SchemaField({
|
||||
caracId: new fields.StringField({ required: true, blank: false, initial: "entregent" })
|
||||
});
|
||||
return caracs;
|
||||
}, {}));
|
||||
schema.competences = new fields.SchemaField(Array.fromRange(9, 1).reduce((comps, i) => {
|
||||
comps[`comp${i}`] = new fields.SchemaField({
|
||||
compName: new fields.StringField({ required: true, blank: true, initial: "" })
|
||||
});
|
||||
return comps;
|
||||
}, {}));
|
||||
schema.questionnaire = new fields.SchemaField(Array.fromRange(4, 1).reduce((questions, i) => {
|
||||
questions[`question${i}`] = new fields.SchemaField({
|
||||
question: new fields.StringField({ required: true, blank: true, initial: "" }),
|
||||
reponses: new fields.SchemaField( Array.fromRange(6, 1).reduce((resp, i) => {
|
||||
resp[`reponse${i}`] = new fields.SchemaField({
|
||||
num: new fields.NumberField({ ...requiredInteger, initial: i, min:i }),
|
||||
reponse: new fields.StringField({ required: true, blank: true, initial: "" }),
|
||||
compName: new fields.StringField({ required: true, blank: true, initial: "" })
|
||||
});
|
||||
return resp;
|
||||
}, {}))
|
||||
});
|
||||
return questions;
|
||||
}, {}));
|
||||
schema.cagnotteMultiplier = new fields.NumberField({ ...requiredDouble, initial: 1.0, min: 0 });
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, blank: true });
|
||||
|
||||
return schema;
|
||||
|
@ -2,8 +2,13 @@ export class TeDeumEquipementSchema extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
const requiredInteger = { required: true, nullable: false, integer: true };
|
||||
const requiredDouble = { required: true, nullable: false, integer: false };
|
||||
|
||||
const schema = {};
|
||||
|
||||
schema.prix = new fields.NumberField({ ...requiredDouble, initial: 0, min: 0 });
|
||||
schema.monnaie = new fields.StringField({ required: true, blank: false, initial: "denier" });
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, blank: true });
|
||||
|
||||
return schema;
|
||||
|
@ -9,7 +9,7 @@ export class TeDeumItemSheet extends ItemSheet {
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-tedeum", "sheet", "item"],
|
||||
classes: ["fvtt-te-deum", "sheet", "item"],
|
||||
template: "systems/fvtt-te-deum/templates/item-sheet.hbs",
|
||||
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
||||
width: 620,
|
||||
@ -45,6 +45,7 @@ export class TeDeumItemSheet extends ItemSheet {
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: duplicate(this.object.system),
|
||||
config: duplicate(game.system.tedeum.config),
|
||||
competences: TeDeumUtility.getCompetencesForDropDown(),
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
@ -52,6 +53,10 @@ export class TeDeumItemSheet extends ItemSheet {
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
|
||||
isGM: game.user.isGM
|
||||
}
|
||||
|
||||
if (this.object.type == "education") {
|
||||
TeDeumUtility.prepareEducationContent(formData);
|
||||
}
|
||||
|
||||
this.options.editable = !(this.object.origin == "embeddedItem");
|
||||
console.log("ITEM DATA", formData, this);
|
||||
|
@ -2,8 +2,10 @@ 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",
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -18,7 +18,6 @@ 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 { TeDeumDeboucheSchema } from "./data/tedeum-schema-debouche.js";
|
||||
|
||||
import { TeDeumItem } from "./items/tedeum-item.js";
|
||||
import { TeDeumItemSheet } from "./items/tedeum-item-sheet.js";
|
||||
@ -27,8 +26,8 @@ import { TeDeumHotbar } from "./app/tedeum-hotbar.js"
|
||||
import { TeDeumCombat } from "./app/tedeum-combat.js";
|
||||
|
||||
import { TeDeumUtility } from "./common/tedeum-utility.js";
|
||||
import { TEDEUM_CONFIG, LOCALISATION, ARME_SPECIFICITE} from "./common/tedeum-config.js";
|
||||
import { ClassCounter} from "https://www.uberwald.me/fvtt_appcount/count-class-ready.js";
|
||||
import { TEDEUM_CONFIG } from "./common/tedeum-config.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Foundry VTT Initialization */
|
||||
/* -------------------------------------------- */
|
||||
@ -40,8 +39,6 @@ Hooks.once("init", async function () {
|
||||
|
||||
game.system.tedeum = {
|
||||
config: TEDEUM_CONFIG,
|
||||
LOCALISATION: LOCALISATION,
|
||||
ARME_SPECIFICITE: ARME_SPECIFICITE,
|
||||
TeDeumHotbar
|
||||
}
|
||||
console.log(`Initializing TeDeum RPG 2`);
|
||||
@ -72,8 +69,7 @@ Hooks.once("init", async function () {
|
||||
equipement: TeDeumEquipementSchema,
|
||||
armure: TeDeumArmureSchema,
|
||||
origine: TeDeumOrigineSchema,
|
||||
education: TeDeumEducationSchema,
|
||||
debouche: TeDeumDeboucheSchema,
|
||||
education: TeDeumEducationSchema
|
||||
};
|
||||
|
||||
console.log("TeDeum RPG | Ready");
|
||||
@ -83,7 +79,7 @@ Hooks.once("init", async function () {
|
||||
Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pnj"], makeDefault: true });
|
||||
|
||||
Items.unregisterSheet("core", ItemSheet);
|
||||
Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { types: ["arme"], makeDefault: true });
|
||||
Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { makeDefault: true });
|
||||
|
||||
TeDeumUtility.init()
|
||||
});
|
||||
@ -113,11 +109,16 @@ Hooks.once("ready", function () {
|
||||
});
|
||||
}
|
||||
|
||||
console.log("YEADEAE");
|
||||
ClassCounter.registerUsageCount();
|
||||
welcomeMessage();
|
||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
||||
console.log("ClassCounter loaded", moduleCounter)
|
||||
moduleCounter.ClassCounter.registerUsageCount()
|
||||
}).catch(err=>
|
||||
console.log("No stats available, giving up.")
|
||||
)
|
||||
TeDeumUtility.ready();
|
||||
|
||||
welcomeMessage();
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user