Compare commits

..

13 Commits

103 changed files with 519 additions and 109 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.history/

View File

@ -10,7 +10,7 @@ Books are mandatory to play and are available at : http://www.titam-france.fr
Système non-officiel pour le JDR Mournblade (Titam France). Système non-officiel pour le JDR Mournblade (Titam France).
Ce système a été autorisé par Ludospherik ( http://www.ludospherik.fr/ ), merci à eux ! Ce système a été autorisé par Le Département des Sombres Projets, merci à eux !
Les livres du jeu sont nécessaires pour jouer, et sont disponibles ici : http://www.titam-france.fr Les livres du jeu sont nécessaires pour jouer, et sont disponibles ici : http://www.titam-france.fr

26
lang/fr.json Normal file
View File

@ -0,0 +1,26 @@
{
"TYPES": {
"Actor": {
"personnage": "Personnage",
"PNJ": "PNJ"
},
"Item": {
"arme": "Arme",
"competence": "Compétence",
"protection": "Protection",
"pacte": "Pacte",
"traitchaotique": "Trait Chaotique",
"monnaie": "Monnaie",
"don": "Don",
"tendance": "Tendance",
"rune": "Rune",
"equipement": "Equipement",
"capacite": "Capacité",
"origine": "Origine",
"heritage": "Héritage",
"metier": "Métier",
"runeeffect": "Effet de Rune",
"bouclier": "Bouclier"
}
}
}

View File

@ -48,11 +48,14 @@ export class MournbladeActorSheet extends ActorSheet {
marge: this.actor.getMarge(), marge: this.actor.getMarge(),
tendances:duplicate(this.actor.getTendances()), tendances:duplicate(this.actor.getTendances()),
runes:duplicate(this.actor.getRunes()), runes:duplicate(this.actor.getRunes()),
traitsChaotiques:duplicate(this.actor.getTraitsChaotiques()),
origine: duplicate(this.actor.getOrigine() || {}), origine: duplicate(this.actor.getOrigine() || {}),
heritage: duplicate(this.actor.getHeritage() || {}), heritage: duplicate(this.actor.getHeritage() || {}),
metier: duplicate(this.actor.getMetier() || {}), metier: duplicate(this.actor.getMetier() || {}),
combat: this.actor.getCombatValues(), combat: this.actor.getCombatValues(),
equipements: duplicate(this.actor.getEquipments()), equipements: duplicate(this.actor.getEquipments()),
monnaies: duplicate(this.actor.getMonnaies()),
runeEffects: duplicate(this.actor.getRuneEffects()),
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}), description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
@ -95,7 +98,7 @@ export class MournbladeActorSheet extends ActorSheet {
let value = ev.currentTarget.value let value = ev.currentTarget.value
this.actor.editItemField(itemId, itemType, itemField, dataType, value) this.actor.editItemField(itemId, itemType, itemField, dataType, value)
}) })
html.find('.quantity-minus').click(event => { html.find('.quantity-minus').click(event => {
const li = $(event.currentTarget).parents(".item"); const li = $(event.currentTarget).parents(".item");
this.actor.incDecQuantity( li.data("item-id"), -1 ); this.actor.incDecQuantity( li.data("item-id"), -1 );
@ -131,7 +134,16 @@ export class MournbladeActorSheet extends ActorSheet {
let armeId = li.data("item-id") let armeId = li.data("item-id")
this.actor.rollArmeDegats(armeId) this.actor.rollArmeDegats(armeId)
}) })
html.find('.quantity-modify').click(event => {
const li = $(event.currentTarget).parents(".item")
const value = Number($(event.currentTarget).data("quantite-value"))
this.actor.incDecQuantity( li.data("item-id"), value );
})
html.find('.item-add').click((event) => {
const itemType = $(event.currentTarget).data("type")
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
})
html.find('.lock-unlock-sheet').click((event) => { html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore; this.options.editScore = !this.options.editScore;

View File

@ -96,27 +96,39 @@ export class MournbladeActor extends Actor {
armes.push(this.prepareBouclier(arme)) armes.push(this.prepareBouclier(arme))
} }
} }
MournbladeUtility.sortArrayObjectsByName(armes)
return armes return armes
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getDons() { getItemSorted( types) {
return this.items.filter(item => item.type == "don") let items = this.items.filter(item => types.includes(item.type )) || []
MournbladeUtility.sortArrayObjectsByName(items)
return items
}
getDons() {
return this.getItemSorted(["don"])
} }
/* -------------------------------------------- */
getTendances() { getTendances() {
return this.items.filter(item => item.type == "tendance") return this.getItemSorted(["tendance"])
} }
getRunes() { getRunes() {
return this.items.filter(item => item.type == "rune") return this.getItemSorted(["rune"])
} }
/* -------------------------------------------- */
getEquipments() { getEquipments() {
return this.items.filter(item => item.type == "equipement") return this.getItemSorted(["equipement"])
}
getTraitsChaotiques() {
return this.getItemSorted(["traitchaotique"])
}
getMonnaies() {
return this.getItemSorted(["monnaie"])
} }
/* -------------------------------------------- */
getArmors() { getArmors() {
return this.items.filter(item => item.type == "protection") return this.getItemSorted(["protection"])
}
getRuneEffects() {
return this.getItemSorted(["runeeffect"])
} }
getOrigine() { getOrigine() {
return this.items.find(item => item.type == "origine") return this.items.find(item => item.type == "origine")
@ -147,17 +159,8 @@ export class MournbladeActor extends Actor {
comp.push(item) comp.push(item)
} }
} }
return comp.sort(function (a, b) { MournbladeUtility.sortArrayObjectsByName(comp)
let fa = a.name.toLowerCase(), return comp
fb = b.name.toLowerCase();
if (fa < fb) {
return -1;
}
if (fa > fb) {
return 1;
}
return 0;
})
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -359,11 +362,10 @@ export class MournbladeActor extends Actor {
async incDecQuantity(objetId, incDec = 0) { async incDecQuantity(objetId, incDec = 0) {
let objetQ = this.items.get(objetId) let objetQ = this.items.get(objetId)
if (objetQ) { if (objetQ) {
let newQ = objetQ.system.quantity + incDec; let newQ = objetQ.system.quantite + incDec;
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'system.quantity': newQ }]); // pdates one EmbeddedEntity const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'system.quantite': newQ }]); // pdates one EmbeddedEntity
} }
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getCompetence(compId) { getCompetence(compId) {
return this.items.get(compId) return this.items.get(compId)
@ -407,6 +409,7 @@ export class MournbladeActor extends Actor {
rollData.alias = this.name rollData.alias = this.name
rollData.actorImg = this.img rollData.actorImg = this.img
rollData.actorId = this.id rollData.actorId = this.id
rollData.tokenId = this.token?.id
rollData.img = this.img rollData.img = this.img
rollData.canEclatDoubleD20 = this.canEclatDoubleD20() rollData.canEclatDoubleD20 = this.canEclatDoubleD20()
rollData.doubleD20 = false rollData.doubleD20 = false
@ -433,7 +436,6 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollAttribut(attrKey) { async rollAttribut(attrKey) {
let rollData = this.getCommonRollData(attrKey) let rollData = this.getCommonRollData(attrKey)
console.log("RollDatra", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData) let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true) rollDialog.render(true)
} }

View File

@ -68,8 +68,8 @@ export class MournbladeItemSheet extends ItemSheet {
isGM: game.user.isGM isGM: game.user.isGM
} }
if ( objectData.type =="don") { if ( objectData.type == "don") {
sacrifice = await TextEditor.enrichHTML(this.object.system.sacrifice, {async: true}) formData.sacrifice = await TextEditor.enrichHTML(this.object.system.sacrifice, {async: true})
} }
//this.options.editable = !(this.object.origin == "embeddedItem"); //this.options.editable = !(this.object.origin == "embeddedItem");
console.log("ITEM DATA", formData, this); console.log("ITEM DATA", formData, this);
@ -135,26 +135,26 @@ export class MournbladeItemSheet extends ItemSheet {
let index = li.data("prediction-index") let index = li.data("prediction-index")
let pred = duplicate(this.object.system.predilections) let pred = duplicate(this.object.system.predilections)
pred[index].name = ev.currentTarget.value pred[index].name = ev.currentTarget.value
this.object.update( { 'data.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('.delete-prediction').click(ev => { html.find('.delete-prediction').click(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") let index = li.data("prediction-index")
let pred = duplicate(this.object.system.predilections) let pred = duplicate(this.object.system.predilections)
pred.splice(index,1) pred.splice(index,1)
this.object.update( { 'data.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('.use-prediction').change(ev => { html.find('.use-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") let index = li.data("prediction-index")
let pred = duplicate(this.object.system.predilections) let pred = duplicate(this.object.system.predilections)
pred[index].used = ev.currentTarget.checked pred[index].used = ev.currentTarget.checked
this.object.update( { 'data.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('#add-predilection').click(ev => { html.find('#add-predilection').click(ev => {
let pred = duplicate(this.object.system.predilections) let pred = duplicate(this.object.system.predilections)
pred.push( { name: "Nouvelle prédilection", used: false }) pred.push( { name: "Nouvelle prédilection", id: randomID(), used: false })
this.object.update( { 'data.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
// Update Inventory Item // Update Inventory Item
html.find('.item-delete').click(ev => { html.find('.item-delete').click(ev => {

View File

@ -11,6 +11,7 @@ export const defaultItemImg = {
predilection: "systems/fvtt-mournblade/assets/icons/predilection.webp", predilection: "systems/fvtt-mournblade/assets/icons/predilection.webp",
protection: "systems/fvtt-mournblade/assets/icons/protection.webp", protection: "systems/fvtt-mournblade/assets/icons/protection.webp",
rune: "systems/fvtt-mournblade/assets/icons/rune.webp", rune: "systems/fvtt-mournblade/assets/icons/rune.webp",
runeeffect: "systems/fvtt-mournblade/assets/icons/rune.webp",
tendance: "systems/fvtt-mournblade/assets/icons/tendance.webp", tendance: "systems/fvtt-mournblade/assets/icons/tendance.webp",
traitchaotique: "systems/fvtt-mournblade/assets/icons/traitchaotique.webp", traitchaotique: "systems/fvtt-mournblade/assets/icons/traitchaotique.webp",
} }

View File

@ -68,7 +68,8 @@ function welcomeMessage() {
content: `<div id="welcome-message-Mournblade"><span class="rdd-roll-part"> content: `<div id="welcome-message-Mournblade"><span class="rdd-roll-part">
<strong>Bienvenue dans les Jeunes Royaumes de Mournblade !</strong> <strong>Bienvenue dans les Jeunes Royaumes de Mournblade !</strong>
<p>Les livres de Mournblade sont nécessaires pour jouer : https://www.titam-france.fr</p> <p>Les livres de Mournblade sont nécessaires pour jouer : https://www.titam-france.fr</p>
<p>Mournblade est jeude rôle publié par Titam France/Sombres projets, tout les droits leur appartiennent.<p> <p>Mournblade est jeu de rôle publié par Titam France/Sombres projets, tout les droits leur appartiennent.</p>
<p>Système développé par LeRatierBretonnien, support sur le <a href="https://discord.gg/pPSDNJk">Discord FR de Foundry</a>.</p>
` }); ` });
} }
@ -113,11 +114,6 @@ Hooks.once("ready", function () {
}); });
} }
// CSS patch for v9
if (game.version) {
let sidebar = document.getElementById("sidebar");
sidebar.style.width = "min-content";
}
registerUsageCount('fvtt-mournblade') registerUsageCount('fvtt-mournblade')
welcomeMessage(); welcomeMessage();
}); });

View File

@ -5,7 +5,7 @@ export class MournbladeRollDialog extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async create(actor, rollData ) { static async create(actor, rollData ) {
let options = { classes: ["MournbladeDialog"], width: 340, height: 420, 'z-index': 99999 }; let options = { classes: ["MournbladeDialog"], width: 340, height: 'fit-content', 'z-index': 99999 };
let html = await renderTemplate('systems/fvtt-mournblade/templates/roll-dialog-generic.html', rollData); let html = await renderTemplate('systems/fvtt-mournblade/templates/roll-dialog-generic.html', rollData);
return new MournbladeRollDialog(actor, rollData, html, options ); return new MournbladeRollDialog(actor, rollData, html, options );

View File

@ -46,6 +46,17 @@ export class MournbladeUtility {
}) })
} }
/* -------------------------------------------- */
static getActorFromRollData(rollData) {
let actor = game.actors.get(rollData.actorId)
if (rollData.tokenId) {
let token = canvas.tokens.placeables.find(t => t.id == rollData.tokenId)
if (token) {
actor = token.actor
}
}
return actor
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static getModificateurOptions() { static getModificateurOptions() {
@ -56,6 +67,13 @@ export class MournbladeUtility {
return opt.concat("\n") return opt.concat("\n")
} }
/* -------------------------------------------- */
static sortArrayObjectsByName(myArray) {
myArray.sort((a, b) => {
return a.name.localeCompare(b.name);
})
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static getPointAmeOptions() { static getPointAmeOptions() {
let opt = [] let opt = []
@ -100,6 +118,13 @@ export class MournbladeUtility {
static getOptionsStatusList() { static getOptionsStatusList() {
return this.optionsStatusList; return this.optionsStatusList;
} }
/* -------------------------------------------- */
static getPredilection(comp, predIdx) {
let pred = duplicate(comp.system.predilections)
return duplicate(pred[predIdx] || {name: "Error!"} )
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static async chatListeners(html) { static async chatListeners(html) {
@ -108,10 +133,11 @@ export class MournbladeUtility {
let messageId = MournbladeUtility.findChatMessageId(event.currentTarget) let messageId = MournbladeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId) let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
await actor.setPredilectionUsed(rollData.competence._id, predIdx) await actor.setPredilectionUsed(rollData.competence._id, predIdx)
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id)) rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
MournbladeUtility.rollMournblade(rollData) rollData.predilectionUsed = MournbladeUtility.getPredilection(rollData.competence, predIdx)
await MournbladeUtility.rollMournblade(rollData)
}) })
} }
@ -183,11 +209,6 @@ export class MournbladeUtility {
return undefined; return undefined;
} }
/* -------------------------------------------- */
static getDefenseState(actorId) {
return this.defenderStore[actorId];
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static updateRollData(rollData) { static updateRollData(rollData) {
@ -211,7 +232,6 @@ export class MournbladeUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static onSocketMesssage(msg) { static onSocketMesssage(msg) {
//console.log("SOCKET MESSAGE", msg.name, game.user.character.id, msg.data.defenderId);
if (msg.name == "msg_update_defense_state") { if (msg.name == "msg_update_defense_state") {
this.updateDefenseState(msg.data.defenderId, msg.data.rollId); this.updateDefenseState(msg.data.defenderId, msg.data.rollId);
} }
@ -292,7 +312,7 @@ export class MournbladeUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async rollMournblade(rollData) { static async rollMournblade(rollData) {
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
if (rollData.attrKey == "tochoose") { // No attr selected, force address if (rollData.attrKey == "tochoose") { // No attr selected, force address
rollData.attrKey = "adr" rollData.attrKey = "adr"
} }
@ -310,7 +330,7 @@ export class MournbladeUtility {
} }
//console.log("BEFORE COMP", rollData) //console.log("BEFORE COMP", rollData)
if (rollData.competence) { if (rollData.competence) {
rollData.predilections = duplicate(rollData.competence.system.predilections.filter(pred => !pred.used) || []) rollData.predilections = duplicate(rollData.competence.system.predilections)
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0 let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}` rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
} else { } else {
@ -333,7 +353,8 @@ export class MournbladeUtility {
let myRoll = new Roll(rollData.diceFormula).roll({ async: false }) let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = myRoll rollData.roll = duplicate(myRoll)
rollData.diceResult = myRoll.terms[0].results[0].result
console.log(">>>> ", myRoll) console.log(">>>> ", myRoll)
rollData.finalResult = myRoll.total rollData.finalResult = myRoll.total
@ -359,7 +380,7 @@ export class MournbladeUtility {
let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false }) let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false })
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode")); await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = bonusRoll rollData.bonusRoll = duplicate(bonusRoll)
rollData.finalResult += rollData.bonusRoll.total rollData.finalResult += rollData.bonusRoll.total
@ -473,7 +494,7 @@ export class MournbladeUtility {
rollData.defenderTokenId = target.id rollData.defenderTokenId = target.id
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
rollData.armeDefense = defender.getBestDefenseValue() rollData.armeDefense = defender.getBestDefenseValue()
if ( rollData.armeDefense) { if (rollData.armeDefense) {
rollData.difficulte = rollData.armeDefense.system.totalDefensif rollData.difficulte = rollData.armeDefense.system.totalDefensif
} else { } else {
ui.notifications.warn("Aucune arme de défense équipée, difficulté manuelle à positionner.") ui.notifications.warn("Aucune arme de défense équipée, difficulté manuelle à positionner.")
@ -492,7 +513,7 @@ export class MournbladeUtility {
let msg = game.messages.get(msgId) let msg = game.messages.get(msgId)
if (msg) { if (msg) {
let rollData = msg.getFlag("world", "mournblade-roll") let rollData = msg.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
actor.changeBonneAventure(changed) actor.changeBonneAventure(changed)
rollData.isReroll = true rollData.isReroll = true
rollData.textBonus = "Bonus de Points d'Aventure" rollData.textBonus = "Bonus de Points d'Aventure"
@ -511,7 +532,7 @@ export class MournbladeUtility {
let msg = game.messages.get(msgId) let msg = game.messages.get(msgId)
if (msg) { if (msg) {
let rollData = msg.getFlag("world", "mournblade-roll") let rollData = msg.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
actor.changeEclat(changed) actor.changeEclat(changed)
rollData.isReroll = true rollData.isReroll = true
rollData.textBonus = "Bonus d'Eclat" rollData.textBonus = "Bonus d'Eclat"
@ -526,37 +547,37 @@ export class MournbladeUtility {
let canApplyBALoyal = function (li) { let canApplyBALoyal = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "loyal") return (!rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "loyal")
} }
let canApplyPELoyal = function (li) { let canApplyPELoyal = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "loyal") return (!rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "loyal")
} }
let canApplyBAChaotique = function (li) { let canApplyBAChaotique = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "chaotique") return (!rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "chaotique")
} }
let canApplyBAChaotique3 = function (li) { let canApplyBAChaotique3 = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 2 && actor.getAlignement() == "chaotique") return (!rollData.isReroll && actor.getBonneAventure() > 2 && actor.getAlignement() == "chaotique")
} }
let canApplyPEChaotique = function (li) { let canApplyPEChaotique = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "chaotique") return (!rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "chaotique")
} }
let hasPredilection = function (li) { let hasPredilection = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
if (rollData.competence) { if (rollData.competence) {
let nbPred = rollData.competence.data.predilections.filter(pred => !pred.used).length let nbPred = rollData.competence.data.predilections.filter(pred => !pred.used).length
return (!rollData.isReroll && rollData.competence && nbPred > 0) return (!rollData.isReroll && rollData.competence && nbPred > 0)
@ -566,7 +587,7 @@ export class MournbladeUtility {
let canCompetenceDouble = function (li) { let canCompetenceDouble = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = game.actors.get(rollData.actorId) let actor = MournbladeUtility.getActorFromRollData(rollData)
if (rollData.competence) { if (rollData.competence) {
return rollData.competence.data.doublebonus return rollData.competence.data.doublebonus
} }

BIN
packs/armes/000005.ldb Normal file

Binary file not shown.

0
packs/armes/000040.log Normal file
View File

1
packs/armes/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/armes/LOCK Normal file
View File

8
packs/armes/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.593727 7f3322ffd6c0 Recovering log #36
2023/12/21-19:17:33.639350 7f3322ffd6c0 Delete type=3 #34
2023/12/21-19:17:33.639464 7f3322ffd6c0 Delete type=0 #36
2023/12/21-19:20:44.881496 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.881541 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.888812 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.900167 7f33223ff6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.900223 7f33223ff6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)

8
packs/armes/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.681898 7f35b8bfa6c0 Recovering log #32
2023/12/21-15:38:38.691893 7f35b8bfa6c0 Delete type=3 #30
2023/12/21-15:38:38.692031 7f35b8bfa6c0 Delete type=0 #32
2023/12/21-15:39:48.799860 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.799891 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.806560 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.820290 7f33223ff6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.828125 7f33223ff6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)

BIN
packs/armes/MANIFEST-000038 Normal file

Binary file not shown.

BIN
packs/dons/000005.ldb Normal file

Binary file not shown.

0
packs/dons/000040.log Normal file
View File

1
packs/dons/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/dons/LOCK Normal file
View File

8
packs/dons/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.734981 7f3323fff6c0 Recovering log #36
2023/12/21-19:17:33.773456 7f3323fff6c0 Delete type=3 #34
2023/12/21-19:17:33.773550 7f3323fff6c0 Delete type=0 #36
2023/12/21-19:20:44.922857 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.922912 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.929747 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.930040 7f33223ff6c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.930127 7f33223ff6c0 Manual compaction at level-1 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)

8
packs/dons/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.721918 7f3323fff6c0 Recovering log #32
2023/12/21-15:38:38.732673 7f3323fff6c0 Delete type=3 #30
2023/12/21-15:38:38.732730 7f3323fff6c0 Delete type=0 #32
2023/12/21-15:39:48.820322 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.820379 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.827848 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.828148 7f33223ff6c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.828211 7f33223ff6c0 Manual compaction at level-1 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)

BIN
packs/dons/MANIFEST-000038 Normal file

Binary file not shown.

BIN
packs/equipement/000005.ldb Normal file

Binary file not shown.

View File

1
packs/equipement/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/equipement/LOCK Normal file
View File

8
packs/equipement/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.696684 7f33237fe6c0 Recovering log #36
2023/12/21-19:17:33.731835 7f33237fe6c0 Delete type=3 #34
2023/12/21-19:17:33.731930 7f33237fe6c0 Delete type=0 #36
2023/12/21-19:20:44.900432 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.900494 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.907220 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.929964 7f33223ff6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.930062 7f33223ff6c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)

8
packs/equipement/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.708703 7f33237fe6c0 Recovering log #32
2023/12/21-15:38:38.718410 7f33237fe6c0 Delete type=3 #30
2023/12/21-15:38:38.718471 7f33237fe6c0 Delete type=0 #32
2023/12/21-15:39:48.806833 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.806886 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.813500 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.828075 7f33223ff6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.828188 7f33223ff6c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/heritages/000005.ldb Normal file

Binary file not shown.

View File

1
packs/heritages/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/heritages/LOCK Normal file
View File

8
packs/heritages/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.834030 7f35b8bfa6c0 Recovering log #36
2023/12/21-19:17:33.890233 7f35b8bfa6c0 Delete type=3 #34
2023/12/21-19:17:33.890765 7f35b8bfa6c0 Delete type=0 #36
2023/12/21-19:20:44.938047 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.938083 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.944658 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.959089 7f33223ff6c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.959161 7f33223ff6c0 Manual compaction at level-1 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)

8
packs/heritages/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.748077 7f3322ffd6c0 Recovering log #32
2023/12/21-15:38:38.758754 7f3322ffd6c0 Delete type=3 #30
2023/12/21-15:38:38.758819 7f3322ffd6c0 Delete type=0 #32
2023/12/21-15:39:48.828342 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.828403 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.834842 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.855589 7f33223ff6c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.855668 7f33223ff6c0 Manual compaction at level-1 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/metiers/000005.ldb Normal file

Binary file not shown.

0
packs/metiers/000040.log Normal file
View File

1
packs/metiers/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/metiers/LOCK Normal file
View File

8
packs/metiers/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.894585 7f33237fe6c0 Recovering log #36
2023/12/21-19:17:33.931836 7f33237fe6c0 Delete type=3 #34
2023/12/21-19:17:33.931972 7f33237fe6c0 Delete type=0 #36
2023/12/21-19:20:44.930300 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.930393 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.937916 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.959070 7f33223ff6c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.959134 7f33223ff6c0 Manual compaction at level-1 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)

8
packs/metiers/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.762194 7f33237fe6c0 Recovering log #32
2023/12/21-15:38:38.772223 7f33237fe6c0 Delete type=3 #30
2023/12/21-15:38:38.772283 7f33237fe6c0 Delete type=0 #32
2023/12/21-15:39:48.848998 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.849024 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.855462 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.855625 7f33223ff6c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.855650 7f33223ff6c0 Manual compaction at level-1 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/origines/000005.ldb Normal file

Binary file not shown.

View File

1
packs/origines/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/origines/LOCK Normal file
View File

8
packs/origines/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.780177 7f3322ffd6c0 Recovering log #36
2023/12/21-19:17:33.829775 7f3322ffd6c0 Delete type=3 #34
2023/12/21-19:17:33.829923 7f3322ffd6c0 Delete type=0 #36
2023/12/21-19:20:44.915993 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.916063 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.922657 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.930016 7f33223ff6c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.930106 7f33223ff6c0 Manual compaction at level-1 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)

8
packs/origines/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.735509 7f35b8bfa6c0 Recovering log #32
2023/12/21-15:38:38.744908 7f35b8bfa6c0 Delete type=3 #30
2023/12/21-15:38:38.744979 7f35b8bfa6c0 Delete type=0 #32
2023/12/21-15:39:48.835017 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.835057 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.842344 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.855603 7f33223ff6c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.855659 7f33223ff6c0 Manual compaction at level-1 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/protection/000005.ldb Normal file

Binary file not shown.

View File

1
packs/protection/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/protection/LOCK Normal file
View File

8
packs/protection/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.643159 7f35b8bfa6c0 Recovering log #36
2023/12/21-19:17:33.693846 7f35b8bfa6c0 Delete type=3 #34
2023/12/21-19:17:33.693987 7f35b8bfa6c0 Delete type=0 #36
2023/12/21-19:20:44.907492 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.907557 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.915742 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.929991 7f33223ff6c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.930084 7f33223ff6c0 Manual compaction at level-1 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)

8
packs/protection/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.695816 7f3322ffd6c0 Recovering log #32
2023/12/21-15:38:38.705849 7f3322ffd6c0 Delete type=3 #30
2023/12/21-15:38:38.705914 7f3322ffd6c0 Delete type=0 #32
2023/12/21-15:39:48.813588 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.813615 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.820057 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.828104 7f33223ff6c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.828169 7f33223ff6c0 Manual compaction at level-1 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/runes/000005.ldb Normal file

Binary file not shown.

0
packs/runes/000040.log Normal file
View File

1
packs/runes/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/runes/LOCK Normal file
View File

8
packs/runes/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:34.037650 7f35b8bfa6c0 Recovering log #36
2023/12/21-19:17:34.082011 7f35b8bfa6c0 Delete type=3 #34
2023/12/21-19:17:34.082183 7f35b8bfa6c0 Delete type=0 #36
2023/12/21-19:20:44.967137 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.967184 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.974006 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.974230 7f33223ff6c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.974271 7f33223ff6c0 Manual compaction at level-1 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)

8
packs/runes/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.809473 7f3322ffd6c0 Recovering log #32
2023/12/21-15:38:38.819369 7f3322ffd6c0 Delete type=3 #30
2023/12/21-15:38:38.819436 7f3322ffd6c0 Delete type=0 #32
2023/12/21-15:39:48.866633 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.866687 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.873873 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.887535 7f33223ff6c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.887594 7f33223ff6c0 Manual compaction at level-1 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)

BIN
packs/runes/MANIFEST-000038 Normal file

Binary file not shown.

BIN
packs/skills/000005.ldb Normal file

Binary file not shown.

0
packs/skills/000040.log Normal file
View File

1
packs/skills/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/skills/LOCK Normal file
View File

8
packs/skills/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.539158 7f3323fff6c0 Recovering log #36
2023/12/21-19:17:33.588928 7f3323fff6c0 Delete type=3 #34
2023/12/21-19:17:33.589020 7f3323fff6c0 Delete type=0 #36
2023/12/21-19:20:44.874404 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.874448 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.881347 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.900142 7f33223ff6c0 Manual compaction at level-0 from '!items!0LlzDyCurJedqeyG' @ 72057594037927935 : 1 .. '!items!tq6mEgXog7h4VyWk' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.900210 7f33223ff6c0 Manual compaction at level-1 from '!items!0LlzDyCurJedqeyG' @ 72057594037927935 : 1 .. '!items!tq6mEgXog7h4VyWk' @ 0 : 0; will stop at (end)

8
packs/skills/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.668335 7f3323fff6c0 Recovering log #32
2023/12/21-15:38:38.678141 7f3323fff6c0 Delete type=3 #30
2023/12/21-15:38:38.678186 7f3323fff6c0 Delete type=0 #32
2023/12/21-15:39:48.782931 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.783224 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.789981 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.790146 7f33223ff6c0 Manual compaction at level-0 from '!items!0LlzDyCurJedqeyG' @ 72057594037927935 : 1 .. '!items!tq6mEgXog7h4VyWk' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.799834 7f33223ff6c0 Manual compaction at level-1 from '!items!0LlzDyCurJedqeyG' @ 72057594037927935 : 1 .. '!items!tq6mEgXog7h4VyWk' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/tables/000005.ldb Normal file

Binary file not shown.

0
packs/tables/000040.log Normal file
View File

1
packs/tables/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/tables/LOCK Normal file
View File

8
packs/tables/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:34.091820 7f33237fe6c0 Recovering log #36
2023/12/21-19:17:34.138376 7f33237fe6c0 Delete type=3 #34
2023/12/21-19:17:34.138520 7f33237fe6c0 Delete type=0 #36
2023/12/21-19:20:44.959349 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.959415 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.966819 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.974178 7f33223ff6c0 Manual compaction at level-0 from '!tables!zV2oJy8JZE0nngRY' @ 72057594037927935 : 1 .. '!tables.results!zV2oJy8JZE0nngRY.wTMX1TbxljHmHImp' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.974251 7f33223ff6c0 Manual compaction at level-1 from '!tables!zV2oJy8JZE0nngRY' @ 72057594037927935 : 1 .. '!tables.results!zV2oJy8JZE0nngRY.wTMX1TbxljHmHImp' @ 0 : 0; will stop at (end)

8
packs/tables/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.822806 7f33237fe6c0 Recovering log #32
2023/12/21-15:38:38.833583 7f33237fe6c0 Delete type=3 #30
2023/12/21-15:38:38.833639 7f33237fe6c0 Delete type=0 #32
2023/12/21-15:39:48.874007 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.874038 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.880506 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.887556 7f33223ff6c0 Manual compaction at level-0 from '!tables!zV2oJy8JZE0nngRY' @ 72057594037927935 : 1 .. '!tables.results!zV2oJy8JZE0nngRY.wTMX1TbxljHmHImp' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.887632 7f33223ff6c0 Manual compaction at level-1 from '!tables!zV2oJy8JZE0nngRY' @ 72057594037927935 : 1 .. '!tables.results!zV2oJy8JZE0nngRY.wTMX1TbxljHmHImp' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/tendances/000005.ldb Normal file

Binary file not shown.

View File

1
packs/tendances/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000038

0
packs/tendances/LOCK Normal file
View File

8
packs/tendances/LOG Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.934810 7f3323fff6c0 Recovering log #36
2023/12/21-19:17:33.976700 7f3323fff6c0 Delete type=3 #34
2023/12/21-19:17:33.977187 7f3323fff6c0 Delete type=0 #36
2023/12/21-19:20:44.944802 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.944841 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.951960 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.959106 7f33223ff6c0 Manual compaction at level-0 from '!items!0CYP1JpZu9mst5tK' @ 72057594037927935 : 1 .. '!items!zhPPsmTtLv7cyNHJ' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.959148 7f33223ff6c0 Manual compaction at level-1 from '!items!0CYP1JpZu9mst5tK' @ 72057594037927935 : 1 .. '!items!zhPPsmTtLv7cyNHJ' @ 0 : 0; will stop at (end)

8
packs/tendances/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.775141 7f3323fff6c0 Recovering log #32
2023/12/21-15:38:38.786017 7f3323fff6c0 Delete type=3 #30
2023/12/21-15:38:38.786087 7f3323fff6c0 Delete type=0 #32
2023/12/21-15:39:48.842675 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.842717 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.848873 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.855615 7f33223ff6c0 Manual compaction at level-0 from '!items!0CYP1JpZu9mst5tK' @ 72057594037927935 : 1 .. '!items!zhPPsmTtLv7cyNHJ' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.855677 7f33223ff6c0 Manual compaction at level-1 from '!items!0CYP1JpZu9mst5tK' @ 72057594037927935 : 1 .. '!items!zhPPsmTtLv7cyNHJ' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@ -0,0 +1 @@
MANIFEST-000038

View File

View File

@ -0,0 +1,8 @@
2023/12/21-19:17:33.986130 7f3322ffd6c0 Recovering log #36
2023/12/21-19:17:34.030179 7f3322ffd6c0 Delete type=3 #34
2023/12/21-19:17:34.030355 7f3322ffd6c0 Delete type=0 #36
2023/12/21-19:20:44.952141 7f33223ff6c0 Level-0 table #41: started
2023/12/21-19:20:44.952182 7f33223ff6c0 Level-0 table #41: 0 bytes OK
2023/12/21-19:20:44.958894 7f33223ff6c0 Delete type=0 #39
2023/12/21-19:20:44.959120 7f33223ff6c0 Manual compaction at level-0 from '!items!3J0HKjcVtBT39BiR' @ 72057594037927935 : 1 .. '!items!zeOtWz6oscp8Su5l' @ 0 : 0; will stop at (end)
2023/12/21-19:20:44.959174 7f33223ff6c0 Manual compaction at level-1 from '!items!3J0HKjcVtBT39BiR' @ 72057594037927935 : 1 .. '!items!zeOtWz6oscp8Su5l' @ 0 : 0; will stop at (end)

View File

@ -0,0 +1,8 @@
2023/12/21-15:38:38.789880 7f35b8bfa6c0 Recovering log #32
2023/12/21-15:38:38.806442 7f35b8bfa6c0 Delete type=3 #30
2023/12/21-15:38:38.806511 7f35b8bfa6c0 Delete type=0 #32
2023/12/21-15:39:48.880716 7f33223ff6c0 Level-0 table #37: started
2023/12/21-15:39:48.880801 7f33223ff6c0 Level-0 table #37: 0 bytes OK
2023/12/21-15:39:48.887313 7f33223ff6c0 Delete type=0 #35
2023/12/21-15:39:48.887577 7f33223ff6c0 Manual compaction at level-0 from '!items!3J0HKjcVtBT39BiR' @ 72057594037927935 : 1 .. '!items!zeOtWz6oscp8Su5l' @ 0 : 0; will stop at (end)
2023/12/21-15:39:48.887612 7f33223ff6c0 Manual compaction at level-1 from '!items!3J0HKjcVtBT39BiR' @ 72057594037927935 : 1 .. '!items!zeOtWz6oscp8Su5l' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@ -302,6 +302,12 @@ table {border: 1px solid #7a7971;}
font-size: 0.8rem; font-size: 0.8rem;
} }
.predilection-text {
padding-left: 8px;
font-style: italic;
font-size: 0.6rem;
}
.editor { .editor {
border: 2; border: 2;
height: 300px; height: 300px;
@ -924,8 +930,6 @@ ul, li {
} }
#sidebar #sidebar-tabs i{ #sidebar #sidebar-tabs i{
width: 25px;
height: 25px;
display: inline-block; display: inline-block;
background-position:center; background-position:center;
background-size:cover; background-size:cover;

View File

@ -1,7 +1,7 @@
{ {
"id": "fvtt-mournblade", "id": "fvtt-mournblade",
"description": "Mournblade RPG for FoundryVTT", "description": "Mournblade RPG for FoundryVTT",
"version": "10.0.10", "version": "11.0.4",
"authors": [ "authors": [
{ {
"name": "Uberwald/LeRatierBretonnien", "name": "Uberwald/LeRatierBretonnien",
@ -11,11 +11,19 @@
"esmodules": [ "esmodules": [
"modules/mournblade-main.js" "modules/mournblade-main.js"
], ],
"languages": [
{
"lang": "fr",
"name": "French",
"path": "lang/fr.json",
"flags": {}
}
],
"gridDistance": 5, "gridDistance": 5,
"gridUnits": "m", "gridUnits": "m",
"license": "LICENSE.txt", "license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-mournblade/raw/branch/v10/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-mournblade/raw/branch/v10/system.json",
"download": "https://www.uberwald.me/gitea/public/fvtt-mournblade/archive/fvtt-mournblade-10.0.10.zip", "download": "https://www.uberwald.me/gitea/public/fvtt-mournblade/archive/fvtt-mournblade-11.0.4.zip",
"packs": [ "packs": [
{ {
"type": "Item", "type": "Item",
@ -23,8 +31,8 @@
"name": "skills", "name": "skills",
"path": "packs/skills.db", "path": "packs/skills.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -32,8 +40,8 @@
"name": "armes", "name": "armes",
"path": "packs/armes.db", "path": "packs/armes.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -41,8 +49,8 @@
"name": "protection", "name": "protection",
"path": "packs/protection.db", "path": "packs/protection.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -50,8 +58,8 @@
"name": "equipement", "name": "equipement",
"path": "packs/equipement.db", "path": "packs/equipement.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"label": "Dons", "label": "Dons",
@ -59,8 +67,8 @@
"name": "dons", "name": "dons",
"path": "packs/dons.db", "path": "packs/dons.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -68,8 +76,8 @@
"name": "origines", "name": "origines",
"path": "packs/origines.db", "path": "packs/origines.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -77,8 +85,8 @@
"name": "heritages", "name": "heritages",
"path": "packs/heritages.db", "path": "packs/heritages.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -86,8 +94,8 @@
"name": "metiers", "name": "metiers",
"path": "packs/metiers.db", "path": "packs/metiers.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -95,8 +103,8 @@
"name": "tendances", "name": "tendances",
"path": "packs/tendances.db", "path": "packs/tendances.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -104,8 +112,8 @@
"name": "traits-chaotiques", "name": "traits-chaotiques",
"path": "packs/traits-chaotiques.db", "path": "packs/traits-chaotiques.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "Item", "type": "Item",
@ -113,8 +121,8 @@
"name": "runes", "name": "runes",
"path": "packs/runes.db", "path": "packs/runes.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
}, },
{ {
"type": "RollTable", "type": "RollTable",
@ -122,8 +130,8 @@
"name": "tables", "name": "tables",
"path": "packs/tables.db", "path": "packs/tables.db",
"system": "fvtt-mournblade", "system": "fvtt-mournblade",
"private": false, "flags": {},
"flags": {} "private": false
} }
], ],
"primaryTokenAttribute": "secondary.health", "primaryTokenAttribute": "secondary.health",
@ -137,7 +145,7 @@
"background": "systems/fvtt-mournblade/assets/ui/fond_mournblade.webp", "background": "systems/fvtt-mournblade/assets/ui/fond_mournblade.webp",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "10",
"verified": "10.286", "maximum": "11",
"maximum": "10" "verified": "11"
} }
} }

View File

@ -1,8 +1,7 @@
{ {
"Actor": { "Actor": {
"types": [ "types": [
"personnage", "personnage"
"pnj"
], ],
"templates": { "templates": {
"biodata": { "biodata": {
@ -234,6 +233,8 @@
] ]
}, },
"monnaie": { "monnaie": {
"quantite": 0,
"unite": "",
"templates": [ "templates": [
"base" "base"
] ]

View File

@ -196,8 +196,17 @@
{{#each skills as |skill key|}} {{#each skills as |skill key|}}
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence"> <li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
<img class="item-name-img" src="{{skill.img}}" /> <img class="item-name-img" src="{{skill.img}}" />
<span class="item-name-label competence-name"><a class="roll-competence" <div class="flexcol item-name-label">
data-attr-key="tochoose">{{skill.name}}</a></span>
<span class="item-name-label competence-name"><a class="roll-competence"
data-attr-key="tochoose">{{skill.name}}</a></span>
<span class="predilection-text">
{{#each skill.system.predilections as |pred key|}}
{{pred.name}},
{{/each}}
</span>
</div>
<select class="status-small-label color-class-common edit-item-data competence-niveau" type="text" <select class="status-small-label color-class-common edit-item-data competence-niveau" type="text"
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number"> data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
{{#select skill.system.niveau}} {{#select skill.system.niveau}}
@ -277,7 +286,7 @@
<span class="item-name-label-header"> <span class="item-name-label-header">
<h3><label class="items-title-text">Runes</label></h3> <h3><label class="items-title-text">Runes</label></h3>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-long">
<label class="short-label">Haut parler</label> <label class="short-label">Haut parler</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
@ -291,7 +300,7 @@
<li class="item flexrow " data-item-id="{{rune._id}}" data-item-type="rune"> <li class="item flexrow " data-item-id="{{rune._id}}" data-item-type="rune">
<img class="item-name-img" src="{{rune.img}}" /> <img class="item-name-img" src="{{rune.img}}" />
<span class="item-name-label competence-name"><a class="roll-rune">{{rune.name}}</a></span> <span class="item-name-label competence-name"><a class="roll-rune">{{rune.name}}</a></span>
<span class="item-field-label-short">{{rune.system.formule}}</span> <span class="item-field-label-long">{{rune.system.formule}}</span>
<span class="item-field-label-short">{{rune.system.seuil}}</span> <span class="item-field-label-short">{{rune.system.seuil}}</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
@ -332,6 +341,70 @@
</ul> </ul>
</div> </div>
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Traits Chaotiques</label></h3>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
</div>
</li>
{{#each traitsChaotiques as |trait key|}}
<li class="item flexrow " data-item-id="{{trait._id}}" data-item-type="traitchaotique">
<img class="item-name-img" src="{{trait.img}}" />
<span class="item-name-label competence-name">{{trait.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Runes actives</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Rune</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Mode</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Durée</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Ame</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
</div>
</li>
{{#each runeEffects as |runeEffect key|}}
<li class="item flexrow " data-item-id="{{runeEffect._id}}" data-item-type="runeeffect">
<img class="item-name-img" src="{{runeEffect.img}}" />
<span class="item-name-label competence-name">{{runeEffect.name}}</span>
<span class="item-field-label-long">{{runeEffect.system.rune}}</span>
<span class="item-field-label-short">{{upperFirst runeEffect.system.mode}}</span>
<span class="item-field-label-medium">{{runeEffect.system.duree}}</span>
<span class="item-field-label-short">{{runeEffect.system.pointame}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
</div> </div>
</div> </div>
@ -342,6 +415,43 @@
<div class="flexcol"> <div class="flexcol">
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Richesses et Argent</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Quantité</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Unité</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="monnaie" title="Ajouter une monnaie"><i
class="fas fa-plus"></i></a>
</div>
</li>
{{#each monnaies as |monnaie key|}}
<li class="item flexrow " data-item-id="{{monnaie._id}}" data-item-type="monnaie">
<img class="item-name-img" src="{{monnaie.img}}" />
<span class="item-name-label competence-name">{{monnaie.name}}</span>
<span class="item-name-label competence-name item-field-label-medium">{{monnaie.system.quantite}}
<a class="quantity-modify plus-minus-button" data-quantite-value="-1">-</a>
<a class="quantity-modify plus-minus-button" data-quantite-value="+1">+</a>
</span>
<span class="item-name-label competence-name item-field-label-medium">{{monnaie.system.unite}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div class="sheet-box color-bg-archetype"> <div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
@ -413,7 +523,7 @@
</span> </span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i <a class="item-control item-add" data-type="protection" title="Ajouter une protection"><i
class="fas fa-plus"></i></a> class="fas fa-plus"></i></a>
</div> </div>
</li> </li>
@ -442,7 +552,7 @@
</span> </span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i <a class="item-control item-add" data-type="equipement" title="Ajouter un équipement"><i
class="fas fa-plus"></i></a> class="fas fa-plus"></i></a>
</div> </div>
</li> </li>

View File

@ -24,6 +24,10 @@
<li>Compétence : {{competence.name}}</li> <li>Compétence : {{competence.name}}</li>
{{/if}} {{/if}}
{{#if predilectionUsed}}
<li>Predilection utilisée : {{predilectionUsed.name}}</li>
{{/if}}
{{#if rune}} {{#if rune}}
<li>Rune : {{rune.name}}</li> <li>Rune : {{rune.name}}</li>
<li>Mode : {{runemode}}</li> <li>Mode : {{runemode}}</li>
@ -40,6 +44,13 @@
{{/if}} {{/if}}
<li>Formule : {{diceFormula}}</li> <li>Formule : {{diceFormula}}</li>
<li>Dé : {{diceResult}}</li>
{{#if difficulte}}
<li>Difficulté : {{difficulte}}</li>
{{/if}}
<li></li>
<li>Total : {{finalResult}}</li> <li>Total : {{finalResult}}</li>
{{#if difficulte}} {{#if difficulte}}
@ -58,9 +69,12 @@
{{/if}} {{/if}}
{{#each predilections as |pred key|}} {{#each predilections as |pred key|}}
<li> {{#if (not pred.used)}}
<button class="chat-card-button predilection-reroll" data-predilection-index="{{key}}">Predilection : {{pred.name}}</button> <li>
</li> <button class="chat-card-button predilection-reroll" data-predilection-index="{{key}}">
Predilection : {{pred.name}}</button>
</li>
{{/if}}
{{/each}} {{/each}}
</ul> </ul>
</div> </div>

View File

@ -12,7 +12,7 @@
<div class="flexcol"> <div class="flexcol">
<span class="flexrow"> <span class="flexrow">
<label class="generic-label">Niveau : </label> <label class="generic-label">Niveau : </label>
<input type="text" class="padd-right status-small-label color-class-common" name="data.niveau" <input type="text" class="padd-right status-small-label color-class-common" name="system.niveau"
value="{{data.niveau}}" data-dtype="Number" /> value="{{data.niveau}}" data-dtype="Number" />
</span> </span>
<span class="flexrow"> <span class="flexrow">

Some files were not shown because too many files have changed in this diff Show More