Manye enhancements for combat
This commit is contained in:
BIN
images/icons/xpplus1.webp
Normal file
BIN
images/icons/xpplus1.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.1 KiB |
@@ -15,7 +15,7 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
|||||||
classes: ["fvtt-te-deum", "sheet", "actor"],
|
classes: ["fvtt-te-deum", "sheet", "actor"],
|
||||||
template: "systems/fvtt-te-deum/templates/actors/actor-sheet.hbs",
|
template: "systems/fvtt-te-deum/templates/actors/actor-sheet.hbs",
|
||||||
width: 860,
|
width: 860,
|
||||||
height:680,
|
height: 680,
|
||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }],
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }],
|
||||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||||
editScore: true
|
editScore: true
|
||||||
@@ -67,7 +67,6 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
|||||||
}
|
}
|
||||||
this.formData = formData;
|
this.formData = formData;
|
||||||
|
|
||||||
console.log("PC : ", formData, this.object);
|
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +79,7 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
|||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
html.bind("keydown", function(e) { // Ignore Enter in actores sheet
|
html.bind("keydown", function (e) { // Ignore Enter in actores sheet
|
||||||
if (e.keyCode === 13) return false;
|
if (e.keyCode === 13) return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -88,7 +87,7 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
|||||||
html.find('.item-edit').click(ev => {
|
html.find('.item-edit').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item-id")
|
const li = $(ev.currentTarget).parents(".item-id")
|
||||||
let itemId = li.data("item-id")
|
let itemId = li.data("item-id")
|
||||||
const item = this.actor.items.get( itemId );
|
const item = this.actor.items.get(itemId);
|
||||||
item.sheet.render(true);
|
item.sheet.render(true);
|
||||||
});
|
});
|
||||||
// Delete Inventory Item
|
// Delete Inventory Item
|
||||||
@@ -100,16 +99,20 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
|||||||
let dataType = $(ev.currentTarget).data("type")
|
let dataType = $(ev.currentTarget).data("type")
|
||||||
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouveau " + dataType, type: dataType }], { renderSheet: true })
|
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouveau " + dataType, type: dataType }], { renderSheet: true })
|
||||||
})
|
})
|
||||||
|
html.find('.blessure-add').click(ev => {
|
||||||
|
let dataType = $(ev.currentTarget).data("type")
|
||||||
|
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: { typeBlessure: "estafilade", localisation: "corps", value: 0, appliquee: true, description: "" } }], { renderSheet: true })
|
||||||
|
})
|
||||||
html.find('.competence-add').click(ev => {
|
html.find('.competence-add').click(ev => {
|
||||||
let dataType = $(ev.currentTarget).data("type")
|
let dataType = $(ev.currentTarget).data("type")
|
||||||
let caracKey = $(ev.currentTarget).data("carac-key")
|
let caracKey = $(ev.currentTarget).data("carac-key")
|
||||||
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: {caracteristique: caracKey} }], { renderSheet: true })
|
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: { caracteristique: caracKey } }], { renderSheet: true })
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.subactor-edit').click(ev => {
|
html.find('.subactor-edit').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
let actorId = li.data("actor-id");
|
let actorId = li.data("actor-id");
|
||||||
let actor = game.actors.get( actorId );
|
let actor = game.actors.get(actorId);
|
||||||
actor.sheet.render(true);
|
actor.sheet.render(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -120,12 +123,12 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
|||||||
});
|
});
|
||||||
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);
|
||||||
} );
|
});
|
||||||
html.find('.quantity-plus').click(event => {
|
html.find('.quantity-plus').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);
|
||||||
} );
|
});
|
||||||
|
|
||||||
html.find('.roll-competence').click((event) => {
|
html.find('.roll-competence').click((event) => {
|
||||||
let compId = $(event.currentTarget).data("comp-id")
|
let compId = $(event.currentTarget).data("comp-id")
|
||||||
@@ -147,13 +150,13 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
|||||||
});
|
});
|
||||||
html.find('.item-equip').click(ev => {
|
html.find('.item-equip').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
this.actor.equipItem( li.data("item-id") );
|
this.actor.equipItem(li.data("item-id"));
|
||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
html.find('.update-field').change(ev => {
|
html.find('.update-field').change(ev => {
|
||||||
const fieldName = $(ev.currentTarget).data("field-name");
|
const fieldName = $(ev.currentTarget).data("field-name");
|
||||||
let value = Number(ev.currentTarget.value);
|
let value = Number(ev.currentTarget.value);
|
||||||
this.actor.update( { [`${fieldName}`]: value } );
|
this.actor.update({ [`${fieldName}`]: value });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -34,7 +34,7 @@ export class TeDeumActor extends Actor {
|
|||||||
return actor;
|
return actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.type == 'pj' || data.type == 'pnj') {
|
if (data.type == 'pj' || data.type == 'pnj') {
|
||||||
const skills = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences")
|
const skills = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences")
|
||||||
data.items = data.items || []
|
data.items = data.items || []
|
||||||
for (let skill of skills) {
|
for (let skill of skills) {
|
||||||
@@ -65,6 +65,7 @@ export class TeDeumActor extends Actor {
|
|||||||
super._preUpdate(changed, options, user);
|
super._preUpdate(changed, options, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
getCompetenceScore(compName) {
|
getCompetenceScore(compName) {
|
||||||
let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase())
|
let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase())
|
||||||
if (competence) {
|
if (competence) {
|
||||||
@@ -158,6 +159,24 @@ export class TeDeumActor extends Actor {
|
|||||||
return game.system.tedeum.config.BONUS_DEGATS[this.system.caracteristiques.puissance.value]
|
return game.system.tedeum.config.BONUS_DEGATS[this.system.caracteristiques.puissance.value]
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
getAttaqueBonusDegats(rollData = undefined) {
|
||||||
|
let base = game.system.tedeum.config.BONUS_DEGATS[this.system.caracteristiques.puissance.value].value
|
||||||
|
let additionalBonus = 0
|
||||||
|
if (rollData) {
|
||||||
|
// Spécificité armes naturelle avec gantelet
|
||||||
|
if (rollData?.arme?.system.specificites?.poing?.hasSpec && this.items.find(item => item.type == "armure" && item.name.toLowerCase() == "gantelet" && item.system.equipe)) {
|
||||||
|
additionalBonus += 1
|
||||||
|
rollData.gantelet = true
|
||||||
|
}
|
||||||
|
if (rollData.isChargeAPied) {
|
||||||
|
additionalBonus += this.getCompetenceScore("course")
|
||||||
|
} else if (rollData.isChargeACheval) {
|
||||||
|
additionalBonus += this.getCompetenceScore("equitation")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return base + additionalBonus
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
getNbArmures() {
|
getNbArmures() {
|
||||||
return game.system.tedeum.config.MAX_ARMURES_LOURDES[this.system.caracteristiques.puissance.value]
|
return game.system.tedeum.config.MAX_ARMURES_LOURDES[this.system.caracteristiques.puissance.value]
|
||||||
}
|
}
|
||||||
@@ -269,41 +288,105 @@ export class TeDeumActor extends Actor {
|
|||||||
modTotal += blessDef.modifier
|
modTotal += blessDef.modifier
|
||||||
}
|
}
|
||||||
// Si le nombre de blessures est supérieur au score d'endurance, alors malus supplémentaire
|
// Si le nombre de blessures est supérieur au score d'endurance, alors malus supplémentaire
|
||||||
let endurance = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "endurance")
|
let enduranceScore = this.getCompetenceScore("endurance")
|
||||||
if (blessures.length > endurance.system.score) {
|
if (blessures.length > enduranceScore) {
|
||||||
modTotal += -1
|
modTotal += -1
|
||||||
}
|
}
|
||||||
return modTotal
|
return modTotal
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async appliquerBlessure(blessureId, locId, comment = "") {
|
||||||
|
let blessure = game.system.tedeum.config.blessures[blessureId]
|
||||||
|
if (!blessure) {
|
||||||
|
ui.notifications.warn("Type de blessure inconnu : " + blessureId)
|
||||||
|
console.error("Type de blessure inconnu : " + blessureId)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Create a new blessure object
|
||||||
|
let blessureObj = {
|
||||||
|
name: blessure.label,
|
||||||
|
type: "blessure",
|
||||||
|
system: {
|
||||||
|
typeBlessure: blessureId,
|
||||||
|
localisation: locId || "maindroite",
|
||||||
|
value: blessure.value,
|
||||||
|
appliquee: true,
|
||||||
|
description: comment,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.createEmbeddedDocuments('Item', [blessureObj]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getArmorDegatsModifier(rollData, combat) {
|
||||||
|
let loc = combat[rollData.loc.id]
|
||||||
|
// Sans armure
|
||||||
|
if (loc.armures.length == 0) {
|
||||||
|
return rollData.arme.system.degatsArmure.sansarmure
|
||||||
|
}
|
||||||
|
// Avec armure de cuir
|
||||||
|
if (loc.armures.find(a => a.system.typeArmure == "cuir")) {
|
||||||
|
return rollData.arme.system.degatsArmure.cuir
|
||||||
|
}
|
||||||
|
// Avec armure de maille
|
||||||
|
if (loc.armures.find(a => a.system.typeArmure == "maille")) {
|
||||||
|
return rollData.arme.system.degatsArmure.mailles
|
||||||
|
}
|
||||||
|
// Avec armure de plate
|
||||||
|
if (loc.armures.find(a => a.system.typeArmure == "plate")) {
|
||||||
|
return rollData.arme.system.degatsArmure.plates
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async appliquerDegats(rollData) {
|
async appliquerDegats(rollData) {
|
||||||
let combat = this.prepareCombat()
|
let combat = this.prepareCombat()
|
||||||
rollData.defenderName = this.name
|
rollData.defenderName = this.name
|
||||||
let touche = combat[rollData.loc.id].touche
|
let touche = combat[rollData.loc.id].touche
|
||||||
|
let armorDegatModifier = this.getArmorDegatsModifier(rollData, combat)
|
||||||
|
rollData.degats += armorDegatModifier
|
||||||
|
rollData.armorDegatModifier = armorDegatModifier
|
||||||
|
|
||||||
|
let blessureId = "indemne"
|
||||||
if (rollData.degats > 0 && rollData.degats > touche) {
|
if (rollData.degats > 0 && rollData.degats > touche) {
|
||||||
let diff = rollData.degats - touche
|
let diff = rollData.degats - touche
|
||||||
for (let bId in game.system.tedeum.config.blessures) {
|
for (let bId in game.system.tedeum.config.blessures) {
|
||||||
let blessure = game.system.tedeum.config.blessures[bId]
|
let blessure = game.system.tedeum.config.blessures[bId]
|
||||||
if (diff >= blessure.degatsMin && diff <= blessure.degatsMax) {
|
if (diff >= blessure.degatsMin && diff <= blessure.degatsMax) {
|
||||||
// Create a new blessure object
|
if (rollData.isReussiteCritique) {
|
||||||
let blessureObj = {
|
bId = game.system.tedeum.config.blessuresOrder[blessure.value + 1]
|
||||||
name: blessure.label,
|
|
||||||
type: "blessure",
|
|
||||||
system: {
|
|
||||||
typeBlessure: bId,
|
|
||||||
localisation: rollData.loc.id,
|
|
||||||
appliquee: true,
|
|
||||||
description: "Blessure infligée par un coup de " + rollData.arme.name + " de " + rollData.alias,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
rollData.blessure = blessureObj
|
blessureId = bId
|
||||||
this.createEmbeddedDocuments('Item', [blessureObj]);
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (rollData.isReussiteCritique && blessureId == "indemne") { // Critical success without degats => lightest blessure
|
||||||
|
blessureId = "estafilade"
|
||||||
|
}
|
||||||
|
console.log("Appliquer dégats", rollData, combat, blessureId)
|
||||||
|
if (blessureId != "indemne") {
|
||||||
|
let blessure = game.system.tedeum.config.blessures[blessureId]
|
||||||
|
// Create a new blessure object
|
||||||
|
let blessureObj = {
|
||||||
|
name: blessure.label,
|
||||||
|
type: "blessure",
|
||||||
|
system: {
|
||||||
|
typeBlessure: blessureId,
|
||||||
|
localisation: rollData.loc.id,
|
||||||
|
value: blessure.value,
|
||||||
|
appliquee: true,
|
||||||
|
description: "Blessure infligée par un coup de " + rollData.arme.name + " de " + rollData.alias,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rollData.blessure = blessureObj
|
||||||
|
rollData.touche = touche
|
||||||
|
this.createEmbeddedDocuments('Item', [blessureObj]);
|
||||||
|
}
|
||||||
// Display the relevant chat message
|
// Display the relevant chat message
|
||||||
let msg = await TeDeumUtility.createChatWithRollMode(rollData.alias, {
|
let msg = await TeDeumUtility.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-blessure-result.hbs`, rollData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-blessure-result.hbs`, rollData)
|
||||||
})
|
})
|
||||||
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
||||||
}
|
}
|
||||||
@@ -385,6 +468,7 @@ export class TeDeumActor extends Actor {
|
|||||||
xp = Math.max(xp + value, 0)
|
xp = Math.max(xp + value, 0)
|
||||||
await this.update({ [`system.caracteristiques.${key}.experience`]: xp })
|
await this.update({ [`system.caracteristiques.${key}.experience`]: xp })
|
||||||
this.sheet?.render(true)
|
this.sheet?.render(true)
|
||||||
|
ui.notifications.info(`+${value} XP en ${game.system.tedeum.config.caracteristiques[key].label}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -457,7 +541,7 @@ export class TeDeumActor extends Actor {
|
|||||||
flag = armure.system.superposableCuir
|
flag = armure.system.superposableCuir
|
||||||
}
|
}
|
||||||
if (item.system.typeArmure == "maille") {
|
if (item.system.typeArmure == "maille") {
|
||||||
flag = armure.system.superposableMaille
|
flag = armure.system.superposableMaille
|
||||||
}
|
}
|
||||||
if (item.system.typeArmure == "plate") {
|
if (item.system.typeArmure == "plate") {
|
||||||
flag = armure.system.superposablePlate
|
flag = armure.system.superposablePlate
|
||||||
@@ -533,6 +617,15 @@ export class TeDeumActor extends Actor {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getInitiativeScore() {
|
getInitiativeScore() {
|
||||||
let initiative = this.items.find(it => it.type == "competence" && it.name.toLowerCase() == "initiative")
|
let initiative = this.items.find(it => it.type == "competence" && it.name.toLowerCase() == "initiative")
|
||||||
|
initiative = foundry.utils.duplicate(initiative)
|
||||||
|
// Vérifie les armes avec bonus d'initiative
|
||||||
|
let armes = this.getArmes()
|
||||||
|
for (let arme of armes) {
|
||||||
|
if (arme.system.equipe && arme.system.bonusInitiative != 0) {
|
||||||
|
ui.notifications.info("L'arme " + arme.name + " vous confère un bonus d'initiative de " + arme.system.bonusInitiative)
|
||||||
|
initiative.system.score += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
if (initiative) {
|
if (initiative) {
|
||||||
return initiative.system.score
|
return initiative.system.score
|
||||||
}
|
}
|
||||||
@@ -607,12 +700,12 @@ export class TeDeumActor extends Actor {
|
|||||||
let weapon = this.items.get(armeId)
|
let weapon = this.items.get(armeId)
|
||||||
if (weapon) {
|
if (weapon) {
|
||||||
let bDegats = 0
|
let bDegats = 0
|
||||||
if ( weapon.system.typeArme == "melee" ) {
|
if (weapon.system.typeArme == "melee") {
|
||||||
bDegats = this.getBonusDegats()
|
bDegats = this.getBonusDegats()
|
||||||
}
|
}
|
||||||
let formula = weapon.system.degats + "+" + bDegats.value
|
let formula = weapon.system.degats + "+" + bDegats.value
|
||||||
let degatsRoll = await new Roll(formula).roll()
|
let degatsRoll = await new Roll(formula).roll()
|
||||||
await TeDeumUtility.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode") )
|
await TeDeumUtility.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
|
||||||
let rollData = this.getCommonRollData()
|
let rollData = this.getCommonRollData()
|
||||||
rollData.mode = "degats"
|
rollData.mode = "degats"
|
||||||
rollData.formula = formula
|
rollData.formula = formula
|
||||||
@@ -657,9 +750,14 @@ export class TeDeumActor extends Actor {
|
|||||||
let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase())
|
let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase())
|
||||||
if (competence) {
|
if (competence) {
|
||||||
rollData.competence = competence
|
rollData.competence = competence
|
||||||
|
rollData.compScore = rollData.competence.system.isBase ? this.system.caracteristiques[rollData.competence.system.caracteristique].value : rollData.competence.system.score
|
||||||
let c = foundry.utils.duplicate(this.system.caracteristiques[competence.system.caracteristique])
|
let c = foundry.utils.duplicate(this.system.caracteristiques[competence.system.caracteristique])
|
||||||
this.updateCarac(c, competence.system.caracteristique)
|
this.updateCarac(c, competence.system.caracteristique)
|
||||||
rollData.carac = c
|
rollData.carac = c
|
||||||
|
rollData.allongeLabel = game.system.tedeum.config.armeAllonges[weapon.system.allonge].label
|
||||||
|
rollData.allongeId = "courte"
|
||||||
|
rollData.allonges = foundry.utils.duplicate(game.system.tedeum.config.allonges[weapon.system.allonge])
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.warn("Impossible de trouver la compétence " + compName)
|
ui.notifications.warn("Impossible de trouver la compétence " + compName)
|
||||||
return
|
return
|
||||||
|
@@ -4,30 +4,46 @@ export const SYSTEM_ID = "fvtt-te-deum";
|
|||||||
export const TEDEUM_CONFIG = {
|
export const TEDEUM_CONFIG = {
|
||||||
|
|
||||||
BONUS_DEGATS: [{}, { label: "1d4", value: -2 }, { label: "1d6", value: -1 }, { label: "1d8", value: 0 },
|
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 }],
|
{ label: "1d10", value: 1 }, { label: "1d12", value: 2 }, { label: "1d20", value: 3 }],
|
||||||
MAX_ARMURES_LOURDES: [{}, { value: 1 }, { value: 3 }, { value: 5 },
|
MAX_ARMURES_LOURDES: [{}, { value: 1 }, { value: 3 }, { value: 5 },
|
||||||
{ value: 7 }, { value: 9 }, { value: 11 }],
|
{ value: 7 }, { value: 9 }, { value: 11 }],
|
||||||
ACTIONS_PAR_TOUR: [{}, { value: 1 }, { value: 2 }, { value: 2 },
|
ACTIONS_PAR_TOUR: [{}, { value: 1 }, { value: 2 }, { value: 2 },
|
||||||
{ value: 3 }, { value: 3 }, { value: 4 }],
|
{ value: 3 }, { value: 3 }, { value: 4 }],
|
||||||
COMMON_VALUE: [{}, { value: 1 }, { value: 2 }, { value: 3 },
|
COMMON_VALUE: [{}, { value: 1 }, { value: 2 }, { value: 3 },
|
||||||
{ value: 4 }, { value: 5 }, { value: 6 }],
|
{ value: 4 }, { value: 5 }, { value: 6 }],
|
||||||
COUT_XP: [{}, { value: 10 }, { value: 10 }, { value: 10 },
|
COUT_XP: [{}, { value: 10 }, { value: 10 }, { value: 10 },
|
||||||
{ value: 10 }, { value: 30 }, { value: 50 }],
|
{ value: 10 }, { value: 30 }, { value: 50 }],
|
||||||
|
|
||||||
LOCALISATION: {
|
LOCALISATION: {
|
||||||
"pieddroit": { label: "Pied Droit", value: 1, locMod: 0, id: "pieddroit", nbArmure: 1, score: { min: 1, max: 1 }, coord: { top: 500, left: 0 } },
|
"pieddroit": { label: "Pied Droit", value: 1, locMod: 0, id: "pieddroit", categorie: "pied", nbArmure: 1, score: { min: 1, max: 1 }, coord: { top: 500, left: 0 } },
|
||||||
"jambedroite": { label: "Jambe Droite", value: 1, locMod: -1, id: "jambedroite", nbArmure: 1, score: { min: 3, max: 4 }, coord: { top: 400, left: 100 } },
|
"jambedroite": { label: "Jambe Droite", value: 1, locMod: -1, id: "jambedroite", categorie: "jambe", nbArmure: 1, score: { min: 3, max: 4 }, coord: { top: 400, left: 100 } },
|
||||||
"jambegauche": { label: "Jambe Gauche", value: 1, locMod: -1, id: "jambegauche", nbArmure: 1, score: { min: 5, max: 6 }, coord: { top: 400, left: 300 } },
|
"jambegauche": { label: "Jambe Gauche", value: 1, locMod: -1, id: "jambegauche", categorie: "jambe", nbArmure: 1, score: { min: 5, max: 6 }, coord: { top: 400, left: 300 } },
|
||||||
"piedgauche": { label: "Pied Gauche", value: 1, locMod: 0, id: "piedgauche", nbArmure: 1, score: { min: 2, max: 2 }, coord: { top: 500, left: 400 } },
|
"piedgauche": { label: "Pied Gauche", value: 1, locMod: 0, id: "piedgauche", categorie: "pied", nbArmure: 1, score: { min: 2, max: 2 }, coord: { top: 500, left: 400 } },
|
||||||
"maindroite": { label: "Main Droite", value: 1, locMod: 0, id: "maindroite", nbArmure: 1, score: { min: 7, max: 7 }, coord: { top: 0, left: 0 } },
|
"maindroite": { label: "Main Droite", value: 1, locMod: 0, id: "maindroite", categorie: "main", nbArmure: 1, score: { min: 7, max: 7 }, coord: { top: 0, left: 0 } },
|
||||||
"maingauche": { label: "Main Gauche", value: 1, locMod: 0, id: "maingauche", nbArmure: 1, score: { min: 8, max: 8 }, coord: { top: 0, left: 400 } },
|
"maingauche": { label: "Main Gauche", value: 1, locMod: 0, id: "maingauche", categorie: "main", nbArmure: 1, score: { min: 8, max: 8 }, coord: { top: 0, left: 400 } },
|
||||||
"brasdroit": { label: "Bras Droit", value: 1, locMod: -1, id: "brasdroit", nbArmure: 2, score: { min: 9, max: 10 }, coord: { top: 200, left: 0 } },
|
"brasdroit": { label: "Bras Droit", value: 1, locMod: -1, id: "brasdroit", categorie: "bras", nbArmure: 2, score: { min: 9, max: 10 }, coord: { top: 200, left: 0 } },
|
||||||
"brasgauche": { label: "Bras Gauche", value: 1, locMod: -1, id: "brasgauche", nbArmure: 2, score: { min: 11, max: 12 }, coord: { top: 200, left: 400 } },
|
"brasgauche": { label: "Bras Gauche", value: 1, locMod: -1, id: "brasgauche", categorie: "bras", nbArmure: 2, score: { min: 11, max: 12 }, coord: { top: 200, left: 400 } },
|
||||||
"corps": { label: "Corps", value: 1, id: "corps", locMod: -2, nbArmure: 2, score: { min: 13, max: 17 }, coord: { top: 200, left: 200 } },
|
"corps": { label: "Corps", value: 1, id: "corps", categorie: "corps", locMod: -2, nbArmure: 2, score: { min: 13, max: 17 }, coord: { top: 200, left: 200 } },
|
||||||
"tete": { label: "Tête", value: 1, id: "tete", locMod: -2, nbArmure: 2, score: { min: 18, max: 20 }, coord: { top: 0, left: 200 } },
|
"tete": { label: "Tête", value: 1, id: "tete", categorie: "tete", locMod: -2, nbArmure: 2, score: { min: 18, max: 20 }, coord: { top: 0, left: 200 } },
|
||||||
|
},
|
||||||
|
|
||||||
|
ATTAQUE_CIBLEES: {
|
||||||
|
"aucune": { label: "Aucune", id: "aucune", locMod: 0, description: "Attaque non ciblée" },
|
||||||
|
"pieddroit": { label: "Pied Droit", id: "pieddroit", locMod: 0, description: "Attaque ciblée sur le pied droit" },
|
||||||
|
"jambedroite": { label: "Jambe Droite", id: "jambedroite", locMod: -1, description: "Attaque ciblée sur la jambe droite" },
|
||||||
|
"jambegauche": { label: "Jambe Gauche", id: "jambegauche", locMod: -1, description: "Attaque ciblée sur la jambe gauche" },
|
||||||
|
"piedgauche": { label: "Pied Gauche", id: "piedgauche", locMod: 0, description: "Attaque ciblée sur le pied gauche" },
|
||||||
|
"maindroite": { label: "Main Droite", id: "maindroite", locMod: 0, description: "Attaque ciblée sur la main droite" },
|
||||||
|
"maingauche": { label: "Main Gauche", id: "maingauche", locMod: 0, description: "Attaque ciblée sur la main gauche" },
|
||||||
|
"brasdroit": { label: "Bras Droit", id: "brasdroit", locMod: -1, description: "Attaque ciblée sur le bras droit" },
|
||||||
|
"brasgauche": { label: "Bras Gauche", id: "brasgauche", locMod: -1, description: "Attaque ciblée sur le bras gauche" },
|
||||||
|
"corps": { label: "Corps", id: "corps", locMod: -2, description: "Attaque ciblée sur le corps" },
|
||||||
|
"tete": { label: "Tête", id: "tete", locMod: -2, description: "Attaque ciblée sur la tête" },
|
||||||
},
|
},
|
||||||
|
|
||||||
ARME_SPECIFICITE: {
|
ARME_SPECIFICITE: {
|
||||||
|
"poing": { label: "Poings", id: "poing", melee: true, tir: false },
|
||||||
|
"pied": { label: "Pieds", id: "pied", melee: true, tir: false },
|
||||||
"encombrante": { label: "Encombrante", id: "encombrante", melee: true, tir: true },
|
"encombrante": { label: "Encombrante", id: "encombrante", melee: true, tir: true },
|
||||||
"maintiendistance": { label: "Maintien à distance", id: "maintiendistance", melee: true, tir: false },
|
"maintiendistance": { label: "Maintien à distance", id: "maintiendistance", melee: true, tir: false },
|
||||||
"coupassomant": { label: "Coup assomant", id: "coupassomant", melee: true, tir: false },
|
"coupassomant": { label: "Coup assomant", id: "coupassomant", melee: true, tir: false },
|
||||||
@@ -94,7 +110,7 @@ export const TEDEUM_CONFIG = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
caracteristiques: {
|
caracteristiques: {
|
||||||
savoir: { id: "savoir", value: "savoir", label: "Savoir", description:"Cette caractéristique correspond à la capacité d'abstraction intellectuelle ainsi qu'à la culture générale du personnage. Elle permet d'évaluer la compétence de base Mémoriser." },
|
savoir: { id: "savoir", value: "savoir", label: "Savoir", description: "Cette caractéristique correspond à la capacité d'abstraction intellectuelle ainsi qu'à la culture générale du personnage. Elle permet d'évaluer la compétence de base Mémoriser." },
|
||||||
sensibilite: { id: "sensibilite", value: "sensibilite", label: "Sensibilité", description: "Cette caractéristique correspond à l'ouverture du personnage sur le monde. Elle englobe l'altruisme, la spiritualité et la créativité du personnage. Elle permet d'évaluer la compétence de base Perception." },
|
sensibilite: { id: "sensibilite", value: "sensibilite", label: "Sensibilité", description: "Cette caractéristique correspond à l'ouverture du personnage sur le monde. Elle englobe l'altruisme, la spiritualité et la créativité du personnage. Elle permet d'évaluer la compétence de base Perception." },
|
||||||
entregent: { id: "entregent", value: "entregent", label: "Entregent", description: "Cette caractéristique correspond à l'ensemble des prédispositions sociales du personnage. Elle englobe le charisme et le respect des usages. Elle permet d'évaluer la compétence de base Charme." },
|
entregent: { id: "entregent", value: "entregent", label: "Entregent", description: "Cette caractéristique correspond à l'ensemble des prédispositions sociales du personnage. Elle englobe le charisme et le respect des usages. Elle permet d'évaluer la compétence de base Charme." },
|
||||||
complexion: { id: "complexion", value: "complexion", label: "Complexion", description: "Cette caractéristique permet d'évaluer la santé et la résistance physique du per- sonnage. Elle permet de calculer la com- pétence de base Endurance, capitale dans la résolution des blessures, la résistance à la douleur, au poison et aux maladies." },
|
complexion: { id: "complexion", value: "complexion", label: "Complexion", description: "Cette caractéristique permet d'évaluer la santé et la résistance physique du per- sonnage. Elle permet de calculer la com- pétence de base Endurance, capitale dans la résolution des blessures, la résistance à la douleur, au poison et aux maladies." },
|
||||||
@@ -102,10 +118,10 @@ export const TEDEUM_CONFIG = {
|
|||||||
adresse: { id: "adresse", value: "adresse", label: "Adresse", description: "Cette caractéristique correspond à la rapidité et la dextérité du personnage. Elle livre le nombre d'actions qu'un personnage peut accomplir en un tour de combat et permet d'évaluer les compétences de base Initiative & Course." },
|
adresse: { id: "adresse", value: "adresse", label: "Adresse", description: "Cette caractéristique correspond à la rapidité et la dextérité du personnage. Elle livre le nombre d'actions qu'un personnage peut accomplir en un tour de combat et permet d'évaluer les compétences de base Initiative & Course." },
|
||||||
},
|
},
|
||||||
allonges: {
|
allonges: {
|
||||||
courte: { courte: { malus: 0 }, moyenne: { malus: -1 }, longue: { malus: -2 }, treslongue: { malus: 0, esquive: 2 } },
|
courte: { courte: { label: "Courte (0)", malus: 0 }, moyenne: { label: "Moyenne (-1)", malus: -1 }, longue: { label: "Longue (-2)", malus: -2 }, treslongue: { label: "Très longue (0, 2 Esquives)", malus: 0, esquive: 2 } },
|
||||||
moyenne: { courte: { malus: 0 }, moyenne: { malus: 0 }, longue: { malus: -1 }, treslongue: { malus: 0, esquive: 2 } },
|
moyenne: { courte: { label: "Courte (0)", malus: 0 }, moyenne: { label: "Moyenne (0)", malus: 0 }, longue: { label: "Longue (-1)", malus: -1 }, treslongue: { label: "Très longue (0, 2 Esquives)", malus: 0, esquive: 2 } },
|
||||||
longue: { courte: { malus: -2 }, moyenne: { malus: -1 }, longue: { malus: 0 }, treslongue: { malus: -1, esquive: 1 } },
|
longue: { courte: { label: "Courte (-2)", malus: -2 }, moyenne: { label: "Moyenne (-1)", malus: -1 }, longue: { label: "Longue (0)", malus: 0 }, treslongue: { label: "Très longue (-1, 2 Esquives)", malus: -1, esquive: 1 } },
|
||||||
treslongue: { courte: { malus: 0, esquive: 2 }, moyenne: { malus: 0, esquive: 2 }, longue: { malus: 0, esquive: 1 }, treslongue: { malus: 0 } },
|
treslongue: { courte: { label: "Courte (0, 2 Esquives)", malus: 0, esquive: 2 }, moyenne: { label: "Moyenne (0, 2 Esquives)", malus: 0, esquive: 2 }, longue: { label: "Longue (0, 1 Esquive)", malus: 0, esquive: 1 }, treslongue: { label: "Très longue (0)", malus: 0 } },
|
||||||
},
|
},
|
||||||
providence: [
|
providence: [
|
||||||
{ labelM: "Brebis égarée", labelF: "Brebis égarée", value: 0, diceValue: "0" },
|
{ labelM: "Brebis égarée", labelF: "Brebis égarée", value: 0, diceValue: "0" },
|
||||||
@@ -195,13 +211,14 @@ export const TEDEUM_CONFIG = {
|
|||||||
{ value: "1", label: "+1 niveau" },
|
{ value: "1", label: "+1 niveau" },
|
||||||
{ value: "2", label: "+2 niveaux" }
|
{ value: "2", label: "+2 niveaux" }
|
||||||
],
|
],
|
||||||
|
blessuresOrder: ["indemne", "estafilade", "plaie", "plaiebeante", "plaieatroce", "tuenet", "tuenet", "tuenet", "tuenet", "tuenet"],
|
||||||
blessures: {
|
blessures: {
|
||||||
indemne: { value: 0, label: "Indemne", key: "indemne", degatsMax: -1, count: 0, modifier: 0 },
|
indemne: { value: 0, label: "Indemne", key: "indemne", degatsMax: -1, count: 0, modifier: 0 },
|
||||||
estafilade: { value: 1, label: "Estafilade", key: "estafilade", degatsMin: 0, degatsMax: 2, count: 1, modifier: 0 },
|
estafilade: { value: 1, label: "Estafilade", key: "estafilade", degatsMin: 0, degatsMax: 2, count: 1, modifier: 0 },
|
||||||
plaie: { value: 2, label: "Plaie", key: "plaie", degatsMin: 3, degatsMax: 4, count: 1, modifier: -1 },
|
plaie: { value: 2, label: "Plaie", key: "plaie", degatsMin: 3, degatsMax: 4, count: 1, modifier: -1 },
|
||||||
plaiebeante: { value: 3, label: "Plaie béante", key: "plaiebeante", degatsMin: 5, degatsMax: 6, count: 1, modifier: -2 },
|
plaiebeante: { value: 3, label: "Plaie béante", key: "plaiebeante", degatsMin: 5, degatsMax: 6, count: 1, modifier: -2 },
|
||||||
plaieatroce: { value: 4, label: "Plaie atroce", key: "plaieatroce", degatsMin: 7, degatsMax: 8, count: 1, horsCombat: true, modifier: -12 },
|
plaieatroce: { value: 4, label: "Plaie atroce", key: "plaieatroce", degatsMin: 7, degatsMax: 8, count: 1, horsCombat: true, modifier: -12 },
|
||||||
tunenet: { value: 5, label: "Tué net", key: "tuenet", degatsMin: 9, degatsMax: 100, count: 1, horsCombat: true, mort: true, modifier: -12 }
|
tuenet: { value: 5, label: "Tué net", key: "tuenet", degatsMin: 9, degatsMax: 100, count: 1, horsCombat: true, mort: true, modifier: -100 }
|
||||||
},
|
},
|
||||||
virulence: {
|
virulence: {
|
||||||
aucune: { label: "Aucune", value: "aucune", modifier: 0 },
|
aucune: { label: "Aucune", value: "aucune", modifier: 0 },
|
||||||
|
@@ -212,7 +212,7 @@ export class TeDeumUtility {
|
|||||||
let isAttackWinner = true
|
let isAttackWinner = true
|
||||||
let rWinner = this.currentOpposition
|
let rWinner = this.currentOpposition
|
||||||
let rLooser = rollData
|
let rLooser = rollData
|
||||||
if (rWinner.total < rLooser.total) {
|
if (rWinner.total <= rLooser.total) {
|
||||||
rWinner = rollData
|
rWinner = rollData
|
||||||
rLooser = this.currentOpposition
|
rLooser = this.currentOpposition
|
||||||
isAttackWinner = false
|
isAttackWinner = false
|
||||||
@@ -222,17 +222,33 @@ export class TeDeumUtility {
|
|||||||
winner: rWinner,
|
winner: rWinner,
|
||||||
looser: rLooser
|
looser: rLooser
|
||||||
}
|
}
|
||||||
|
// Update difficulty
|
||||||
|
rWinner.difficulty = rLooser.total
|
||||||
|
rLooser.difficulty = rWinner.total
|
||||||
|
await this.computeResults(rWinner)
|
||||||
|
await this.computeResults(rLooser)
|
||||||
|
// Auto XP management when opposed
|
||||||
|
if (rWinner.isReussiteCritique) {
|
||||||
|
let actor = this.getActorFromRollData(rWinner)
|
||||||
|
actor.modifyXP(rWinner.carac.key, 1)
|
||||||
|
}
|
||||||
|
if (rLooser.isEchecCritique) {
|
||||||
|
let actor = this.getActorFromRollData(rLooser)
|
||||||
|
actor.modifyXP(rLooser.carac.key, 1)
|
||||||
|
}
|
||||||
|
|
||||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-opposition-result.hbs`, oppositionData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-opposition-result.hbs`, oppositionData)
|
||||||
})
|
})
|
||||||
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
||||||
|
|
||||||
// Si le gagnant est l'attaquant, appliquer les dégats sur la victime
|
// Si le gagnant est l'attaquant, appliquer les dégats sur la victime
|
||||||
if ( isAttackWinner && rWinner.isSuccess && rWinner.mode == "arme" && rWinner.arme?.system.typeArme == "melee" && rWinner.defenderTokenId) {
|
if (isAttackWinner && rWinner.isSuccess && rWinner.mode == "arme" && rWinner.arme?.system.typeArme == "melee" && rWinner.defenderTokenId) {
|
||||||
this.appliquerDegats(rWinner)
|
await this.appliquerDegats(rWinner)
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Rolldata result", rollData)
|
|
||||||
|
console.log("Opposition result", rollData, isAttackWinner, oppositionData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -243,6 +259,12 @@ export class TeDeumUtility {
|
|||||||
if (defenderToken) {
|
if (defenderToken) {
|
||||||
let actor = defenderToken.actor
|
let actor = defenderToken.actor
|
||||||
await actor.appliquerDegats(rollData)
|
await actor.appliquerDegats(rollData)
|
||||||
|
// Attaque naturelle avec dégats inférieur à -2
|
||||||
|
if ((rollData?.arme?.system.specificites?.poing?.hasSpec || rollData?.arme?.system.specificites?.pied?.hasSpec) && rollData.degats < -2) {
|
||||||
|
let attacker = this.getActorFromRollData(rollData)
|
||||||
|
attacker.appliquerBlessure("estafilade", "maindroite", "Contusion suite à une attaque naturelle")
|
||||||
|
ui.notifications.info(`${attacker.name} subit 1 contusion en infligeant ${rollData.degats} dégâts à mains nues`)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.error("Impossible de trouver la cible de l'attaque, aucun degats appliqué")
|
ui.notifications.error("Impossible de trouver la cible de l'attaque, aucun degats appliqué")
|
||||||
}
|
}
|
||||||
@@ -267,6 +289,17 @@ export class TeDeumUtility {
|
|||||||
TeDeumUtility.appliquerDegats(rollData, messageId)
|
TeDeumUtility.appliquerDegats(rollData, messageId)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
$(html).on("click", '.chat-command-gain-xp', event => {
|
||||||
|
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||||
|
let message = game.messages.get(messageId)
|
||||||
|
let rollData = message.getFlag("world", "te-deum-rolldata")
|
||||||
|
if (rollData) {
|
||||||
|
let actor = TeDeumUtility.getActorFromRollData(rollData)
|
||||||
|
actor.modifyXP(rollData.carac.key, 1)
|
||||||
|
// Hide this button
|
||||||
|
event.currentTarget.style.display = 'none';
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -477,6 +510,15 @@ export class TeDeumUtility {
|
|||||||
if (rollData.isMouvement) {
|
if (rollData.isMouvement) {
|
||||||
localModifier -= 1
|
localModifier -= 1
|
||||||
}
|
}
|
||||||
|
if (rollData.arme && rollData.allongeId) {
|
||||||
|
localModifier += rollData.allonges[rollData.allongeId].malus
|
||||||
|
rollData.allongeMalus = rollData.allonges[rollData.allongeId].malus
|
||||||
|
rollData.nbEsquives = rollData.allonges[rollData.allongeId]?.esquive || 0
|
||||||
|
}
|
||||||
|
if (rollData.attaqueCiblee && rollData.attaqueCiblee != "aucune") {
|
||||||
|
localModifier -= 1
|
||||||
|
rollData.loc = foundry.utils.duplicate(game.system.tedeum.config.LOCALISATION[rollData.attaqueCiblee])
|
||||||
|
}
|
||||||
let diceBase = this.modifyDice(rollData.carac.dice, localModifier + Number(rollData.bonusMalus) + rollData.santeModifier)
|
let diceBase = this.modifyDice(rollData.carac.dice, localModifier + Number(rollData.bonusMalus) + rollData.santeModifier)
|
||||||
if (!diceBase) return;
|
if (!diceBase) return;
|
||||||
diceFormula = diceBase + "x + " + rollData.compScore
|
diceFormula = diceBase + "x + " + rollData.compScore
|
||||||
@@ -489,24 +531,30 @@ export class TeDeumUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async getLocalisation(rollData) {
|
static async getLocalisation(rollData) {
|
||||||
let locRoll = await new Roll("1d20").roll()
|
let locRoll
|
||||||
await this.showDiceSoNice(locRoll, game.settings.get("core", "rollMode"))
|
if (rollData.loc) {
|
||||||
rollData.locRoll = foundry.utils.duplicate(locRoll)
|
locRoll = await new Roll(String(rollData.loc.score.min)).roll()
|
||||||
for (let key in game.system.tedeum.config.LOCALISATION) {
|
} else {
|
||||||
let loc = game.system.tedeum.config.LOCALISATION[key]
|
locRoll = await new Roll("1d20").roll()
|
||||||
if (locRoll.total >= loc.score.min && locRoll.total <= loc.score.max) {
|
await this.showDiceSoNice(locRoll, game.settings.get("core", "rollMode"))
|
||||||
rollData.loc = foundry.utils.duplicate(loc)
|
for (let key in game.system.tedeum.config.LOCALISATION) {
|
||||||
break
|
let loc = game.system.tedeum.config.LOCALISATION[key]
|
||||||
|
if (locRoll.total >= loc.score.min && locRoll.total <= loc.score.max) {
|
||||||
|
rollData.loc = foundry.utils.duplicate(loc)
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
rollData.locRoll = foundry.utils.duplicate(locRoll)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async processAttaqueMelee(rollData) {
|
static async processAttaqueMelee(rollData) {
|
||||||
await this.getLocalisation(rollData)
|
await this.getLocalisation(rollData)
|
||||||
let actor = game.actors.get(rollData.actorId)
|
let actor = game.actors.get(rollData.actorId)
|
||||||
let bDegats = actor.getBonusDegats()
|
let bDegats = actor.getAttaqueBonusDegats(rollData)
|
||||||
let degatsRoll = await new Roll(rollData.arme.system.degats + "+" + bDegats.value).roll()
|
rollData.degatsFormula = rollData.arme.system.degats + "+" + bDegats
|
||||||
|
let degatsRoll = await new Roll(rollData.degatsFormula).roll()
|
||||||
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
|
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
|
||||||
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
||||||
rollData.degats = degatsRoll.total
|
rollData.degats = degatsRoll.total
|
||||||
@@ -522,7 +570,7 @@ export class TeDeumUtility {
|
|||||||
await this.getLocalisation(rollData)
|
await this.getLocalisation(rollData)
|
||||||
// Now the degats
|
// Now the degats
|
||||||
let degatsRoll = await new Roll(rollData.arme.system.degats).roll()
|
let degatsRoll = await new Roll(rollData.arme.system.degats).roll()
|
||||||
await this.showDiceSoNice(rollData.locRoll, game.settings.get("core", "rollMode"))
|
await this.showDiceSoNice(rollData.degatsRoll, game.settings.get("core", "rollMode"))
|
||||||
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
||||||
rollData.degats = degatsRoll.total
|
rollData.degats = degatsRoll.total
|
||||||
}
|
}
|
||||||
@@ -538,8 +586,8 @@ export class TeDeumUtility {
|
|||||||
}
|
}
|
||||||
rollData.difficulty = game.system.tedeum.config.difficulte[rollData.difficulty].value
|
rollData.difficulty = game.system.tedeum.config.difficulte[rollData.difficulty].value
|
||||||
// Compute the real competence score
|
// Compute the real competence score
|
||||||
if ( rollData.competence ) {
|
if (rollData.competence) {
|
||||||
if ( rollData.competence.system.isBase) {
|
if (rollData.competence.system.isBase) {
|
||||||
rollData.compScore = actor.system.caracteristiques[rollData.competence.system.caracteristique].value
|
rollData.compScore = actor.system.caracteristiques[rollData.competence.system.caracteristique].value
|
||||||
} else {
|
} else {
|
||||||
rollData.compScore = rollData.competence.system.score
|
rollData.compScore = rollData.competence.system.score
|
||||||
@@ -571,10 +619,6 @@ export class TeDeumUtility {
|
|||||||
if (rollData.enableProvidence) {
|
if (rollData.enableProvidence) {
|
||||||
actor.modifyProvidence(-1)
|
actor.modifyProvidence(-1)
|
||||||
}
|
}
|
||||||
// Manage XP
|
|
||||||
if (rollData.isReussiteCritique || rollData.isEchecCritique) {
|
|
||||||
actor.modifyXP(rollData.carac.key, 1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@@ -4,8 +4,9 @@ export class TeDeumBlessureSchema extends foundry.abstract.TypeDataModel {
|
|||||||
const requiredInteger = { required: true, nullable: false, integer: true };
|
const requiredInteger = { required: true, nullable: false, integer: true };
|
||||||
const schema = {};
|
const schema = {};
|
||||||
|
|
||||||
schema.typeBlessure = new fields.StringField({required: true, choices: ["indemne", "estafilade", "plaie", "plaiebeante", "plaieatroce", "tuenet"], initial: "estafilade"});
|
schema.typeBlessure = new fields.StringField({ required: true, choices: ["indemne", "estafilade", "plaie", "plaiebeante", "plaieatroce", "tuenet"], initial: "estafilade" });
|
||||||
schema.localisation = new fields.StringField({required: true, choices: ["piedgauche", "pieddroit", "jambegauche", "jambedroite", "maingauche", "maindroite", "brasgauche", "brasdroit", "tete", "corps"], initial: "corps"});
|
schema.value = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||||
|
schema.localisation = new fields.StringField({ required: true, choices: ["piedgauche", "pieddroit", "jambegauche", "jambedroite", "maingauche", "maindroite", "brasgauche", "brasdroit", "tete", "corps"], initial: "corps" });
|
||||||
|
|
||||||
schema.description = new fields.HTMLField({ required: true, blank: true });
|
schema.description = new fields.HTMLField({ required: true, blank: true });
|
||||||
|
|
||||||
|
@@ -60,9 +60,15 @@ export class TeDeumRollDialog extends Dialog {
|
|||||||
html.find('#bonusMalusPerso').change((event) => {
|
html.find('#bonusMalusPerso').change((event) => {
|
||||||
this.rollData.bonusMalusPerso = Number(event.currentTarget.value)
|
this.rollData.bonusMalusPerso = Number(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
|
html.find('#roll-allonge').change((event) => {
|
||||||
|
this.rollData.allongeId = event.currentTarget.value
|
||||||
|
})
|
||||||
html.find('#roll-difficulty').change((event) => {
|
html.find('#roll-difficulty').change((event) => {
|
||||||
this.rollData.difficulty = String(event.currentTarget.value) || "pardefaut"
|
this.rollData.difficulty = String(event.currentTarget.value) || "pardefaut"
|
||||||
})
|
})
|
||||||
|
html.find('#roll-attaque-ciblee').change((event) => {
|
||||||
|
this.rollData.attaqueCiblee = event.currentTarget.value || "0"
|
||||||
|
})
|
||||||
html.find('#roll-bonus-malus').change((event) => {
|
html.find('#roll-bonus-malus').change((event) => {
|
||||||
this.rollData.bonusMalus = event.currentTarget.value || "0"
|
this.rollData.bonusMalus = event.currentTarget.value || "0"
|
||||||
})
|
})
|
||||||
@@ -80,8 +86,14 @@ export class TeDeumRollDialog extends Dialog {
|
|||||||
html.find('#roll-tir-mouvement').change((event) => {
|
html.find('#roll-tir-mouvement').change((event) => {
|
||||||
this.rollData.isMouvement = event.currentTarget.checked
|
this.rollData.isMouvement = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
|
html.find('#roll-charge-a-pied').change((event) => {
|
||||||
|
this.rollData.isChargeAPied = event.currentTarget.checked
|
||||||
|
})
|
||||||
|
html.find('#roll-charge-a-cheval').change((event) => {
|
||||||
|
this.rollData.isChargeACheval = event.currentTarget.checked
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -59,7 +59,6 @@ export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.options.editable = !(this.object.origin == "embeddedItem");
|
this.options.editable = !(this.object.origin == "embeddedItem");
|
||||||
console.log("ITEM DATA", formData, this);
|
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +156,7 @@ export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet {
|
|||||||
let itemType = li.data("item-type");
|
let itemType = li.data("item-type");
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
get template() {
|
get template() {
|
||||||
|
@@ -1 +1 @@
|
|||||||
MANIFEST-000120
|
MANIFEST-000132
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:10.022659 7f2a0effd6c0 Recovering log #118
|
2025/09/18-11:50:45.746719 7f7f2bfff6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:10.033191 7f2a0effd6c0 Delete type=3 #116
|
2025/09/18-17:24:09.744265 7f7f29bff6c0 Level-0 table #135: started
|
||||||
2025/07/09-17:43:10.033247 7f2a0effd6c0 Delete type=0 #118
|
2025/09/18-17:24:09.744308 7f7f29bff6c0 Level-0 table #135: 0 bytes OK
|
||||||
2025/07/09-18:03:48.854204 7f276ffff6c0 Level-0 table #123: started
|
2025/09/18-17:24:09.802551 7f7f29bff6c0 Delete type=0 #133
|
||||||
2025/07/09-18:03:48.854235 7f276ffff6c0 Level-0 table #123: 0 bytes OK
|
2025/09/18-17:24:09.802767 7f7f29bff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 25 : 1
|
||||||
2025/07/09-18:03:48.860211 7f276ffff6c0 Delete type=0 #121
|
2025/09/18-17:24:09.802780 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.860371 7f276ffff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:09.830358 7f7f29bff6c0 Generated table #136@0: 5 keys, 3728 bytes
|
||||||
|
2025/09/18-17:24:09.830408 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 3728 bytes
|
||||||
|
2025/09/18-17:24:09.891222 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:09.891483 7f7f29bff6c0 Delete type=2 #103
|
||||||
|
2025/09/18-17:24:10.130709 7f7f29bff6c0 Manual compaction at level-0 from '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 25 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
2025/07/02-23:06:08.560525 7f0793fff6c0 Recovering log #114
|
2025/09/18-11:50:45.730278 7f7f2bfff6c0 Log #130: 0 ops saved to Table #131 OK
|
||||||
2025/07/02-23:06:08.610681 7f0793fff6c0 Delete type=3 #112
|
2025/09/18-11:50:45.730412 7f7f2bfff6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/aides/000130.log: OK
|
||||||
2025/07/02-23:06:08.610784 7f0793fff6c0 Delete type=0 #114
|
2025/09/18-11:50:45.730474 7f7f2bfff6c0 Table #103: 5 entries OK
|
||||||
2025/07/02-23:08:13.585521 7f07923ff6c0 Level-0 table #119: started
|
2025/09/18-11:50:45.733594 7f7f2bfff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/aides; recovered 1 files; 3728 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.585561 7f07923ff6c0 Level-0 table #119: 0 bytes OK
|
|
||||||
2025/07/02-23:08:13.592021 7f07923ff6c0 Delete type=0 #117
|
|
||||||
2025/07/02-23:08:13.592190 7f07923ff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/aides/MANIFEST-000132
Normal file
BIN
packs/aides/MANIFEST-000132
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000223
|
MANIFEST-000235
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:09.933075 7f2a0e7fc6c0 Recovering log #221
|
2025/09/18-11:50:45.598190 7f7f2a7fc6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:09.943069 7f2a0e7fc6c0 Delete type=3 #219
|
2025/09/18-17:24:08.419689 7f7f29bff6c0 Level-0 table #238: started
|
||||||
2025/07/09-17:43:09.943126 7f2a0e7fc6c0 Delete type=0 #221
|
2025/09/18-17:24:08.419727 7f7f29bff6c0 Level-0 table #238: 0 bytes OK
|
||||||
2025/07/09-18:03:48.778823 7f276ffff6c0 Level-0 table #226: started
|
2025/09/18-17:24:08.484925 7f7f29bff6c0 Delete type=0 #236
|
||||||
2025/07/09-18:03:48.778862 7f276ffff6c0 Level-0 table #226: 0 bytes OK
|
2025/09/18-17:24:08.766692 7f7f29bff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at '!items!wxIHkrq98eQ3cOvp' @ 73 : 1
|
||||||
2025/07/09-18:03:48.785076 7f276ffff6c0 Delete type=0 #224
|
2025/09/18-17:24:08.766704 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.804468 7f276ffff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:08.800723 7f7f29bff6c0 Generated table #239@0: 38 keys, 31247 bytes
|
||||||
|
2025/09/18-17:24:08.800756 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 31247 bytes
|
||||||
|
2025/09/18-17:24:08.859553 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:08.859745 7f7f29bff6c0 Delete type=2 #206
|
||||||
|
2025/09/18-17:24:08.860015 7f7f29bff6c0 Manual compaction at level-0 from '!items!wxIHkrq98eQ3cOvp' @ 73 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
2025/07/02-23:06:08.061648 7f0792ffd6c0 Recovering log #217
|
2025/09/18-11:50:45.580327 7f7f2a7fc6c0 Log #233: 0 ops saved to Table #234 OK
|
||||||
2025/07/02-23:06:08.112616 7f0792ffd6c0 Delete type=3 #215
|
2025/09/18-11:50:45.580491 7f7f2a7fc6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/armes/000233.log: OK
|
||||||
2025/07/02-23:06:08.112666 7f0792ffd6c0 Delete type=0 #217
|
2025/09/18-11:50:45.580597 7f7f2a7fc6c0 Table #206: 38 entries OK
|
||||||
2025/07/02-23:08:13.519462 7f07923ff6c0 Level-0 table #222: started
|
2025/09/18-11:50:45.584469 7f7f2a7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/armes; recovered 1 files; 31247 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.519492 7f07923ff6c0 Level-0 table #222: 0 bytes OK
|
|
||||||
2025/07/02-23:08:13.525466 7f07923ff6c0 Delete type=0 #220
|
|
||||||
2025/07/02-23:08:13.539414 7f07923ff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/armes/MANIFEST-000235
Normal file
BIN
packs/armes/MANIFEST-000235
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000234
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:09.945259 7f2a0dffb6c0 Recovering log #220
|
2025/09/18-11:50:45.617997 7f7f2a7fc6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:09.955705 7f2a0dffb6c0 Delete type=3 #218
|
2025/09/18-17:24:08.294497 7f7f29bff6c0 Level-0 table #237: started
|
||||||
2025/07/09-17:43:09.955844 7f2a0dffb6c0 Delete type=0 #220
|
2025/09/18-17:24:08.294539 7f7f29bff6c0 Level-0 table #237: 0 bytes OK
|
||||||
2025/07/09-18:03:48.791392 7f276ffff6c0 Level-0 table #225: started
|
2025/09/18-17:24:08.351872 7f7f29bff6c0 Delete type=0 #235
|
||||||
2025/07/09-18:03:48.791426 7f276ffff6c0 Level-0 table #225: 0 bytes OK
|
2025/09/18-17:24:08.582142 7f7f29bff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at '!items!ufvhWG5V8pX0qrtR' @ 54 : 1
|
||||||
2025/07/09-18:03:48.797485 7f276ffff6c0 Delete type=0 #223
|
2025/09/18-17:24:08.582154 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.804509 7f276ffff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:08.616167 7f7f29bff6c0 Generated table #238@0: 29 keys, 12111 bytes
|
||||||
|
2025/09/18-17:24:08.616198 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 12111 bytes
|
||||||
|
2025/09/18-17:24:08.671918 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:08.672212 7f7f29bff6c0 Delete type=2 #205
|
||||||
|
2025/09/18-17:24:08.859972 7f7f29bff6c0 Manual compaction at level-0 from '!items!ufvhWG5V8pX0qrtR' @ 54 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
2025/07/02-23:06:08.115418 7f07937fe6c0 Recovering log #216
|
2025/09/18-11:50:45.601765 7f7f2a7fc6c0 Log #232: 0 ops saved to Table #233 OK
|
||||||
2025/07/02-23:06:08.203034 7f07937fe6c0 Delete type=3 #214
|
2025/09/18-11:50:45.601883 7f7f2a7fc6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/armures/000232.log: OK
|
||||||
2025/07/02-23:06:08.203104 7f07937fe6c0 Delete type=0 #216
|
2025/09/18-11:50:45.601950 7f7f2a7fc6c0 Table #205: 29 entries OK
|
||||||
2025/07/02-23:08:13.507158 7f07923ff6c0 Level-0 table #221: started
|
2025/09/18-11:50:45.605327 7f7f2a7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/armures; recovered 1 files; 12111 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.507179 7f07923ff6c0 Level-0 table #221: 0 bytes OK
|
|
||||||
2025/07/02-23:08:13.513412 7f07923ff6c0 Delete type=0 #219
|
|
||||||
2025/07/02-23:08:13.539385 7f07923ff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/armures/MANIFEST-000234
Normal file
BIN
packs/armures/MANIFEST-000234
Normal file
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000219
|
MANIFEST-000233
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:09.919870 7f2a0d7fa6c0 Recovering log #217
|
2025/09/18-11:50:45.576078 7f7f2affd6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:09.930288 7f2a0d7fa6c0 Delete type=3 #215
|
2025/09/18-17:24:08.352040 7f7f29bff6c0 Level-0 table #236: started
|
||||||
2025/07/09-17:43:09.930358 7f2a0d7fa6c0 Delete type=0 #217
|
2025/09/18-17:24:08.352081 7f7f29bff6c0 Level-0 table #236: 0 bytes OK
|
||||||
2025/07/09-18:03:48.785230 7f276ffff6c0 Level-0 table #222: started
|
2025/09/18-17:24:08.419524 7f7f29bff6c0 Delete type=0 #234
|
||||||
2025/07/09-18:03:48.785267 7f276ffff6c0 Level-0 table #222: 0 bytes OK
|
2025/09/18-17:24:08.672479 7f7f29bff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at '!items!yx4k7lQHGcom99mk' @ 237 : 1
|
||||||
2025/07/09-18:03:48.791250 7f276ffff6c0 Delete type=0 #220
|
2025/09/18-17:24:08.672498 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.804490 7f276ffff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:08.706074 7f7f29bff6c0 Generated table #237@0: 115 keys, 38139 bytes
|
||||||
|
2025/09/18-17:24:08.706156 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 38139 bytes
|
||||||
|
2025/09/18-17:24:08.766397 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:08.766527 7f7f29bff6c0 Delete type=2 #231
|
||||||
|
2025/09/18-17:24:08.859995 7f7f29bff6c0 Manual compaction at level-0 from '!items!yx4k7lQHGcom99mk' @ 237 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
2025/07/02-23:06:08.011331 7f0798bfa6c0 Recovering log #213
|
2025/09/18-11:50:45.377468 7f7f2affd6c0 Log #229: 0 ops saved to Table #232 OK
|
||||||
2025/07/02-23:06:08.059546 7f0798bfa6c0 Delete type=3 #211
|
2025/09/18-11:50:45.377609 7f7f2affd6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/competences/000229.log: OK
|
||||||
2025/07/02-23:06:08.059612 7f0798bfa6c0 Delete type=0 #213
|
2025/09/18-11:50:45.377734 7f7f2affd6c0 Table #231: 115 entries OK
|
||||||
2025/07/02-23:08:13.513511 7f07923ff6c0 Level-0 table #218: started
|
2025/09/18-11:50:45.381132 7f7f2affd6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/competences; recovered 1 files; 38139 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.513531 7f07923ff6c0 Level-0 table #218: 0 bytes OK
|
|
||||||
2025/07/02-23:08:13.519351 7f07923ff6c0 Delete type=0 #216
|
|
||||||
2025/07/02-23:08:13.539400 7f07923ff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/competences/MANIFEST-000233
Normal file
BIN
packs/competences/MANIFEST-000233
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000232
|
MANIFEST-000244
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:09.957922 7f2a0d7fa6c0 Recovering log #229
|
2025/09/18-11:50:45.638850 7f7f2bfff6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:09.968395 7f2a0d7fa6c0 Delete type=3 #227
|
2025/09/18-17:24:08.232941 7f7f29bff6c0 Level-0 table #247: started
|
||||||
2025/07/09-17:43:09.968449 7f2a0d7fa6c0 Delete type=0 #229
|
2025/09/18-17:24:08.233014 7f7f29bff6c0 Level-0 table #247: 0 bytes OK
|
||||||
2025/07/09-18:03:48.797598 7f276ffff6c0 Level-0 table #235: started
|
2025/09/18-17:24:08.294274 7f7f29bff6c0 Delete type=0 #245
|
||||||
2025/07/09-18:03:48.797621 7f276ffff6c0 Level-0 table #235: 0 bytes OK
|
2025/09/18-17:24:08.485079 7f7f29bff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!zGlRtP7zSnkjuuue' @ 510 : 1
|
||||||
2025/07/09-18:03:48.804333 7f276ffff6c0 Delete type=0 #233
|
2025/09/18-17:24:08.485093 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.804527 7f276ffff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:08.521894 7f7f29bff6c0 Generated table #248@0: 71 keys, 264331 bytes
|
||||||
|
2025/09/18-17:24:08.521971 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 264331 bytes
|
||||||
|
2025/09/18-17:24:08.581818 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:08.581947 7f7f29bff6c0 Delete type=2 #231
|
||||||
|
2025/09/18-17:24:08.859951 7f7f29bff6c0 Manual compaction at level-0 from '!items!zGlRtP7zSnkjuuue' @ 510 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,14 +1,4 @@
|
|||||||
2025/07/02-23:06:08.205635 7f0798bfa6c0 Recovering log #225
|
2025/09/18-11:50:45.622061 7f7f2bfff6c0 Log #242: 0 ops saved to Table #243 OK
|
||||||
2025/07/02-23:06:08.258516 7f0798bfa6c0 Delete type=3 #223
|
2025/09/18-11:50:45.622200 7f7f2bfff6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/education/000242.log: OK
|
||||||
2025/07/02-23:06:08.258587 7f0798bfa6c0 Delete type=0 #225
|
2025/09/18-11:50:45.622719 7f7f2bfff6c0 Table #231: 71 entries OK
|
||||||
2025/07/02-23:08:13.497309 7f07923ff6c0 Level-0 table #230: started
|
2025/09/18-11:50:45.625987 7f7f2bfff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/education; recovered 1 files; 264331 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.500727 7f07923ff6c0 Level-0 table #230: 31862 bytes OK
|
|
||||||
2025/07/02-23:08:13.507034 7f07923ff6c0 Delete type=0 #228
|
|
||||||
2025/07/02-23:08:13.525588 7f07923ff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!dbl7clezSXISzlqE' @ 511 : 1
|
|
||||||
2025/07/02-23:08:13.525598 7f07923ff6c0 Compacting 1@0 + 1@1 files
|
|
||||||
2025/07/02-23:08:13.532830 7f07923ff6c0 Generated table #231@0: 71 keys, 264331 bytes
|
|
||||||
2025/07/02-23:08:13.532886 7f07923ff6c0 Compacted 1@0 + 1@1 files => 264331 bytes
|
|
||||||
2025/07/02-23:08:13.538890 7f07923ff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
|
||||||
2025/07/02-23:08:13.539063 7f07923ff6c0 Delete type=2 #214
|
|
||||||
2025/07/02-23:08:13.539294 7f07923ff6c0 Delete type=2 #230
|
|
||||||
2025/07/02-23:08:13.539429 7f07923ff6c0 Manual compaction at level-0 from '!items!dbl7clezSXISzlqE' @ 511 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/education/MANIFEST-000244
Normal file
BIN
packs/education/MANIFEST-000244
Normal file
Binary file not shown.
0
packs/education/lost/000242.log
Normal file
0
packs/education/lost/000242.log
Normal file
0
packs/graces/000236.log
Normal file
0
packs/graces/000236.log
Normal file
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000234
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:09.971163 7f2a0e7fc6c0 Recovering log #220
|
2025/09/18-11:50:45.661051 7f7f2b7fe6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:09.980955 7f2a0e7fc6c0 Delete type=3 #218
|
2025/09/18-17:24:08.860133 7f7f29bff6c0 Level-0 table #237: started
|
||||||
2025/07/09-17:43:09.981011 7f2a0e7fc6c0 Delete type=0 #220
|
2025/09/18-17:24:08.860169 7f7f29bff6c0 Level-0 table #237: 0 bytes OK
|
||||||
2025/07/09-18:03:48.811156 7f276ffff6c0 Level-0 table #225: started
|
2025/09/18-17:24:08.917842 7f7f29bff6c0 Delete type=0 #235
|
||||||
2025/07/09-18:03:48.811194 7f276ffff6c0 Level-0 table #225: 0 bytes OK
|
2025/09/18-17:24:09.119729 7f7f29bff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at '!items!zUYIVOuFpRur9aAR' @ 109 : 1
|
||||||
2025/07/09-18:03:48.817214 7f276ffff6c0 Delete type=0 #223
|
2025/09/18-17:24:09.119743 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.830580 7f276ffff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:09.155742 7f7f29bff6c0 Generated table #238@0: 49 keys, 20052 bytes
|
||||||
|
2025/09/18-17:24:09.155788 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 20052 bytes
|
||||||
|
2025/09/18-17:24:09.214820 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:09.214942 7f7f29bff6c0 Delete type=2 #205
|
||||||
|
2025/09/18-17:24:09.499501 7f7f29bff6c0 Manual compaction at level-0 from '!items!zUYIVOuFpRur9aAR' @ 109 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
2025/07/02-23:06:08.261714 7f0792ffd6c0 Recovering log #216
|
2025/09/18-11:50:45.643620 7f7f2b7fe6c0 Log #232: 0 ops saved to Table #233 OK
|
||||||
2025/07/02-23:06:08.311445 7f0792ffd6c0 Delete type=3 #214
|
2025/09/18-11:50:45.643740 7f7f2b7fe6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/graces/000232.log: OK
|
||||||
2025/07/02-23:06:08.311538 7f0792ffd6c0 Delete type=0 #216
|
2025/09/18-11:50:45.643815 7f7f2b7fe6c0 Table #205: 49 entries OK
|
||||||
2025/07/02-23:08:13.545827 7f07923ff6c0 Level-0 table #221: started
|
2025/09/18-11:50:45.647831 7f7f2b7fe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/graces; recovered 1 files; 20052 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.545856 7f07923ff6c0 Level-0 table #221: 0 bytes OK
|
|
||||||
2025/07/02-23:08:13.552104 7f07923ff6c0 Delete type=0 #219
|
|
||||||
2025/07/02-23:08:13.565260 7f07923ff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/graces/MANIFEST-000234
Normal file
BIN
packs/graces/MANIFEST-000234
Normal file
Binary file not shown.
0
packs/graces/lost/000232.log
Normal file
0
packs/graces/lost/000232.log
Normal file
0
packs/maladies/000236.log
Normal file
0
packs/maladies/000236.log
Normal file
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000234
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:09.982946 7f2a0effd6c0 Recovering log #220
|
2025/09/18-11:50:45.681692 7f7f2affd6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:09.994498 7f2a0effd6c0 Delete type=3 #218
|
2025/09/18-17:24:08.917988 7f7f29bff6c0 Level-0 table #237: started
|
||||||
2025/07/09-17:43:09.994574 7f2a0effd6c0 Delete type=0 #220
|
2025/09/18-17:24:08.918018 7f7f29bff6c0 Level-0 table #237: 0 bytes OK
|
||||||
2025/07/09-18:03:48.804608 7f276ffff6c0 Level-0 table #225: started
|
2025/09/18-17:24:08.983600 7f7f29bff6c0 Delete type=0 #235
|
||||||
2025/07/09-18:03:48.804666 7f276ffff6c0 Level-0 table #225: 0 bytes OK
|
2025/09/18-17:24:09.215118 7f7f29bff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at '!items!ysGehYm1VkMWrI22' @ 71 : 1
|
||||||
2025/07/09-18:03:48.810987 7f276ffff6c0 Delete type=0 #223
|
2025/09/18-17:24:09.215131 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.830569 7f276ffff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:09.251613 7f7f29bff6c0 Generated table #238@0: 17 keys, 11517 bytes
|
||||||
|
2025/09/18-17:24:09.251694 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 11517 bytes
|
||||||
|
2025/09/18-17:24:09.305026 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:09.305314 7f7f29bff6c0 Delete type=2 #205
|
||||||
|
2025/09/18-17:24:09.499516 7f7f29bff6c0 Manual compaction at level-0 from '!items!ysGehYm1VkMWrI22' @ 71 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
2025/07/02-23:06:08.314387 7f07937fe6c0 Recovering log #216
|
2025/09/18-11:50:45.665172 7f7f2affd6c0 Log #232: 0 ops saved to Table #233 OK
|
||||||
2025/07/02-23:06:08.375793 7f07937fe6c0 Delete type=3 #214
|
2025/09/18-11:50:45.665437 7f7f2affd6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/maladies/000232.log: OK
|
||||||
2025/07/02-23:06:08.375871 7f07937fe6c0 Delete type=0 #216
|
2025/09/18-11:50:45.665530 7f7f2affd6c0 Table #205: 17 entries OK
|
||||||
2025/07/02-23:08:13.539538 7f07923ff6c0 Level-0 table #221: started
|
2025/09/18-11:50:45.668785 7f7f2affd6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/maladies; recovered 1 files; 11517 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.539632 7f07923ff6c0 Level-0 table #221: 0 bytes OK
|
|
||||||
2025/07/02-23:08:13.545699 7f07923ff6c0 Delete type=0 #219
|
|
||||||
2025/07/02-23:08:13.565250 7f07923ff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/maladies/MANIFEST-000234
Normal file
BIN
packs/maladies/MANIFEST-000234
Normal file
Binary file not shown.
0
packs/maladies/lost/000232.log
Normal file
0
packs/maladies/lost/000232.log
Normal file
0
packs/scenes/000173.log
Normal file
0
packs/scenes/000173.log
Normal file
@@ -1 +1 @@
|
|||||||
MANIFEST-000159
|
MANIFEST-000171
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:10.009504 7f2a0dffb6c0 Recovering log #157
|
2025/09/18-11:50:45.725670 7f7f2a7fc6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:10.019481 7f2a0dffb6c0 Delete type=3 #155
|
2025/09/18-17:24:09.049574 7f7f29bff6c0 Level-0 table #174: started
|
||||||
2025/07/09-17:43:10.019581 7f2a0dffb6c0 Delete type=0 #157
|
2025/09/18-17:24:09.049607 7f7f29bff6c0 Level-0 table #174: 0 bytes OK
|
||||||
2025/07/09-18:03:48.823612 7f276ffff6c0 Level-0 table #162: started
|
2025/09/18-17:24:09.119551 7f7f29bff6c0 Delete type=0 #172
|
||||||
2025/07/09-18:03:48.823646 7f276ffff6c0 Level-0 table #162: 0 bytes OK
|
2025/09/18-17:24:09.404507 7f7f29bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at '!scenes!FJXugdbkBpEJEdR6' @ 5 : 1
|
||||||
2025/07/09-18:03:48.830454 7f276ffff6c0 Delete type=0 #160
|
2025/09/18-17:24:09.404524 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.830610 7f276ffff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:09.434413 7f7f29bff6c0 Generated table #175@0: 1 keys, 1344 bytes
|
||||||
|
2025/09/18-17:24:09.434448 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 1344 bytes
|
||||||
|
2025/09/18-17:24:09.499220 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:09.499350 7f7f29bff6c0 Delete type=2 #142
|
||||||
|
2025/09/18-17:24:09.499541 7f7f29bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 5 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
2025/07/02-23:06:08.461850 7f0792ffd6c0 Recovering log #153
|
2025/09/18-11:50:45.707694 7f7f2a7fc6c0 Log #169: 0 ops saved to Table #170 OK
|
||||||
2025/07/02-23:06:08.557282 7f0792ffd6c0 Delete type=3 #151
|
2025/09/18-11:50:45.707806 7f7f2a7fc6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/scenes/000169.log: OK
|
||||||
2025/07/02-23:06:08.557355 7f0792ffd6c0 Delete type=0 #153
|
2025/09/18-11:50:45.707854 7f7f2a7fc6c0 Table #142: 1 entries OK
|
||||||
2025/07/02-23:08:13.559253 7f07923ff6c0 Level-0 table #158: started
|
2025/09/18-11:50:45.712286 7f7f2a7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/scenes; recovered 1 files; 1344 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.559274 7f07923ff6c0 Level-0 table #158: 0 bytes OK
|
|
||||||
2025/07/02-23:08:13.565147 7f07923ff6c0 Delete type=0 #156
|
|
||||||
2025/07/02-23:08:13.565275 7f07923ff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/scenes/MANIFEST-000171
Normal file
BIN
packs/scenes/MANIFEST-000171
Normal file
Binary file not shown.
0
packs/scenes/lost/000169.log
Normal file
0
packs/scenes/lost/000169.log
Normal file
0
packs/simples/000237.log
Normal file
0
packs/simples/000237.log
Normal file
@@ -1 +1 @@
|
|||||||
MANIFEST-000223
|
MANIFEST-000235
|
||||||
|
@@ -1,7 +1,11 @@
|
|||||||
2025/07/09-17:43:09.996493 7f2a0d7fa6c0 Recovering log #221
|
2025/09/18-11:50:45.701807 7f7f2a7fc6c0 Delete type=3 #1
|
||||||
2025/07/09-17:43:10.006963 7f2a0d7fa6c0 Delete type=3 #219
|
2025/09/18-17:24:08.983751 7f7f29bff6c0 Level-0 table #238: started
|
||||||
2025/07/09-17:43:10.007040 7f2a0d7fa6c0 Delete type=0 #221
|
2025/09/18-17:24:08.983779 7f7f29bff6c0 Level-0 table #238: 0 bytes OK
|
||||||
2025/07/09-18:03:48.817353 7f276ffff6c0 Level-0 table #226: started
|
2025/09/18-17:24:09.049421 7f7f29bff6c0 Delete type=0 #236
|
||||||
2025/07/09-18:03:48.817401 7f276ffff6c0 Level-0 table #226: 0 bytes OK
|
2025/09/18-17:24:09.305611 7f7f29bff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at '!items!zs67k4sxCid6oTK3' @ 80 : 1
|
||||||
2025/07/09-18:03:48.823494 7f276ffff6c0 Delete type=0 #224
|
2025/09/18-17:24:09.305631 7f7f29bff6c0 Compacting 1@0 + 0@1 files
|
||||||
2025/07/09-18:03:48.830589 7f276ffff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
2025/09/18-17:24:09.339316 7f7f29bff6c0 Generated table #239@0: 36 keys, 20892 bytes
|
||||||
|
2025/09/18-17:24:09.339411 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 20892 bytes
|
||||||
|
2025/09/18-17:24:09.404093 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||||
|
2025/09/18-17:24:09.404255 7f7f29bff6c0 Delete type=2 #218
|
||||||
|
2025/09/18-17:24:09.499531 7f7f29bff6c0 Manual compaction at level-0 from '!items!zs67k4sxCid6oTK3' @ 80 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
2025/07/02-23:06:08.378229 7f0793fff6c0 Recovering log #216
|
2025/09/18-11:50:45.684906 7f7f2a7fc6c0 Log #233: 0 ops saved to Table #234 OK
|
||||||
2025/07/02-23:06:08.459001 7f0793fff6c0 Delete type=3 #214
|
2025/09/18-11:50:45.685007 7f7f2a7fc6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/simples/000233.log: OK
|
||||||
2025/07/02-23:06:08.459067 7f0793fff6c0 Delete type=0 #216
|
2025/09/18-11:50:45.685089 7f7f2a7fc6c0 Table #218: 36 entries OK
|
||||||
2025/07/02-23:08:13.552198 7f07923ff6c0 Level-0 table #222: started
|
2025/09/18-11:50:45.688282 7f7f2a7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/simples; recovered 1 files; 20892 bytes. Some data may have been lost. ****
|
||||||
2025/07/02-23:08:13.552225 7f07923ff6c0 Level-0 table #222: 0 bytes OK
|
|
||||||
2025/07/02-23:08:13.559173 7f07923ff6c0 Delete type=0 #220
|
|
||||||
2025/07/02-23:08:13.565269 7f07923ff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs/simples/MANIFEST-000235
Normal file
BIN
packs/simples/MANIFEST-000235
Normal file
Binary file not shown.
0
packs/simples/lost/000233.log
Normal file
0
packs/simples/lost/000233.log
Normal file
@@ -40,30 +40,35 @@
|
|||||||
<div class="grid grid-2col">
|
<div class="grid grid-2col">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
{{#each caracList as |char key|}}
|
{{#each caracList as |char key|}}
|
||||||
<li class="item flexrow list-item carac-box">
|
<li class="item flexrow list-item carac-box">
|
||||||
<img class="sheet-competence-img" src="systems/fvtt-te-deum/images/icons/{{key}}.webp" />
|
<img class="sheet-competence-img" src="systems/fvtt-te-deum/images/icons/{{key}}.webp" />
|
||||||
<label class="item-left-pad item-field item-field-label-medium" data-tooltip="{{char.description}}">{{char.name}}</label>
|
<label class="item-left-pad item-field item-field-label-medium"
|
||||||
<select type="text" class="input-numeric-short" name="system.caracteristiques.{{key}}.value"
|
data-tooltip="{{char.description}}">{{char.name}}</label>
|
||||||
data-dtype="Number" />
|
<select type="text" class="input-numeric-short" name="system.caracteristiques.{{key}}.value"
|
||||||
{{selectOptions @root.config.descriptionValeur selected=char.value labelAttr="valeur"}}
|
data-dtype="Number" />
|
||||||
</select>
|
{{selectOptions @root.config.descriptionValeur selected=char.value labelAttr="valeur"}}
|
||||||
<label class="item-field item-field-label-medium">{{char.qualite}}</label>
|
</select>
|
||||||
<label class="item-field item-field-label-medium">{{char.dice}} ({{char.negativeDice}})</label>
|
<label class="item-field item-field-label-medium">{{char.qualite}}</label>
|
||||||
</li>
|
<label class="item-field item-field-label-medium">{{char.dice}} ({{char.negativeDice}})</label>
|
||||||
{{/each}}
|
</li>
|
||||||
</ul>
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h4>Malus de santé : {{santeModifier}} niveaux</h4>
|
<h4>Malus de santé : {{santeModifier}} niveaux</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<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">
|
||||||
<span class="item-field-title-long">
|
<span class="item-field-title-long">
|
||||||
<h3><label class="item-field-label-long">Blessures</label></h3>
|
<h3><label class="item-field-label-long">Blessures</label></h3>
|
||||||
</span>
|
</span>
|
||||||
|
<div class="item-controls item-controls-fixed">
|
||||||
|
<a class="item-control blessure-add" data-type="blessure" title="Ajouter une Blessure"><i class="fas fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
{{#each blessures as |blessure key|}}
|
{{#each blessures as |blessure key|}}
|
||||||
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{blessure._id}}">
|
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{blessure._id}}">
|
||||||
@@ -140,7 +145,8 @@
|
|||||||
<div>
|
<div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="item flexrow list-item carac-box">
|
<li class="item flexrow list-item carac-box">
|
||||||
<label class="item-left-pad item-field item-field-label-medium" data-tooltip="{{providence.description}}">Providence</label>
|
<label class="item-left-pad item-field item-field-label-medium"
|
||||||
|
data-tooltip="{{providence.description}}">Providence</label>
|
||||||
<select type="text" class="input-numeric-short" name="system.providence.value" data-dtype="Number" />
|
<select type="text" class="input-numeric-short" name="system.providence.value" data-dtype="Number" />
|
||||||
{{selectOptions @root.config.providence selected=providence.value nameAttr="value" valueAttr="value"
|
{{selectOptions @root.config.providence selected=providence.value nameAttr="value" valueAttr="value"
|
||||||
labelAttr="value"}}
|
labelAttr="value"}}
|
||||||
@@ -149,16 +155,21 @@
|
|||||||
<label class="item-field item-field-label-short">{{providence.dice}}</label>
|
<label class="item-field item-field-label-short">{{providence.dice}}</label>
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow list-item carac-box">
|
<li class="item flexrow list-item carac-box">
|
||||||
<label class="item-left-pad item-field item-field-label-medium" data-tooltip=" La Bienveillance n’est pas à proprement parler une compétence : il s’agit de l’évaluation chiffrée de l'atta- chement que l'ange gardien du personnage éprouve pour son protégé. Cet attachement peut se détériorer si le personnage se montre indigne ou mauvais, et s'érode avec l’âge. La Bienveillance a un score initial de 10 pour un nouveau PJ ayant moins de 30 ans.">
|
<label class="item-left-pad item-field item-field-label-medium"
|
||||||
|
data-tooltip=" La Bienveillance n’est pas à proprement parler une compétence : il s’agit de l’évaluation chiffrée de l'atta- chement que l'ange gardien du personnage éprouve pour son protégé. Cet attachement peut se détériorer si le personnage se montre indigne ou mauvais, et s'érode avec l’âge. La Bienveillance a un score initial de 10 pour un nouveau PJ ayant moins de 30 ans.">
|
||||||
Bienveillance</label>
|
Bienveillance</label>
|
||||||
<input class="input-numeric-short" type="text" name="system.bienveillance.value" value="{{system.bienveillance.value}}" data-dtype="Number" />
|
<input class="input-numeric-short" type="text" name="system.bienveillance.value"
|
||||||
|
value="{{system.bienveillance.value}}" data-dtype="Number" />
|
||||||
<label class="item-left-pad item-field item-field-label-medium">Bonus dégats</label>
|
<label class="item-left-pad item-field item-field-label-medium">Bonus dégats</label>
|
||||||
<input class="input-numeric-short" type="text" value="{{bonusDegats.label}}" disabled data-dtype="Number" />
|
<input class="input-numeric-short" type="text" value="{{bonusDegats.value}}" disabled
|
||||||
|
data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow list-item carac-box">
|
<li class="item flexrow list-item carac-box">
|
||||||
<label class="item-left-pad item-field item-field-label-medium">Armures Lourdes</label>
|
<label class="item-left-pad item-field item-field-label-medium">Armures Lourdes</label>
|
||||||
<input class="input-numeric-short" type="text" value="{{nbArmuresLourdes}}" disabled data-dtype="Number" /> /
|
<input class="input-numeric-short" type="text" value="{{nbArmuresLourdes}}" disabled
|
||||||
<input class="input-numeric-short" type="text" value="{{pointsArmuresLourdes.value}}" disabled data-dtype="Number" />
|
data-dtype="Number" /> /
|
||||||
|
<input class="input-numeric-short" type="text" value="{{pointsArmuresLourdes.value}}" disabled
|
||||||
|
data-dtype="Number" />
|
||||||
<label class="item-left-pad item-field item-field-label-medium">Actions/Tour</label>
|
<label class="item-left-pad item-field item-field-label-medium">Actions/Tour</label>
|
||||||
<input class="input-numeric-short" type="text" value="{{nbActions.value}}" disabled data-dtype="Number" />
|
<input class="input-numeric-short" type="text" value="{{nbActions.value}}" disabled data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
@@ -172,7 +183,7 @@
|
|||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-add" data-type="grace" title="Créer une Grâce"><i
|
<a class="item-control item-add" data-type="grace" title="Créer une Grâce"><i
|
||||||
class="fas fa-plus"></i></a>
|
class="fas fa-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#each graces as |grace key|}}
|
{{#each graces as |grace key|}}
|
||||||
@@ -206,17 +217,18 @@
|
|||||||
<label class="item-field item-field-label-short">{{carac.value}}</label>
|
<label class="item-field item-field-label-short">{{carac.value}}</label>
|
||||||
<label class="item-field-xp ">{{carac.dice}} (xp :
|
<label class="item-field-xp ">{{carac.dice}} (xp :
|
||||||
{{#if @root.isGM}}
|
{{#if @root.isGM}}
|
||||||
<input class="input-numeric-short" type="text" name="system.caracteristiques.{{key}}.experience" value="{{carac.experience}}" data-dtype="Number" />
|
<input class="input-numeric-short" type="text" name="system.caracteristiques.{{key}}.experience"
|
||||||
|
value="{{carac.experience}}" data-dtype="Number" />
|
||||||
{{else}}
|
{{else}}
|
||||||
{{carac.experience}})
|
{{carac.experience}})
|
||||||
{{/if}}
|
{{/if}}
|
||||||
)
|
)
|
||||||
</label>
|
</label>
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control competence-add" data-type="competence" data-carac-key="{{key}}" title="Ajouter une Compétence"><i
|
<a class="item-control competence-add" data-type="competence" data-carac-key="{{key}}"
|
||||||
class="fas fa-plus"></i></a>
|
title="Ajouter une Compétence"><i class="fas fa-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<ul class="ul-level1 flexrow item-list">
|
<ul class="ul-level1 flexrow item-list">
|
||||||
{{#each carac.competences as |comp skillkey|}}
|
{{#each carac.competences as |comp skillkey|}}
|
||||||
@@ -267,11 +279,13 @@
|
|||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-medium">{{upperFirst arme.system.typeArme}}</span>
|
<span class="item-field-label-medium">{{upperFirst arme.system.typeArme}}</span>
|
||||||
<span class="item-field-label-medium">{{upperFirst arme.system.competence}}</span>
|
<span class="item-field-label-medium">{{upperFirst arme.system.competence}}</span>
|
||||||
<span class="item-field-label-medium"><a class="roll-degats" data-arme-id="{{arme._id}}">{{arme.system.degats}}</a></span>
|
<span class="item-field-label-medium"><a class="roll-degats"
|
||||||
|
data-arme-id="{{arme._id}}">{{arme.system.degats}}</a></span>
|
||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed-full">
|
<div class="item-controls item-controls-fixed-full">
|
||||||
<a class="item-control item-equip" title="Equiper" {{#unless arme.system.equipe}}style="color:gray;"{{/unless}}>
|
<a class="item-control item-equip" title="Equiper" {{#unless arme.system.equipe}}style="color:gray;"
|
||||||
|
{{/unless}}>
|
||||||
<i class="fas fa-shield-alt"></i>
|
<i class="fas fa-shield-alt"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
<a class="item-control item-edit" title="Editer"><i class="fas fa-edit"></i></a>
|
||||||
@@ -297,7 +311,8 @@
|
|||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed-full">
|
<div class="item-controls item-controls-fixed-full">
|
||||||
<a class="item-control item-equip" title="Equiper" {{#unless armure.system.equipe}}style="color:gray;"{{/unless}}>
|
<a class="item-control item-equip" title="Equiper" {{#unless armure.system.equipe}}style="color:gray;"
|
||||||
|
{{/unless}}>
|
||||||
<i class="fas fa-shield-alt"></i>
|
<i class="fas fa-shield-alt"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="item-control item-edit" title="Editer l'armure"><i class="fas fa-edit"></i></a>
|
<a class="item-control item-edit" title="Editer l'armure"><i class="fas fa-edit"></i></a>
|
||||||
@@ -318,12 +333,12 @@
|
|||||||
<h4 class="center">{{loc.score.min}}-{{loc.score.max}}. {{loc.label}}</h4>
|
<h4 class="center">{{loc.score.min}}-{{loc.score.max}}. {{loc.label}}</h4>
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
{{#each loc.armures as |armure idx| }}
|
{{#each loc.armures as |armure idx| }}
|
||||||
<span>{{armure.name}} ({{armure.system.protection}})</span>
|
<span>{{armure.name}} ({{armure.system.protection}})</span>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
<span>Touché : {{touche}}</span>
|
<span>Touché : {{touche}}</span>
|
||||||
<span>Blessures : </span>
|
<span>Blessures : </span>
|
||||||
{{#each loc.blessures as |blessure idx| }}
|
{{#each loc.blessures as |blessure idx| }}
|
||||||
<span>{{blessure.name}} ({{blessure.malus}})</span>
|
<span>{{blessure.name}} ({{blessure.malus}})</span>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -397,8 +412,7 @@
|
|||||||
</span>
|
</span>
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-add" data-type="simple" title="Créer une simple"><i
|
<a class="item-control item-add" data-type="simple" title="Créer une simple"><i class="fas fa-plus"></i></a>
|
||||||
class="fas fa-plus"></i></a>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#each simples as |simple key|}}
|
{{#each simples as |simple key|}}
|
||||||
@@ -415,7 +429,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -428,7 +442,7 @@
|
|||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-name-label-medium">Genre</label>
|
<label class="item-name-label-medium">Genre</label>
|
||||||
<select type="text" class="" name="system.genre" value="{{system.genre}}" data-dtype="String" />
|
<select type="text" class="" name="system.genre" value="{{system.genre}}" data-dtype="String" />
|
||||||
{{selectOptions @root.config.genre selected=system.genre}}
|
{{selectOptions @root.config.genre selected=system.genre}}
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
@@ -438,8 +452,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-name-label-medium">Age</label>
|
<label class="item-name-label-medium">Age</label>
|
||||||
<input type="text" class="" name="system.age" value="{{system.age}}"
|
<input type="text" class="" name="system.age" value="{{system.age}}" data-dtype="String" />
|
||||||
data-dtype="String" />
|
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-name-label-medium">Date de Naissance</label>
|
<label class="item-name-label-medium">Date de Naissance</label>
|
||||||
@@ -462,8 +475,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="item-name-label-medium">Religion</label>
|
<label class="item-name-label-medium">Religion</label>
|
||||||
<input type="text" class="" name="system.religion" value="{{system.religion}}"
|
<input type="text" class="" name="system.religion" value="{{system.religion}}" data-dtype="String" />
|
||||||
data-dtype="String" />
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -5,27 +5,89 @@
|
|||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
<h4 class="chat-actor-name">{{alias}}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div >
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="flexcol">
|
{{#if img}}
|
||||||
</div>
|
<div>
|
||||||
|
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<div>
|
<div class="flexcol">
|
||||||
<ul>
|
</div>
|
||||||
{{#if blessure}}
|
|
||||||
<li>{{defenderName}} a subi une blessure!</li>
|
|
||||||
<li>Gravité : {{blessure.name}}</li>
|
|
||||||
<li>Localisation : {{loc.label}}</li>
|
|
||||||
{{else}}
|
|
||||||
<li>Aucune blessure subie par {{defenderName}}</li>
|
|
||||||
{{/if}}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
<div>
|
||||||
|
<ul>
|
||||||
|
{{#if arme}}
|
||||||
|
<label class="chat-weapon-name">Dégats {{arme.name}} : {{degats}} ({{degatsFormula}})</label>
|
||||||
|
{{/if}}
|
||||||
|
{{#if loc}}
|
||||||
|
<li>Localisation : {{loc.label}}</li>
|
||||||
|
<li>Touché : {{touche}}</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if gantelet}}
|
||||||
|
<li>Poing avec gantelet: +1 dégat</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if isChargeAPied}}
|
||||||
|
<li>Charge à pied (+Course)</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if isChargeACheval}}
|
||||||
|
<li>Charge à cheval (+Equitation)</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if isReussiteCritique}}
|
||||||
|
<li><strong class="chat-result-success">Réussite critique : La blessure a été augmentée d'un niveau</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if blessure}}
|
||||||
|
<li>{{defenderName}} a subi une blessure!</li>
|
||||||
|
<li>Gravité : {{blessure.name}}</li>
|
||||||
|
|
||||||
|
|
||||||
|
{{#if (eq loc.categorie "tete")}}
|
||||||
|
{{#if (gt blessure.system.value 0)}}
|
||||||
|
<li><strong class="chat-result-warning">{{alias}} doit réussir un test d'Endurance de difficulté 7 ou être
|
||||||
|
assomé</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq loc.categorie "bras")}}
|
||||||
|
{{#if (gt blessure.system.value 2)}}
|
||||||
|
<li><strong class="chat-result-warning">{{alias}} lache l'objet tenu par son bras. Il doit faire un test d'endurance
|
||||||
|
pour l'utiliser désormais.</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq loc.categorie "jambe")}}
|
||||||
|
{{#if (gt blessure.system.value 2)}}
|
||||||
|
<li><strong class="chat-result-warning">{{alias}} tombe au sol. Pour se relever et marcher, il doit réussir un test
|
||||||
|
d'Endurance à chaque tour.
|
||||||
|
</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq loc.categorie "main")}}
|
||||||
|
{{#if (gt blessure.system.value 1)}}
|
||||||
|
<li><strong class="chat-result-warning">{{alias}} lache l'objet tenu par sa main. Il doit faire un test d'endurance
|
||||||
|
pour l'utiliser désormais.</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if (eq loc.categorie "pied")}}
|
||||||
|
{{#if (gt blessure.system.value 1)}}
|
||||||
|
<li><strong class="chat-result-warning">{{alias}} tombe au sol. Pour se relever et marcher, il doit réussir un test
|
||||||
|
d'Endurance à chaque tour.
|
||||||
|
</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
|
||||||
|
{{else}}
|
||||||
|
<li>Aucune blessure subie par {{defenderName}}</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
@@ -5,19 +5,34 @@
|
|||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
<h4 class="chat-actor-name">{{alias}}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div >
|
|
||||||
<img class="chat-icon" src="{{arme.img}}" alt="{{name}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div>
|
{{#if img}}
|
||||||
<ul>
|
<div>
|
||||||
<li>Dégats de {{arme.name}}: {{formula}} </li>
|
<img class="chat-icon" src="{{arme.img}}" alt="{{name}}" />
|
||||||
<li>Dégats infligés : {{degats}}</li>
|
</div>
|
||||||
</ul>
|
{{/if}}
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>Dégats de {{arme.name}}: {{formula}} </li>
|
||||||
|
{{#if gantelet}}
|
||||||
|
<li>Poing avec gantelet: +1 dégat</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if isChargeAPied}}
|
||||||
|
<li>Charge à pied (+Course)</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if isChargeACheval}}
|
||||||
|
<li>Charge à cheval (+Equitation)</li>
|
||||||
|
{{/if}}
|
||||||
|
<li>Dégats infligés : {{degats}}</li>
|
||||||
|
{{#if loc}}
|
||||||
|
<li>Localisation : {{loc.label}}</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if isReussiteCritique}}
|
||||||
|
<li><strong class="chat-result-success">Réussite critique : La blessure sera augmentée d'un niveau</strong></li>
|
||||||
|
{{/if}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
@@ -5,92 +5,122 @@
|
|||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
<h4 class="chat-actor-name">{{alias}}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{{#if img}}
|
{{#if img}}
|
||||||
<div >
|
<div>
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<ul>
|
<ul>
|
||||||
{{#if carac}}
|
{{#if carac}}
|
||||||
<li>{{carac.name}}: {{carac.qualite}} ({{carac.dice}}) </li>
|
<li>{{carac.name}}: {{carac.qualite}} ({{carac.dice}}) </li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if competence}}
|
{{#if competence}}
|
||||||
<li>{{competence.name}}: {{compScore}} </li>
|
<li>{{competence.name}}: {{compScore}} </li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if bonusMalus}}
|
{{#if bonusMalus}}
|
||||||
<li>Bonus/Malus: {{bonusMalus}} </li>
|
<li>Bonus/Malus: {{bonusMalus}} </li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if santeModifier}}
|
{{#if santeModifier}}
|
||||||
<li>Santé: {{santeModifier}} niveaux</li>
|
<li>Santé: {{santeModifier}} niveaux</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if enableProvidence}}
|
{{#if enableProvidence}}
|
||||||
<li>Un niveau de Providence a été utilisé !</li>
|
<li>Un niveau de Providence a été utilisé !</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if isViser}}
|
{{#if isViser}}
|
||||||
<li>Bonus de visée (+1 niveau)</li>
|
<li>Bonus de visée (+1 niveau)</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if isMouvement}}
|
{{#if isMouvement}}
|
||||||
<li>Malus de cible petite ou en mouvement (-1 niveau)</li>
|
<li>Malus de cible petite ou en mouvement (-1 niveau)</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{#if attaqueCiblee}}
|
||||||
|
<li>Attaque ciblée, -1 niveau</li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if allongeMalus}}
|
||||||
|
<li>Malus d'allonge: {{allongeMalus}} niveau</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<li>Dés: {{diceFormula}} </li>
|
<li>Dés: {{diceFormula}} </li>
|
||||||
{{#if isTir}}
|
{{#if isTir}}
|
||||||
<li>Portée: {{porteeLabel}} ( {{difficulty}} )</li>
|
<li>Portée: {{porteeLabel}} ( {{difficulty}} )</li>
|
||||||
{{else}}
|
{{else}}
|
||||||
<li>Difficulté: {{difficulty}} </li>
|
<li>Difficulté: {{difficulty}} </li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<ul class="chat-result-column">
|
<ul class="chat-result-column">
|
||||||
<li><strong>Résultat: {{total}}</strong> </li>
|
<li><strong>Résultat: {{total}}</strong> </li>
|
||||||
{{#if isSuccess}}
|
{{#if isSuccess}}
|
||||||
<li><strong class="chat-result-success">Succès !</strong> </li>
|
<li><strong class="chat-result-success">Succès !</strong> </li>
|
||||||
{{#if isReussiteCritique}}
|
{{#if isReussiteCritique}}
|
||||||
<li><strong class="chat-result-success">Réussite critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
|
<li data-tooltip="Si le jet n'est pas opposé, cliquez sur le bouton pour gagner 1 XP gagné en {{carac.name}}">
|
||||||
{{/if}}
|
<strong class="chat-result-success">Réussite critique (XP potentiel) !</strong>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if arme}}
|
{{#if arme}}
|
||||||
<li><strong class="">Attaque réussie ! Faites une opposition avec la défense de la cible ou appliquez directement les dégats.</strong> </li>
|
<li><strong class="">Attaque réussie ! Faites une opposition avec la défense de la cible ou appliquez directement
|
||||||
{{/if}}
|
les dégats.</strong> </li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<li><strong class="chat-result-failure">Echec !</strong> </li>
|
<li><strong class="chat-result-failure">Echec !</strong> </li>
|
||||||
{{#if isEchecCritique}}
|
{{#if isEchecCritique}}
|
||||||
<li><strong class="chat-result-failure">Echec critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
|
<li data-tooltip="Si le jet n'est pas opposé, cliquez sur le bouton pour gagner 1 XP gagné en {{carac.name}}">
|
||||||
{{/if}}
|
<strong class="chat-result-failure">Echec critique (XP potentiel) !</strong>
|
||||||
{{/if}}
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if loc}}
|
{{#if nbEsquives}}
|
||||||
<li><strong>Attaque réussie !!</strong> </li>
|
<li>Rappel : vous devez réussir {{nbEsquives}} tests d'esquive pour arriver au contact (règle d'allonge des armes).
|
||||||
<li>Localisation: {{loc.label}} </li>
|
</li>
|
||||||
<li>Dégats: {{degats}} {{#if isReussiteCritique}}(Augmentez la gravité de la blessure d'un niveau){{/if}}</li>
|
{{/if}}
|
||||||
{{/if}}
|
|
||||||
</ul>
|
|
||||||
<div>
|
|
||||||
<a class="chat-command-opposition" >
|
|
||||||
<img class="chat-command-img" data-tooltip="Test en opposition" src="systems/fvtt-te-deum/images/icons/opposition.webp">
|
|
||||||
</a>
|
|
||||||
|
|
||||||
{{#if arme}}
|
{{#if loc}}
|
||||||
{{#if isSuccess}}
|
<li><strong>Attaque réussie !!</strong> </li>
|
||||||
<a class="chat-command-appliquer-degats" >
|
<li>Localisation: {{loc.label}} </li>
|
||||||
<img class="chat-command-img" data-tooltip="Appliquer les dégats directement sans opposition" src="systems/fvtt-te-deum/images/icons/appliquer-degats.webp">
|
{{/if}}
|
||||||
</a>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
|
{{#if degats}}
|
||||||
|
<li>Dégats: {{degats}} {{#if isReussiteCritique}}(Augmentez la gravité de la blessure d'un niveau){{/if}}</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
{{#if (or isEchecCritique isReussiteCritique)}}
|
||||||
|
<a class="chat-command-gain-xp">
|
||||||
|
<img class="chat-command-img" data-tooltip="Cliquez ici pour +1 XP en {{carac.name}} si pas d'opposition"
|
||||||
|
src="systems/fvtt-te-deum/images/icons/xpplus1.webp">
|
||||||
|
</a>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<a class="chat-command-opposition">
|
||||||
|
<img class="chat-command-img" data-tooltip="Test en opposition"
|
||||||
|
src="systems/fvtt-te-deum/images/icons/opposition.webp">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
{{#if arme}}
|
||||||
|
{{#if isSuccess}}
|
||||||
|
<a class="chat-command-appliquer-degats">
|
||||||
|
<img class="chat-command-img" data-tooltip="Appliquer les dégats directement sans opposition"
|
||||||
|
src="systems/fvtt-te-deum/images/icons/appliquer-degats.webp">
|
||||||
|
</a>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
@@ -1,15 +1,22 @@
|
|||||||
<div class="chat-message-header">
|
<div class="chat-message-header">
|
||||||
|
|
||||||
<img class="actor-icon" src="{{winner.actorImg}}" alt="{{winner.alias}}" />
|
<img class="actor-icon" src="{{winner.actorImg}}" alt="{{winner.alias}}" />
|
||||||
<img class="chat-command-img" data-tooltip="Test en opposition" src="systems/fvtt-te-deum/images/icons/opposition.webp">
|
<img class="chat-command-img" data-tooltip="Test en opposition"
|
||||||
|
src="systems/fvtt-te-deum/images/icons/opposition.webp">
|
||||||
<img class="actor-icon" src="{{looser.actorImg}}" alt="{{looser.alias}}" />
|
<img class="actor-icon" src="{{looser.actorImg}}" alt="{{looser.alias}}" />
|
||||||
<label class="chat-actor-name-opposition">{{winner.alias}} vs {{looser.alias}}</label>
|
<label class="chat-actor-name-opposition">{{winner.alias}} vs {{looser.alias}}</label>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div >
|
<div>
|
||||||
<label class="chat-result-success">{{winner.alias}} ({{winner.competence.name}}, {{winner.total}}) l'emporte sur {{looser.alias}} ({{looser.competence.name}}, {{looser.total}})</label>
|
<label class="chat-result-success">{{winner.alias}} ({{winner.competence.name}}, {{winner.total}}) l'emporte sur
|
||||||
</div>
|
{{looser.alias}} ({{looser.competence.name}}, {{looser.total}})</label>
|
||||||
|
{{#if winner.isReussiteCritique}}
|
||||||
|
<div><strong class="chat-result-success">Réussite critique ! 1 XP gagné en {{winner.carac.name}}.</strong> </div>
|
||||||
|
{{/if}}
|
||||||
|
{{#if looser.isEchecCritique}}
|
||||||
|
<div><strong class="chat-result-failure">Echec critique ! 1 XP gagné en {{looser.carac.name}}.</strong> </div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
@@ -41,33 +41,58 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if arme}}
|
{{#if arme}}
|
||||||
{{#if isTir}}
|
{{#if isTir}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Portée : </span>
|
<span class="roll-dialog-label">Portée : </span>
|
||||||
<select class="" type="text" id="roll-portee-tir" value="{{porteeTir}}" data-dtype="String">
|
<select class="" type="text" id="roll-portee-tir" value="{{porteeTir}}" data-dtype="String">
|
||||||
{{#select porteeTir}}
|
{{#select porteeTir}}
|
||||||
{{#each config.ARME_PORTEES as |portee key|}}
|
{{#each config.ARME_PORTEES as |portee key|}}
|
||||||
<option value="{{key}}">{{portee.label}}</option>
|
<option value="{{key}}">{{portee.label}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Viser : </span>
|
<span class="roll-dialog-label">Viser : </span>
|
||||||
<input type="checkbox" id="roll-tir-viser" {{checked isViser}} />
|
<input type="checkbox" id="roll-tir-viser" {{checked isViser}} />
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Cible petite/en mouvement : </span>
|
<span class="roll-dialog-label">Cible petite/en mouvement : </span>
|
||||||
<input type="checkbox" id="roll-tir-mouvement" {{checked isMouvement}} />
|
<input type="checkbox" id="roll-tir-mouvement" {{checked isMouvement}} />
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
|
||||||
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Difficulté : </span>
|
<span class="roll-dialog-label">Allonge {{allongeLabel}} : Indiquez l'allonge de votre adversaire
|
||||||
<select class="" type="text" id="roll-difficulty" value="{{difficulty}}" data-dtype="String">
|
ci-dessous.</span>
|
||||||
{{selectOptions config.difficulte selected=difficulty valueAttr="key" labelAttr="label"}}
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label"
|
||||||
|
data-tooltip="Modification d'allonge selon votre arme et celle de votre adversaire">Allonge arme adversaire :
|
||||||
|
</span>
|
||||||
|
<select class="" type="text" id="roll-allonge" value="{{allongeId}}" data-dtype="String">
|
||||||
|
{{#select allongeId}}
|
||||||
|
{{#each allonges as |allonge key|}}
|
||||||
|
<option value="{{key}}">{{allonge.label}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Charge à pied ?</span>
|
||||||
|
<input type="checkbox" id="roll-charge-a-pied" {{checked isChargeAPied}} />
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Charge à cheval ?</span>
|
||||||
|
<input type="checkbox" id="roll-charge-a-cheval" {{checked isChargeACheval}} />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">Attaque ciblée (-1 Niveau): </span>
|
||||||
|
<select class="" type="text" id="roll-attaque-ciblee" value="{{attaqueCiblee}}" data-dtype="String">
|
||||||
|
{{#select attaqueCiblee}}
|
||||||
|
{{#each config.ATTAQUE_CIBLEES as |attaque key|}}
|
||||||
|
<option value="{{key}}">{{attaque.label}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
Reference in New Issue
Block a user