Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fc6bb7a4b1 | |||
| f26130d208 | |||
| 39da08d4cb | |||
| e639b6ae3e | |||
| 8c247a8981 | |||
| a09e1a1d95 | |||
| 787f88873a | |||
| ac481e0dd9 | |||
| 375622d900 | |||
| 3bc055cc1f | |||
| c97b7a4889 | |||
| 5d13500838 | |||
| d21515e1e3 | |||
| 78ef009465 |
54
.gitignore
vendored
Normal file
54
.gitignore
vendored
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# Dependencies
|
||||||
|
node_modules/
|
||||||
|
package-lock.json
|
||||||
|
|
||||||
|
# Build outputs
|
||||||
|
styles/tedeum.css
|
||||||
|
styles/*.css.map
|
||||||
|
|
||||||
|
# IDE & Editor files
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# System files
|
||||||
|
Thumbs.db
|
||||||
|
desktop.ini
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.tmp
|
||||||
|
*.temp
|
||||||
|
.cache/
|
||||||
|
|
||||||
|
# Environment variables
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
|
||||||
|
# Optional: Uncomment if you want to ignore pack database files
|
||||||
|
# These are usually committed for systems, but can be regenerated
|
||||||
|
# packs/**/*.ldb
|
||||||
|
# packs/**/LOG
|
||||||
|
# packs/**/LOG.old
|
||||||
|
# packs/**/MANIFEST-*
|
||||||
|
# packs/**/CURRENT
|
||||||
|
|
||||||
|
# Compiled source
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
|
||||||
|
# OS generated files
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
ehthumbs.db
|
||||||
24
gulpfile.js
24
gulpfile.js
@@ -1,25 +1,17 @@
|
|||||||
var gulp = require('gulp');
|
var gulp = require('gulp');
|
||||||
|
var less = require('gulp-less');
|
||||||
var postcss = require('gulp-postcss');
|
var postcss = require('gulp-postcss');
|
||||||
|
|
||||||
var autoprefixer = require('autoprefixer');
|
var autoprefixer = require('autoprefixer');
|
||||||
var cssnext = require('postcss-preset-env');
|
|
||||||
var precss = require('precss');
|
|
||||||
|
|
||||||
gulp.task('css', function () {
|
gulp.task('css', function () {
|
||||||
|
return gulp.src('./less/*.less')
|
||||||
var processors = [
|
.pipe(less())
|
||||||
autoprefixer,
|
.pipe(postcss([autoprefixer]))
|
||||||
cssnext,
|
|
||||||
precss
|
|
||||||
];
|
|
||||||
|
|
||||||
return gulp.src('./postcss/*.css')
|
|
||||||
.pipe(postcss(processors))
|
|
||||||
.pipe(gulp.dest('./styles'));
|
.pipe(gulp.dest('./styles'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task('watch', function () {
|
||||||
|
gulp.watch('./less/*.less', gulp.series('css'));
|
||||||
|
});
|
||||||
|
|
||||||
function watchUpdates() {
|
gulp.task('default', gulp.series('css'));
|
||||||
gulp.watch('./postcss/*.css', css);
|
|
||||||
}
|
|
||||||
|
|||||||
2071
less/tedeum.less
Normal file
2071
less/tedeum.less
Normal file
File diff suppressed because it is too large
Load Diff
@@ -82,8 +82,8 @@ export class TeDeumActor extends Actor {
|
|||||||
let compScore = this.getCompetenceScore(comp.name)
|
let compScore = this.getCompetenceScore(comp.name)
|
||||||
let mainGaucheScore = this.getCompetenceScore("main gauche")
|
let mainGaucheScore = this.getCompetenceScore("main gauche")
|
||||||
if (mainGaucheScore < compScore) {
|
if (mainGaucheScore < compScore) {
|
||||||
ui.notifications.info(`${actor.name} : Utilisation de la compétence Main Gauche au lieu de ${comp.name}`)
|
ui.notifications.info(`${this.name} : Utilisation de la compétence Main Gauche au lieu de ${comp.name}`)
|
||||||
let mainGaucheComp = this.itms.find(item => item.type == "competence" && item.name.toLowerCase() == "main gauche")
|
let mainGaucheComp = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "main gauche")
|
||||||
if (!mainGaucheComp) {
|
if (!mainGaucheComp) {
|
||||||
// Create a fake competence object
|
// Create a fake competence object
|
||||||
mainGaucheComp = foundry.utils.duplicate(comp)
|
mainGaucheComp = foundry.utils.duplicate(comp)
|
||||||
@@ -713,7 +713,7 @@ export class TeDeumActor extends Actor {
|
|||||||
async rollDegatsArme(armeId) {
|
async rollDegatsArme(armeId) {
|
||||||
let weapon = this.items.get(armeId)
|
let weapon = this.items.get(armeId)
|
||||||
if (weapon) {
|
if (weapon) {
|
||||||
let bDegats = 0
|
let bDegats = { value: 0 }
|
||||||
if (weapon.system.typeArme == "melee") {
|
if (weapon.system.typeArme == "melee") {
|
||||||
bDegats = this.getBonusDegats()
|
bDegats = this.getBonusDegats()
|
||||||
}
|
}
|
||||||
@@ -728,7 +728,7 @@ export class TeDeumActor extends Actor {
|
|||||||
rollData.degats = degatsRoll.total
|
rollData.degats = degatsRoll.total
|
||||||
|
|
||||||
let msg = await TeDeumUtility.createChatWithRollMode(rollData.alias, {
|
let msg = await TeDeumUtility.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-degats-result.hbs`, rollData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-degats-result.hbs`, rollData)
|
||||||
})
|
})
|
||||||
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
await msg.setFlag("world", "te-deum-rolldata", rollData)
|
||||||
console.log("Rolldata result", rollData)
|
console.log("Rolldata result", rollData)
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ export class TeDeumCombat extends Combat {
|
|||||||
for (let cId of ids) {
|
for (let cId of ids) {
|
||||||
const c = this.combatants.get(cId);
|
const c = this.combatants.get(cId);
|
||||||
let initBonus = c.actor ? c.actor.getInitiativeScore(this.id, cId) : -1;
|
let initBonus = c.actor ? c.actor.getInitiativeScore(this.id, cId) : -1;
|
||||||
|
console.log("Init Bonus : ", c.name, initBonus)
|
||||||
await this.updateEmbeddedDocuments("Combatant", [{ _id: cId, initiative: initBonus }]);
|
await this.updateEmbeddedDocuments("Combatant", [{ _id: cId, initiative: initBonus }]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,8 +32,12 @@ export class TeDeumCombat extends Combat {
|
|||||||
}
|
}
|
||||||
if (ca.nbActionsMainGauche < 0) ca.nbActionsMainGauche = 0
|
if (ca.nbActionsMainGauche < 0) ca.nbActionsMainGauche = 0
|
||||||
if (ca.nbActions < 0) ca.nbActions = 0
|
if (ca.nbActions < 0) ca.nbActions = 0
|
||||||
await combatant.setFlag("world", "available-actions", ca)
|
console.log("Modify Action : ", combatant.name, ca)
|
||||||
await combatant.update({ name: `${combatant.token.name} (${ca.nbActions} / ${ca.nbActionsMainGauche})` })
|
if (game.user.isGM) {
|
||||||
|
await TeDeumUtility.updateCombatantActions(combatant, ca)
|
||||||
|
} else {
|
||||||
|
game.socket.emit("system.fvtt-te-deum", { msg: "msg_modify_combat_action", data: { combatantId: combatantId, ca: ca } })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|||||||
@@ -59,11 +59,11 @@ export const TEDEUM_CONFIG = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
ARME_PORTEES: {
|
ARME_PORTEES: {
|
||||||
"brulepourpoint": { label: "Brûle-pourpoint", difficulty: "facile", id: "brulepourpoint" },
|
"brulepourpoint": { label: "Brûle-pourpoint (5)", difficulty: "facile", id: "brulepourpoint" },
|
||||||
"courte": { label: "Courte", difficulty: "pardefaut", id: "courte" },
|
"courte": { label: "Courte (7)", difficulty: "pardefaut", id: "courte" },
|
||||||
"moyenne": { label: "Moyenne", difficulty: "difficile", id: "moyenne" },
|
"moyenne": { label: "Moyenne (11)", difficulty: "difficile", id: "moyenne" },
|
||||||
"longue": { label: "Longue", difficulty: "perilleux", id: "longue" },
|
"longue": { label: "Longue (13)", difficulty: "perilleux", id: "longue" },
|
||||||
"extreme": { label: "Extrême", difficulty: "desespere", id: "extreme" },
|
"extreme": { label: "Extrême (15)", difficulty: "desespere", id: "extreme" },
|
||||||
},
|
},
|
||||||
|
|
||||||
genre: {
|
genre: {
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
const ECRYME_WELCOME_MESSAGE_URL = "https://www.uberwald.me/gitea/public/fvtt-te-deum/raw/branch/main/welcome-message-tedeum.html"
|
||||||
|
|
||||||
export class TeDeumUtility {
|
export class TeDeumUtility {
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -59,14 +61,16 @@ export class TeDeumUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async resetCombatActions(combat) {
|
static async resetCombatActions(combat) {
|
||||||
for (let c of combat.combatants) {
|
if (game.user.isGM) {
|
||||||
let actor = game.actors.get(c.actorId)
|
for (let c of combat.combatants) {
|
||||||
if (actor) {
|
let actor = game.actors.get(c.actorId)
|
||||||
let nbActions = actor.getNbActions()?.value || 0
|
if (actor) {
|
||||||
let isMainGauche = (actor.getCompetenceScore("Main gauche") > 0)
|
let nbActions = actor.getNbActions()?.value || 0
|
||||||
let nbActionsMainGauche = isMainGauche ? nbActions : 0
|
let isMainGauche = (actor.getCompetenceScore("Main gauche") > 0)
|
||||||
await c.setFlag("world", "available-actions", { nbActions, nbActionsMainGauche })
|
let nbActionsMainGauche = isMainGauche ? nbActions : 0
|
||||||
await c.update({ name: `${c.token.name} (${nbActions} / ${nbActionsMainGauche})` })
|
await c.setFlag("world", "available-actions", { nbActions, nbActionsMainGauche })
|
||||||
|
await c.update({ name: `${c.token.name} (${nbActions} / ${nbActionsMainGauche})` })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -167,14 +171,25 @@ export class TeDeumUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static welcomeMessage() {
|
static welcomeMessage() {
|
||||||
if (game.user.isGM) {
|
if (game.user.isGM) {
|
||||||
ChatMessage.create({
|
// Try to fetch the welcome message from the github repo "welcome-message-ecryme.html"
|
||||||
user: game.user.id,
|
fetch(ECRYME_WELCOME_MESSAGE_URL)
|
||||||
whisper: [game.user.id],
|
.then(response => response.text())
|
||||||
content: `<div id="chat-welcome welcome-message-tedeum"><span class="rdd-roll-part">
|
.then(html => {
|
||||||
<strong>Bienvenu dans Te Deum Pour Un Massacre !</strong>
|
console.log("Fetched welcome message:", html);
|
||||||
<div class="chat-welcome">Ce système vous est proposé par Open Sesame Games.<br>
|
ChatMessage.create({
|
||||||
Vous trouverez de l'aide dans @UUID[Compendium.fvtt-te-deum.aides.JournalEntry.uNwJgi4kXBCiZmAH]{Aide pour Te Deum}<br>
|
user: game.user.id,
|
||||||
ainsi que sur le Discord de Foundry FR : https://discord.gg/pPSDNJk</div>` });
|
whisper: [game.user.id],
|
||||||
|
content: html
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error("Error fetching welcome message:", error);
|
||||||
|
ChatMessage.create({
|
||||||
|
user: game.user.id,
|
||||||
|
whisper: [game.user.id],
|
||||||
|
content: "<b>Bienvenue dans Ecryme RPG !</b><br>Visitez le site officiel pour plus d'informations."
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,7 +315,12 @@ export class TeDeumUtility {
|
|||||||
let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
|
let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
|
||||||
if (defenderToken) {
|
if (defenderToken) {
|
||||||
let actor = defenderToken.actor
|
let actor = defenderToken.actor
|
||||||
await actor.appliquerDegats(rollData)
|
if (game.user.isGM || actor.isOwner) {
|
||||||
|
await actor.appliquerDegats(rollData)
|
||||||
|
} else {
|
||||||
|
// Send a socket message
|
||||||
|
game.socket.emit("system.fvtt-te-deum", { name: "msg_apply_damage", data: { rollData } });
|
||||||
|
}
|
||||||
// Attaque naturelle avec dégats inférieur à -2
|
// Attaque naturelle avec dégats inférieur à -2
|
||||||
if ((rollData?.arme?.system.specificites?.poing?.hasSpec || rollData?.arme?.system.specificites?.pied?.hasSpec) && rollData.degats < -2) {
|
if ((rollData?.arme?.system.specificites?.poing?.hasSpec || rollData?.arme?.system.specificites?.pied?.hasSpec) && rollData.degats < -2) {
|
||||||
let attacker = this.getActorFromRollData(rollData)
|
let attacker = this.getActorFromRollData(rollData)
|
||||||
@@ -436,6 +456,28 @@ export class TeDeumUtility {
|
|||||||
chatMsg.setFlag("world", "tedeum-rolldata", rollData)
|
chatMsg.setFlag("world", "tedeum-rolldata", rollData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (msg.name == "msg_modify_combat_action") {
|
||||||
|
if (game.user.isGM) {
|
||||||
|
let { combatantId, ca } = msg.data
|
||||||
|
let combatant = game.combat.combatants.get(combatantId)
|
||||||
|
if (combatant) {
|
||||||
|
console.log("sock - Modify Combat Action : ", combatant.name, ca)
|
||||||
|
await TeDeumUtility.updateCombatantActions(combatant, ca)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (msg.name == "msg_apply_damage") {
|
||||||
|
if (game.user.isGM) {
|
||||||
|
let rollData = msg.data.rollData
|
||||||
|
let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
|
||||||
|
if (defenderToken) {
|
||||||
|
let actor = defenderToken.actor
|
||||||
|
await actor.appliquerDegats(rollData)
|
||||||
|
} else {
|
||||||
|
ui.notifications.error("Impossible de trouver la cible de l'attaque, aucun degats appliqué")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -521,9 +563,11 @@ export class TeDeumUtility {
|
|||||||
}
|
}
|
||||||
if (rollData.diceSum == 1) {
|
if (rollData.diceSum == 1) {
|
||||||
let critiqueRoll = await new Roll(rollData.carac.negativeDice)
|
let critiqueRoll = await new Roll(rollData.carac.negativeDice)
|
||||||
|
rollData.isSuccess = false
|
||||||
await critiqueRoll.evaluate()
|
await critiqueRoll.evaluate()
|
||||||
await this.showDiceSoNice(critiqueRoll, game.settings.get("core", "rollMode"))
|
await this.showDiceSoNice(critiqueRoll, game.settings.get("core", "rollMode"))
|
||||||
rollData.critiqueRoll = foundry.utils.duplicate(critiqueRoll)
|
rollData.critiqueRoll = foundry.utils.duplicate(critiqueRoll)
|
||||||
|
rollData.critiqueTotal = critiqueRoll.total
|
||||||
if (critiqueRoll.total > rollData.competence.system.score) {
|
if (critiqueRoll.total > rollData.competence.system.score) {
|
||||||
rollData.isEchecCritique = true
|
rollData.isEchecCritique = true
|
||||||
}
|
}
|
||||||
@@ -612,12 +656,18 @@ 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.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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async updateCombatantActions(combatant, ca) {
|
||||||
|
await combatant.setFlag("world", "available-actions", ca)
|
||||||
|
await combatant.update({ name: `${combatant.token.name} (${ca.nbActions} / ${ca.nbActionsMainGauche})` })
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async manageCombatActions(actor, rollData) {
|
static async manageCombatActions(actor, rollData) {
|
||||||
let combat = game.combats.active
|
let combat = game.combats.active
|
||||||
@@ -631,16 +681,21 @@ export class TeDeumUtility {
|
|||||||
ca.nbActionsMainGauche -= 1
|
ca.nbActionsMainGauche -= 1
|
||||||
ca.nbActions = Math.max(ca.nbActions - 1, 0)
|
ca.nbActions = Math.max(ca.nbActions - 1, 0)
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.error(`${actor.name} n'a plus d'actions disponibles à la main gauche`)
|
ui.notifications.error(`${actor.name} n'a plus d'actions disponibles à la main gauche pour ce round`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ca.nbActions > 0) {
|
if (ca.nbActions > 0) {
|
||||||
ca.nbActions -= 1
|
ca.nbActions -= 1
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.error(`${actor.name} n'a plus d'actions disponibles`)
|
ui.notifications.error(`${actor.name} n'a plus d'actions disponibles pour ce round`)
|
||||||
|
}
|
||||||
|
console.log("Manage combat actions 1", actor.name, combatant)
|
||||||
|
if (game.user.isGM) {
|
||||||
|
await this.updateCombatantActions(combatant, ca)
|
||||||
|
} else {
|
||||||
|
// Send a socket message
|
||||||
|
game.socket.emit("system.fvtt-te-deum", { name: "msg_modify_combat_action", data: { combatantId: combatant.id, ca } });
|
||||||
}
|
}
|
||||||
await combatant.setFlag("world", "available-actions", ca)
|
|
||||||
await combatant.update({ name: `${combatant.token.name} (${ca.nbActions} / ${ca.nbActionsMainGauche})` })
|
|
||||||
rollData.hasActions = true
|
rollData.hasActions = true
|
||||||
rollData.remainingActions = ca.nbActions
|
rollData.remainingActions = ca.nbActions
|
||||||
rollData.remainingActionsMainGauche = ca.nbActionsMainGauche
|
rollData.remainingActionsMainGauche = ca.nbActionsMainGauche
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export class TeDeumRollDialog extends Dialog {
|
|||||||
static async create(actor, rollData) {
|
static async create(actor, rollData) {
|
||||||
|
|
||||||
let options = { classes: ["tedeum-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
|
let options = { classes: ["tedeum-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
|
||||||
let html = await renderTemplate('systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs', rollData);
|
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs', rollData);
|
||||||
return new TeDeumRollDialog(actor, rollData, html, options);
|
return new TeDeumRollDialog(actor, rollData, html, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ export class TeDeumRollDialog extends Dialog {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async refreshDialog() {
|
async refreshDialog() {
|
||||||
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs", this.rollData)
|
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs", this.rollData)
|
||||||
this.data.content = content
|
this.data.content = content
|
||||||
this.render(true)
|
this.render(true)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet {
|
|||||||
payload: chatData,
|
payload: chatData,
|
||||||
});
|
});
|
||||||
|
|
||||||
renderTemplate('systems/fvtt-te-deum/templates/post-item.html', chatData).then(html => {
|
foundry.applications.handlebars.renderTemplate('systems/fvtt-te-deum/templates/post-item.html', chatData).then(html => {
|
||||||
let chatOptions = TeDeumUtility.chatDataSetup(html);
|
let chatOptions = TeDeumUtility.chatDataSetup(html);
|
||||||
ChatMessage.create(chatOptions)
|
ChatMessage.create(chatOptions)
|
||||||
});
|
});
|
||||||
|
|||||||
21
package.json
Normal file
21
package.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"name": "fvtt-te-deum",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Système Te Deum pour FoundryVTT",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"build:css": "gulp css",
|
||||||
|
"watch:css": "gulp watch"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"gulp": "^4.0.2",
|
||||||
|
"gulp-less": "^5.0.0",
|
||||||
|
"less": "^4.2.0",
|
||||||
|
"autoprefixer": "^10.4.20",
|
||||||
|
"gulp-postcss": "^9.0.1",
|
||||||
|
"postcss": "^8.4.49"
|
||||||
|
},
|
||||||
|
"keywords": ["foundry-vtt", "te-deum"],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
MANIFEST-000157
|
MANIFEST-000214
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.187023 7f7d00dfa6c0 Recovering log #155
|
2026/01/04-21:26:37.933804 7f93eb7fe6c0 Recovering log #212
|
||||||
2025/09/24-15:09:29.197297 7f7d00dfa6c0 Delete type=3 #153
|
2026/01/04-21:26:37.943801 7f93eb7fe6c0 Delete type=3 #210
|
||||||
2025/09/24-15:09:29.197358 7f7d00dfa6c0 Delete type=0 #155
|
2026/01/04-21:26:37.943854 7f93eb7fe6c0 Delete type=0 #212
|
||||||
2025/09/24-15:11:47.439451 7f7cf9fff6c0 Level-0 table #160: started
|
2026/01/04-21:27:02.505234 7f93e9ffb6c0 Level-0 table #217: started
|
||||||
2025/09/24-15:11:47.439482 7f7cf9fff6c0 Level-0 table #160: 0 bytes OK
|
2026/01/04-21:27:02.505262 7f93e9ffb6c0 Level-0 table #217: 0 bytes OK
|
||||||
2025/09/24-15:11:47.446526 7f7cf9fff6c0 Delete type=0 #158
|
2026/01/04-21:27:02.512734 7f93e9ffb6c0 Delete type=0 #215
|
||||||
2025/09/24-15:11:47.446682 7f7cf9fff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.512909 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.305998 7f7cfb7fe6c0 Recovering log #151
|
2025/12/20-18:12:56.443928 7f244d1ff6c0 Recovering log #208
|
||||||
2025/09/24-14:48:23.315978 7f7cfb7fe6c0 Delete type=3 #149
|
2025/12/20-18:12:56.494058 7f244d1ff6c0 Delete type=3 #206
|
||||||
2025/09/24-14:48:23.316051 7f7cfb7fe6c0 Delete type=0 #151
|
2025/12/20-18:12:56.494134 7f244d1ff6c0 Delete type=0 #208
|
||||||
2025/09/24-15:08:26.608194 7f7cf9fff6c0 Level-0 table #156: started
|
2025/12/20-18:36:44.261828 7f2436ffd6c0 Level-0 table #213: started
|
||||||
2025/09/24-15:08:26.608240 7f7cf9fff6c0 Level-0 table #156: 0 bytes OK
|
2025/12/20-18:36:44.261865 7f2436ffd6c0 Level-0 table #213: 0 bytes OK
|
||||||
2025/09/24-15:08:26.663875 7f7cf9fff6c0 Delete type=0 #154
|
2025/12/20-18:36:44.320648 7f2436ffd6c0 Delete type=0 #211
|
||||||
2025/09/24-15:08:26.664085 7f7cf9fff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:44.320833 7f2436ffd6c0 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-000214
Normal file
BIN
packs/aides/MANIFEST-000214
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000260
|
MANIFEST-000317
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.097777 7f7cfbfff6c0 Recovering log #258
|
2026/01/04-21:26:37.828637 7f93eb7fe6c0 Recovering log #315
|
||||||
2025/09/24-15:09:29.108008 7f7cfbfff6c0 Delete type=3 #256
|
2026/01/04-21:26:37.839103 7f93eb7fe6c0 Delete type=3 #313
|
||||||
2025/09/24-15:09:29.108079 7f7cfbfff6c0 Delete type=0 #258
|
2026/01/04-21:26:37.839200 7f93eb7fe6c0 Delete type=0 #315
|
||||||
2025/09/24-15:11:47.381009 7f7cf9fff6c0 Level-0 table #263: started
|
2026/01/04-21:27:02.452079 7f93e9ffb6c0 Level-0 table #320: started
|
||||||
2025/09/24-15:11:47.381035 7f7cf9fff6c0 Level-0 table #263: 0 bytes OK
|
2026/01/04-21:27:02.452098 7f93e9ffb6c0 Level-0 table #320: 0 bytes OK
|
||||||
2025/09/24-15:11:47.387083 7f7cf9fff6c0 Delete type=0 #261
|
2026/01/04-21:27:02.458511 7f93e9ffb6c0 Delete type=0 #318
|
||||||
2025/09/24-15:11:47.393292 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.458741 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.211234 7f7cfaffd6c0 Recovering log #254
|
2025/12/20-18:12:56.039187 7f244d1ff6c0 Recovering log #311
|
||||||
2025/09/24-14:48:23.220782 7f7cfaffd6c0 Delete type=3 #252
|
2025/12/20-18:12:56.089963 7f244d1ff6c0 Delete type=3 #309
|
||||||
2025/09/24-14:48:23.220848 7f7cfaffd6c0 Delete type=0 #254
|
2025/12/20-18:12:56.090033 7f244d1ff6c0 Delete type=0 #311
|
||||||
2025/09/24-15:08:26.052999 7f7cf9fff6c0 Level-0 table #259: started
|
2025/12/20-18:36:43.701277 7f2436ffd6c0 Level-0 table #316: started
|
||||||
2025/09/24-15:08:26.053039 7f7cf9fff6c0 Level-0 table #259: 0 bytes OK
|
2025/12/20-18:36:43.701303 7f2436ffd6c0 Level-0 table #316: 0 bytes OK
|
||||||
2025/09/24-15:08:26.114659 7f7cf9fff6c0 Delete type=0 #257
|
2025/12/20-18:36:43.756264 7f2436ffd6c0 Delete type=0 #314
|
||||||
2025/09/24-15:08:26.173656 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:43.812180 7f2436ffd6c0 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-000317
Normal file
BIN
packs/armes/MANIFEST-000317
Normal file
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000259
|
MANIFEST-000317
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.111050 7f7cfaffd6c0 Recovering log #257
|
2026/01/04-21:26:37.843261 7f93ea7fc6c0 Recovering log #315
|
||||||
2025/09/24-15:09:29.121636 7f7cfaffd6c0 Delete type=3 #255
|
2026/01/04-21:26:37.853735 7f93ea7fc6c0 Delete type=3 #313
|
||||||
2025/09/24-15:09:29.121696 7f7cfaffd6c0 Delete type=0 #257
|
2026/01/04-21:26:37.853805 7f93ea7fc6c0 Delete type=0 #315
|
||||||
2025/09/24-15:11:47.374855 7f7cf9fff6c0 Level-0 table #262: started
|
2026/01/04-21:27:02.446245 7f93e9ffb6c0 Level-0 table #320: started
|
||||||
2025/09/24-15:11:47.374881 7f7cf9fff6c0 Level-0 table #262: 0 bytes OK
|
2026/01/04-21:27:02.446262 7f93e9ffb6c0 Level-0 table #320: 0 bytes OK
|
||||||
2025/09/24-15:11:47.380908 7f7cf9fff6c0 Delete type=0 #260
|
2026/01/04-21:27:02.452006 7f93e9ffb6c0 Delete type=0 #318
|
||||||
2025/09/24-15:11:47.393280 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.458726 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.223575 7f7d00dfa6c0 Recovering log #253
|
2025/12/20-18:12:56.095054 7f24377fe6c0 Recovering log #311
|
||||||
2025/09/24-14:48:23.234727 7f7d00dfa6c0 Delete type=3 #251
|
2025/12/20-18:12:56.148579 7f24377fe6c0 Delete type=3 #309
|
||||||
2025/09/24-14:48:23.234789 7f7d00dfa6c0 Delete type=0 #253
|
2025/12/20-18:12:56.148653 7f24377fe6c0 Delete type=0 #311
|
||||||
2025/09/24-15:08:26.173817 7f7cf9fff6c0 Level-0 table #258: started
|
2025/12/20-18:36:43.637340 7f2436ffd6c0 Level-0 table #316: started
|
||||||
2025/09/24-15:08:26.173861 7f7cf9fff6c0 Level-0 table #258: 0 bytes OK
|
2025/12/20-18:36:43.637367 7f2436ffd6c0 Level-0 table #316: 0 bytes OK
|
||||||
2025/09/24-15:08:26.233062 7f7cf9fff6c0 Delete type=0 #256
|
2025/12/20-18:36:43.701178 7f2436ffd6c0 Delete type=0 #314
|
||||||
2025/09/24-15:08:26.424194 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:43.812170 7f2436ffd6c0 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-000317
Normal file
BIN
packs/armures/MANIFEST-000317
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000258
|
MANIFEST-000315
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.084820 7f7d00dfa6c0 Recovering log #256
|
2026/01/04-21:26:37.813752 7f93eaffd6c0 Recovering log #313
|
||||||
2025/09/24-15:09:29.094841 7f7d00dfa6c0 Delete type=3 #254
|
2026/01/04-21:26:37.823461 7f93eaffd6c0 Delete type=3 #311
|
||||||
2025/09/24-15:09:29.094891 7f7d00dfa6c0 Delete type=0 #256
|
2026/01/04-21:26:37.823509 7f93eaffd6c0 Delete type=0 #313
|
||||||
2025/09/24-15:11:47.367611 7f7cf9fff6c0 Level-0 table #261: started
|
2026/01/04-21:27:02.440062 7f93e9ffb6c0 Level-0 table #318: started
|
||||||
2025/09/24-15:11:47.367694 7f7cf9fff6c0 Level-0 table #261: 0 bytes OK
|
2026/01/04-21:27:02.440091 7f93e9ffb6c0 Level-0 table #318: 0 bytes OK
|
||||||
2025/09/24-15:11:47.374747 7f7cf9fff6c0 Delete type=0 #259
|
2026/01/04-21:27:02.446167 7f93e9ffb6c0 Delete type=0 #316
|
||||||
2025/09/24-15:11:47.393269 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.458712 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.198206 7f7cfb7fe6c0 Recovering log #252
|
2025/12/20-18:12:55.979585 7f244c9fe6c0 Recovering log #309
|
||||||
2025/09/24-14:48:23.208784 7f7cfb7fe6c0 Delete type=3 #250
|
2025/12/20-18:12:56.031769 7f244c9fe6c0 Delete type=3 #307
|
||||||
2025/09/24-14:48:23.208841 7f7cfb7fe6c0 Delete type=0 #252
|
2025/12/20-18:12:56.031837 7f244c9fe6c0 Delete type=0 #309
|
||||||
2025/09/24-15:08:25.940494 7f7cf9fff6c0 Level-0 table #257: started
|
2025/12/20-18:36:43.574310 7f2436ffd6c0 Level-0 table #314: started
|
||||||
2025/09/24-15:08:25.940624 7f7cf9fff6c0 Level-0 table #257: 0 bytes OK
|
2025/12/20-18:36:43.574360 7f2436ffd6c0 Level-0 table #314: 0 bytes OK
|
||||||
2025/09/24-15:08:25.991041 7f7cf9fff6c0 Delete type=0 #255
|
2025/12/20-18:36:43.637222 7f2436ffd6c0 Delete type=0 #312
|
||||||
2025/09/24-15:08:26.173621 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:43.812158 7f2436ffd6c0 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-000315
Normal file
BIN
packs/competences/MANIFEST-000315
Normal file
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000269
|
MANIFEST-000327
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.123386 7f7cfb7fe6c0 Recovering log #267
|
2026/01/04-21:26:37.858384 7f93eaffd6c0 Recovering log #325
|
||||||
2025/09/24-15:09:29.133578 7f7cfb7fe6c0 Delete type=3 #265
|
2026/01/04-21:26:37.868673 7f93eaffd6c0 Delete type=3 #323
|
||||||
2025/09/24-15:09:29.133633 7f7cfb7fe6c0 Delete type=0 #267
|
2026/01/04-21:26:37.868726 7f93eaffd6c0 Delete type=0 #325
|
||||||
2025/09/24-15:11:47.387224 7f7cf9fff6c0 Level-0 table #272: started
|
2026/01/04-21:27:02.458878 7f93e9ffb6c0 Level-0 table #330: started
|
||||||
2025/09/24-15:11:47.387262 7f7cf9fff6c0 Level-0 table #272: 0 bytes OK
|
2026/01/04-21:27:02.458920 7f93e9ffb6c0 Level-0 table #330: 0 bytes OK
|
||||||
2025/09/24-15:11:47.393170 7f7cf9fff6c0 Delete type=0 #270
|
2026/01/04-21:27:02.465606 7f93e9ffb6c0 Delete type=0 #328
|
||||||
2025/09/24-15:11:47.393301 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.485393 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.237291 7f7cfb7fe6c0 Recovering log #263
|
2025/12/20-18:12:56.154781 7f244c9fe6c0 Recovering log #321
|
||||||
2025/09/24-14:48:23.248109 7f7cfb7fe6c0 Delete type=3 #261
|
2025/12/20-18:12:56.203650 7f244c9fe6c0 Delete type=3 #319
|
||||||
2025/09/24-14:48:23.248198 7f7cfb7fe6c0 Delete type=0 #263
|
2025/12/20-18:12:56.206209 7f244c9fe6c0 Delete type=0 #321
|
||||||
2025/09/24-15:08:25.991148 7f7cf9fff6c0 Level-0 table #268: started
|
2025/12/20-18:36:43.812286 7f2436ffd6c0 Level-0 table #326: started
|
||||||
2025/09/24-15:08:25.998446 7f7cf9fff6c0 Level-0 table #268: 0 bytes OK
|
2025/12/20-18:36:43.812329 7f2436ffd6c0 Level-0 table #326: 0 bytes OK
|
||||||
2025/09/24-15:08:26.052852 7f7cf9fff6c0 Delete type=0 #266
|
2025/12/20-18:36:43.867818 7f2436ffd6c0 Delete type=0 #324
|
||||||
2025/09/24-15:08:26.173642 7f7cf9fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:44.048015 7f2436ffd6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/education/MANIFEST-000327
Normal file
BIN
packs/education/MANIFEST-000327
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000259
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.137046 7f7d00dfa6c0 Recovering log #257
|
2026/01/04-21:26:37.873703 7f93ebfff6c0 Recovering log #314
|
||||||
2025/09/24-15:09:29.146636 7f7d00dfa6c0 Delete type=3 #255
|
2026/01/04-21:26:37.885324 7f93ebfff6c0 Delete type=3 #312
|
||||||
2025/09/24-15:09:29.146695 7f7d00dfa6c0 Delete type=0 #257
|
2026/01/04-21:26:37.885427 7f93ebfff6c0 Delete type=0 #314
|
||||||
2025/09/24-15:11:47.393485 7f7cf9fff6c0 Level-0 table #262: started
|
2026/01/04-21:27:02.433342 7f93e9ffb6c0 Level-0 table #319: started
|
||||||
2025/09/24-15:11:47.393516 7f7cf9fff6c0 Level-0 table #262: 0 bytes OK
|
2026/01/04-21:27:02.433382 7f93e9ffb6c0 Level-0 table #319: 0 bytes OK
|
||||||
2025/09/24-15:11:47.400467 7f7cf9fff6c0 Delete type=0 #260
|
2026/01/04-21:27:02.439918 7f93e9ffb6c0 Delete type=0 #317
|
||||||
2025/09/24-15:11:47.419258 7f7cf9fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.458692 7f93e9ffb6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.254619 7f7cfb7fe6c0 Recovering log #253
|
2025/12/20-18:12:56.214726 7f2437fff6c0 Recovering log #310
|
||||||
2025/09/24-14:48:23.264677 7f7cfb7fe6c0 Delete type=3 #251
|
2025/12/20-18:12:56.267981 7f2437fff6c0 Delete type=3 #308
|
||||||
2025/09/24-14:48:23.264757 7f7cfb7fe6c0 Delete type=0 #253
|
2025/12/20-18:12:56.268051 7f2437fff6c0 Delete type=0 #310
|
||||||
2025/09/24-15:08:26.114804 7f7cf9fff6c0 Level-0 table #258: started
|
2025/12/20-18:36:43.756462 7f2436ffd6c0 Level-0 table #315: started
|
||||||
2025/09/24-15:08:26.114845 7f7cf9fff6c0 Level-0 table #258: 0 bytes OK
|
2025/12/20-18:36:43.756507 7f2436ffd6c0 Level-0 table #315: 0 bytes OK
|
||||||
2025/09/24-15:08:26.173413 7f7cf9fff6c0 Delete type=0 #256
|
2025/12/20-18:36:43.812023 7f2436ffd6c0 Delete type=0 #313
|
||||||
2025/09/24-15:08:26.173668 7f7cf9fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:43.812190 7f2436ffd6c0 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-000316
Normal file
BIN
packs/graces/MANIFEST-000316
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000259
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.148975 7f7cfbfff6c0 Recovering log #257
|
2026/01/04-21:26:37.889654 7f93ea7fc6c0 Recovering log #314
|
||||||
2025/09/24-15:09:29.158794 7f7cfbfff6c0 Delete type=3 #255
|
2026/01/04-21:26:37.899518 7f93ea7fc6c0 Delete type=3 #312
|
||||||
2025/09/24-15:09:29.158847 7f7cfbfff6c0 Delete type=0 #257
|
2026/01/04-21:26:37.899583 7f93ea7fc6c0 Delete type=0 #314
|
||||||
2025/09/24-15:11:47.406687 7f7cf9fff6c0 Level-0 table #262: started
|
2026/01/04-21:27:02.472063 7f93e9ffb6c0 Level-0 table #319: started
|
||||||
2025/09/24-15:11:47.406719 7f7cf9fff6c0 Level-0 table #262: 0 bytes OK
|
2026/01/04-21:27:02.472086 7f93e9ffb6c0 Level-0 table #319: 0 bytes OK
|
||||||
2025/09/24-15:11:47.412667 7f7cf9fff6c0 Delete type=0 #260
|
2026/01/04-21:27:02.478114 7f93e9ffb6c0 Delete type=0 #317
|
||||||
2025/09/24-15:11:47.419288 7f7cf9fff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.485430 7f93e9ffb6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.266851 7f7cfaffd6c0 Recovering log #253
|
2025/12/20-18:12:56.274845 7f24377fe6c0 Recovering log #310
|
||||||
2025/09/24-14:48:23.277277 7f7cfaffd6c0 Delete type=3 #251
|
2025/12/20-18:12:56.318675 7f24377fe6c0 Delete type=3 #308
|
||||||
2025/09/24-14:48:23.277357 7f7cfaffd6c0 Delete type=0 #253
|
2025/12/20-18:12:56.318757 7f24377fe6c0 Delete type=0 #310
|
||||||
2025/09/24-15:08:26.356120 7f7cf9fff6c0 Level-0 table #258: started
|
2025/12/20-18:36:43.935645 7f2436ffd6c0 Level-0 table #315: started
|
||||||
2025/09/24-15:08:26.356174 7f7cf9fff6c0 Level-0 table #258: 0 bytes OK
|
2025/12/20-18:36:43.935673 7f2436ffd6c0 Level-0 table #315: 0 bytes OK
|
||||||
2025/09/24-15:08:26.424036 7f7cf9fff6c0 Delete type=0 #256
|
2025/12/20-18:36:43.994623 7f2436ffd6c0 Delete type=0 #313
|
||||||
2025/09/24-15:08:26.424252 7f7cf9fff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:44.048051 7f2436ffd6c0 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-000316
Normal file
BIN
packs/maladies/MANIFEST-000316
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000196
|
MANIFEST-000253
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.173945 7f7cfb7fe6c0 Recovering log #194
|
2026/01/04-21:26:37.919630 7f93ebfff6c0 Recovering log #251
|
||||||
2025/09/24-15:09:29.183658 7f7cfb7fe6c0 Delete type=3 #192
|
2026/01/04-21:26:37.930006 7f93ebfff6c0 Delete type=3 #249
|
||||||
2025/09/24-15:09:29.183716 7f7cfb7fe6c0 Delete type=0 #194
|
2026/01/04-21:26:37.930066 7f93ebfff6c0 Delete type=0 #251
|
||||||
2025/09/24-15:11:47.412789 7f7cf9fff6c0 Level-0 table #199: started
|
2026/01/04-21:27:02.478265 7f93e9ffb6c0 Level-0 table #256: started
|
||||||
2025/09/24-15:11:47.412823 7f7cf9fff6c0 Level-0 table #199: 0 bytes OK
|
2026/01/04-21:27:02.478296 7f93e9ffb6c0 Level-0 table #256: 0 bytes OK
|
||||||
2025/09/24-15:11:47.419140 7f7cf9fff6c0 Delete type=0 #197
|
2026/01/04-21:27:02.485146 7f93e9ffb6c0 Delete type=0 #254
|
||||||
2025/09/24-15:11:47.419299 7f7cf9fff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.485444 7f93e9ffb6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.292184 7f7d00dfa6c0 Recovering log #190
|
2025/12/20-18:12:56.387036 7f2437fff6c0 Recovering log #247
|
||||||
2025/09/24-14:48:23.302049 7f7d00dfa6c0 Delete type=3 #188
|
2025/12/20-18:12:56.440877 7f2437fff6c0 Delete type=3 #245
|
||||||
2025/09/24-14:48:23.302138 7f7d00dfa6c0 Delete type=0 #190
|
2025/12/20-18:12:56.440965 7f2437fff6c0 Delete type=0 #247
|
||||||
2025/09/24-15:08:26.233213 7f7cf9fff6c0 Level-0 table #195: started
|
2025/12/20-18:36:43.994753 7f2436ffd6c0 Level-0 table #252: started
|
||||||
2025/09/24-15:08:26.233253 7f7cf9fff6c0 Level-0 table #195: 0 bytes OK
|
2025/12/20-18:36:43.994783 7f2436ffd6c0 Level-0 table #252: 0 bytes OK
|
||||||
2025/09/24-15:08:26.291256 7f7cf9fff6c0 Delete type=0 #193
|
2025/12/20-18:36:44.047877 7f2436ffd6c0 Delete type=0 #250
|
||||||
2025/09/24-15:08:26.424217 7f7cf9fff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:44.048061 7f2436ffd6c0 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-000253
Normal file
BIN
packs/scenes/MANIFEST-000253
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000260
|
MANIFEST-000317
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-15:09:29.160816 7f7cfaffd6c0 Recovering log #258
|
2026/01/04-21:26:37.904069 7f93eaffd6c0 Recovering log #315
|
||||||
2025/09/24-15:09:29.171382 7f7cfaffd6c0 Delete type=3 #256
|
2026/01/04-21:26:37.914574 7f93eaffd6c0 Delete type=3 #313
|
||||||
2025/09/24-15:09:29.171436 7f7cfaffd6c0 Delete type=0 #258
|
2026/01/04-21:26:37.914647 7f93eaffd6c0 Delete type=0 #315
|
||||||
2025/09/24-15:11:47.400600 7f7cf9fff6c0 Level-0 table #263: started
|
2026/01/04-21:27:02.465731 7f93e9ffb6c0 Level-0 table #320: started
|
||||||
2025/09/24-15:11:47.400625 7f7cf9fff6c0 Level-0 table #263: 0 bytes OK
|
2026/01/04-21:27:02.465755 7f93e9ffb6c0 Level-0 table #320: 0 bytes OK
|
||||||
2025/09/24-15:11:47.406556 7f7cf9fff6c0 Delete type=0 #261
|
2026/01/04-21:27:02.471938 7f93e9ffb6c0 Delete type=0 #318
|
||||||
2025/09/24-15:11:47.419275 7f7cf9fff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
2026/01/04-21:27:02.485413 7f93e9ffb6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2025/09/24-14:48:23.279296 7f7cfbfff6c0 Recovering log #254
|
2025/12/20-18:12:56.325650 7f244c9fe6c0 Recovering log #311
|
||||||
2025/09/24-14:48:23.289583 7f7cfbfff6c0 Delete type=3 #252
|
2025/12/20-18:12:56.379165 7f244c9fe6c0 Delete type=3 #309
|
||||||
2025/09/24-14:48:23.289682 7f7cfbfff6c0 Delete type=0 #254
|
2025/12/20-18:12:56.379237 7f244c9fe6c0 Delete type=0 #311
|
||||||
2025/09/24-15:08:26.291500 7f7cf9fff6c0 Level-0 table #259: started
|
2025/12/20-18:36:43.867925 7f2436ffd6c0 Level-0 table #316: started
|
||||||
2025/09/24-15:08:26.291565 7f7cf9fff6c0 Level-0 table #259: 0 bytes OK
|
2025/12/20-18:36:43.867945 7f2436ffd6c0 Level-0 table #316: 0 bytes OK
|
||||||
2025/09/24-15:08:26.355943 7f7cf9fff6c0 Delete type=0 #257
|
2025/12/20-18:36:43.935523 7f2436ffd6c0 Delete type=0 #314
|
||||||
2025/09/24-15:08:26.424235 7f7cf9fff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
|
2025/12/20-18:36:44.048037 7f2436ffd6c0 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-000317
Normal file
BIN
packs/simples/MANIFEST-000317
Normal file
Binary file not shown.
1299
postcss/tedeum.css
1299
postcss/tedeum.css
File diff suppressed because it is too large
Load Diff
1931
styles/tedeum.css
1931
styles/tedeum.css
File diff suppressed because it is too large
Load Diff
@@ -148,8 +148,8 @@
|
|||||||
],
|
],
|
||||||
"title": "Te Deum pour Un Massacre, le Jeu de Rôles (Officiel)",
|
"title": "Te Deum pour Un Massacre, le Jeu de Rôles (Officiel)",
|
||||||
"url": "https://www.uberwald.me/gitea/public/fvtt-te-deum",
|
"url": "https://www.uberwald.me/gitea/public/fvtt-te-deum",
|
||||||
"version": "13.0.1",
|
"version": "13.0.2",
|
||||||
"download": "https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/13.0.1/fvtt-te-deum-13.0.1.zip",
|
"download": "https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/13.0.1/fvtt-te-deum-13.0.2.zip",
|
||||||
"background": "systems/fvtt-te-deum/images/ui/tdeum_welcome_page_01.webp",
|
"background": "systems/fvtt-te-deum/images/ui/tdeum_welcome_page_01.webp",
|
||||||
"flags": {
|
"flags": {
|
||||||
"hotReload": {
|
"hotReload": {
|
||||||
|
|||||||
@@ -238,7 +238,11 @@
|
|||||||
</label>
|
</label>
|
||||||
<span> </span>
|
<span> </span>
|
||||||
<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>
|
||||||
|
{{#if comp.system.isBase}}
|
||||||
|
<span class="item-control"><i class="fa-solid fa-trash-slash"></i></span>
|
||||||
|
{{else}}
|
||||||
<a class="item-control item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
|
<a class="item-control item-delete" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||||
|
{{/if}}
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -1,99 +1,110 @@
|
|||||||
<div class="chat-message-header">
|
<div class="chat-message-header">
|
||||||
{{#if actorImg}}
|
{{#if actorImg}}
|
||||||
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
<h4 class="chat-actor-name">{{alias}}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<div class="chat-roll-details" style="margin-top: 0.3rem;">
|
||||||
|
{{#if img}}
|
||||||
|
<div style="text-align: center; margin-bottom: 0.3rem;">
|
||||||
|
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if img}}
|
<div class="chat-info-badge" style="margin-bottom: 0.4rem;">
|
||||||
<div>
|
<strong>{{alias}}</strong>
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
attaque
|
||||||
</div>
|
<strong>{{defenderName}}</strong>
|
||||||
{{/if}}
|
</div>
|
||||||
|
|
||||||
<div class="flexcol">
|
<ul style="margin: 0; padding-left: 0.5rem;">
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
<li><strong>{{alias}}</strong> attaque <strong>{{defenderName}}</strong></li>
|
|
||||||
|
|
||||||
{{#if arme}}
|
{{#if arme}}
|
||||||
<li><label class="chat-weapon-name">Dégats {{arme.name}} : {{degats}} ({{degatsFormula}})</label></li>
|
<li style="margin: 0.2rem 0;"><span class="chat-info-badge">Dégâts
|
||||||
|
{{arme.name}}
|
||||||
|
:
|
||||||
|
{{degats}}
|
||||||
|
({{degatsFormula}})</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if loc}}
|
{{#if loc}}
|
||||||
<li>Localisation : {{loc.label}}</li>
|
<li style="margin: 0.2rem 0;"><span
|
||||||
<li>Touché : {{touche}}</li>
|
class="chat-difficulty-badge"
|
||||||
|
>Localisation : {{loc.label}}</span></li>
|
||||||
|
<li style="margin: 0.2rem 0;">Touché : {{touche}}</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if gantelet}}
|
{{#if gantelet}}
|
||||||
<li>Poing avec gantelet: +1 dégat</li>
|
<li>Poing avec gantelet: +1 dégat</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if isChargeAPied}}
|
{{#if isChargeAPied}}
|
||||||
<li>Charge à pied (+Course)</li>
|
<li>Charge à pied (+Course)</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if isChargeACheval}}
|
{{#if isChargeACheval}}
|
||||||
<li>Charge à cheval (+Equitation)</li>
|
<li>Charge à cheval (+Equitation)</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if isReussiteCritique}}
|
{{#if isReussiteCritique}}
|
||||||
<li><strong class="chat-result-success">Réussite critique : La blessure a été augmentée d'un niveau</strong></li>
|
<li style="margin: 0.3rem 0;"><span class="chat-result-success">🎯
|
||||||
|
Réussite critique : La blessure a été augmentée d'un niveau</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if blessure}}
|
{{#if blessure}}
|
||||||
<li><strong>{{defenderName}} a subi une blessure!</strong></li>
|
<li style="margin: 0.3rem 0;"><span class="chat-warning-badge">⚔️
|
||||||
<li>Gravité : {{blessure.name}}</li>
|
{{defenderName}}
|
||||||
|
a subi une blessure!</span></li>
|
||||||
|
<li style="margin: 0.2rem 0;"><strong>Gravité :
|
||||||
|
{{blessure.name}}</strong></li>
|
||||||
|
|
||||||
|
{{#if (eq loc.categorie "tete")}}
|
||||||
|
{{#if (gt blessure.system.value 0)}}
|
||||||
|
<li style="margin: 0.3rem 0;"><span class="chat-result-failure">💥
|
||||||
|
{{defenderName}}
|
||||||
|
doit réussir un test d'Endurance de difficulté 7 ou être assommé</span></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if (eq loc.categorie "tete")}}
|
{{#if (eq loc.categorie "bras")}}
|
||||||
{{#if (gt blessure.system.value 0)}}
|
{{#if (gt blessure.system.value 2)}}
|
||||||
<li><strong class="chat-result-warning">{{defenderName}} doit réussir un test d'Endurance de difficulté 7 ou être
|
<li style="margin: 0.3rem 0;"><span class="chat-result-failure">💥
|
||||||
assommé</strong></li>
|
{{defenderName}}
|
||||||
{{/if}}
|
lâche l'objet tenu par son bras. Il doit faire un test d'endurance
|
||||||
{{/if}}
|
pour l'utiliser désormais.</span></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if (eq loc.categorie "bras")}}
|
{{#if (eq loc.categorie "jambe")}}
|
||||||
{{#if (gt blessure.system.value 2)}}
|
{{#if (gt blessure.system.value 2)}}
|
||||||
<li><strong class="chat-result-warning">{{defenderName}} lache l'objet tenu par son bras. Il doit faire un test
|
<li style="margin: 0.3rem 0;"><span class="chat-result-failure">💥
|
||||||
d'endurance
|
{{defenderName}}
|
||||||
pour l'utiliser désormais.</strong></li>
|
tombe au sol. Pour se relever et marcher, il doit réussir un test
|
||||||
{{/if}}
|
d'Endurance à chaque tour.</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if (eq loc.categorie "jambe")}}
|
{{#if (eq loc.categorie "main")}}
|
||||||
{{#if (gt blessure.system.value 2)}}
|
{{#if (gt blessure.system.value 1)}}
|
||||||
<li><strong class="chat-result-warning">{{defenderName}} tombe au sol. Pour se relever et marcher, il doit réussir
|
<li style="margin: 0.3rem 0;"><span class="chat-result-failure">💥
|
||||||
un test
|
{{defenderName}}
|
||||||
d'Endurance à chaque tour.
|
lâche l'objet tenu par sa main. Il doit faire un test d'endurance
|
||||||
</strong></li>
|
pour l'utiliser désormais.</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if (eq loc.categorie "main")}}
|
|
||||||
{{#if (gt blessure.system.value 1)}}
|
|
||||||
<li><strong class="chat-result-warning">{{defenderName}} 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">{{defenderName}} 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 "pied")}}
|
||||||
|
{{#if (gt blessure.system.value 1)}}
|
||||||
|
<li style="margin: 0.3rem 0;"><span class="chat-result-failure">💥
|
||||||
|
{{defenderName}}
|
||||||
|
tombe au sol. Pour se relever et marcher, il doit réussir un test
|
||||||
|
d'Endurance à chaque tour.</span></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<li>Aucune blessure subie par {{defenderName}}</li>
|
<li style="margin: 0.3rem 0;"><span class="chat-result-success">✓ Aucune
|
||||||
|
blessure subie par
|
||||||
|
{{defenderName}}</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -1,38 +1,44 @@
|
|||||||
<div class="chat-message-header">
|
<div class="chat-message-header">
|
||||||
{{#if actorImg}}
|
{{#if actorImg}}
|
||||||
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
<h4 class="chat-actor-name">{{alias}}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<div class="chat-roll-details" style="margin-top: 0.3rem;">
|
||||||
|
{{#if img}}
|
||||||
|
<div style="text-align: center; margin-bottom: 0.3rem;">
|
||||||
|
<img class="chat-icon" src="{{arme.img}}" alt="{{name}}" />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if img}}
|
<ul style="margin: 0; padding-left: 0.5rem;">
|
||||||
<div>
|
<li style="margin: 0.2rem 0;"><span class="chat-info-badge">Dégâts de
|
||||||
<img class="chat-icon" src="{{arme.img}}" alt="{{name}}" />
|
{{arme.name}}:
|
||||||
</div>
|
{{formula}}</span></li>
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
<li>Dégats de {{arme.name}}: {{formula}} </li>
|
|
||||||
{{#if gantelet}}
|
{{#if gantelet}}
|
||||||
<li>Poing avec gantelet: +1 dégat</li>
|
<li style="margin: 0.2rem 0;"><span class="chat-difficulty-badge">🥊 Poing
|
||||||
|
avec gantelet: +1 dégât</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if isChargeAPied}}
|
{{#if isChargeAPied}}
|
||||||
<li>Charge à pied (+Course)</li>
|
<li style="margin: 0.2rem 0;"><span class="chat-difficulty-badge">🏃
|
||||||
|
Charge à pied (+Course)</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if isChargeACheval}}
|
{{#if isChargeACheval}}
|
||||||
<li>Charge à cheval (+Equitation)</li>
|
<li style="margin: 0.2rem 0;"><span class="chat-difficulty-badge">🐴
|
||||||
|
Charge à cheval (+Équitation)</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<li>Dégats infligés : {{degats}}</li>
|
<li style="margin: 0.3rem 0;"><span class="chat-warning-badge">⚔️ Dégâts
|
||||||
|
infligés :
|
||||||
|
{{degats}}</span></li>
|
||||||
{{#if loc}}
|
{{#if loc}}
|
||||||
<li>Localisation : {{loc.label}}</li>
|
<li style="margin: 0.2rem 0;"><span class="chat-difficulty-badge">🎯
|
||||||
|
Localisation :
|
||||||
|
{{loc.label}}</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if isReussiteCritique}}
|
{{#if isReussiteCritique}}
|
||||||
<li><strong class="chat-result-success">Réussite critique : La blessure sera augmentée d'un niveau</strong></li>
|
<li style="margin: 0.3rem 0;"><span class="chat-result-success">🎯
|
||||||
|
Réussite critique : La blessure sera augmentée d'un niveau</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -5,129 +5,134 @@
|
|||||||
<h4 class="chat-actor-name">{{alias}}</h4>
|
<h4 class="chat-actor-name">{{alias}}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
{{#if img}}
|
{{#if img}}
|
||||||
<div>
|
<div style="text-align: center; padding: 0.25rem;">
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
<img class="chat-icon" src="{{img}}" alt="{{name}}" style="border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.15);" />
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="chat-roll-details">
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul>
|
<ul>
|
||||||
{{#if carac}}
|
{{#if carac}}
|
||||||
<li>{{carac.name}}: {{carac.qualite}} ({{carac.dice}}) </li>
|
<li><strong>{{carac.name}}:</strong> {{carac.qualite}} <span class="chat-dice-formula">{{carac.dice}}</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if competence}}
|
{{#if competence}}
|
||||||
<li>{{competence.name}}: {{compScore}} </li>
|
<li><strong>{{competence.name}}:</strong> {{compScore}}</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if bonusMalus}}
|
{{#if bonusMalus}}
|
||||||
<li>Bonus/Malus: {{bonusMalus}} </li>
|
<li class="chat-info-badge"><strong>Bonus/Malus:</strong> {{bonusMalus}}</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if santeModifier}}
|
{{#if santeModifier}}
|
||||||
<li>Santé: {{santeModifier}} niveaux</li>
|
<li class="chat-warning-badge"><strong>Santé:</strong> {{santeModifier}} niveaux</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if enableProvidence}}
|
{{#if enableProvidence}}
|
||||||
<li>Un niveau de Providence a été utilisé !</li>
|
<li class="chat-info-badge" style="background: rgba(255, 215, 0, 0.2); border-left-color: goldenrod;">⭐ Un niveau de Providence a été utilisé !</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if hasActions}}
|
{{#if hasActions}}
|
||||||
<li>Actions restantes: {{remainingActions}} (MG:{{remainingActionsMainGauche}})</li>
|
<li class="chat-info-badge" data-tooltip="Nombre d'actions restantes, avec MG = Main Gauche">
|
||||||
|
<strong>Actions restantes:</strong> {{remainingActions}} (MG:{{remainingActionsMainGauche}})
|
||||||
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if arme}}
|
{{#if arme}}
|
||||||
{{#if isViser}}
|
{{#if isViser}}
|
||||||
<li>Bonus de visée (+1 niveau)</li>
|
<li class="chat-info-badge">✓ 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 class="chat-warning-badge">⚠ Malus de cible petite ou en mouvement (-1 niveau)</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if attaqueCiblee}}
|
{{#if attaqueCiblee}}
|
||||||
<li>Attaque ciblée, -1 niveau</li>
|
<li class="chat-warning-badge">⚠ Attaque ciblée, -1 niveau</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if allongeMalus}}
|
{{#if allongeMalus}}
|
||||||
<li>Malus d'allonge: {{allongeMalus}} niveau</li>
|
<li class="chat-warning-badge">⚠ Malus d'allonge: {{allongeMalus}} niveau</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<li>Dés: {{diceFormula}} </li>
|
<li><strong>Formule:</strong> <span class="chat-dice-formula">{{diceFormula}}</span></li>
|
||||||
{{#if isTir}}
|
{{#if isTir}}
|
||||||
<li>Portée: {{porteeLabel}} ( {{difficulty}} )</li>
|
<li><strong>Portée:</strong> {{porteeLabel}} <span class="chat-difficulty-badge">Difficulté: {{difficulty}}</span></li>
|
||||||
{{else}}
|
{{else}}
|
||||||
<li>Difficulté: {{difficulty}} </li>
|
<li><strong>Difficulté:</strong> <span class="chat-difficulty-badge">{{difficulty}}</span></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="chat-roll-result-section">
|
||||||
<ul class="chat-result-column">
|
<div class="chat-total-result">Résultat: {{total}}</div>
|
||||||
<li><strong>Résultat: {{total}}</strong> </li>
|
|
||||||
|
<div style="text-align: center;">
|
||||||
{{#if isSuccess}}
|
{{#if isSuccess}}
|
||||||
<li><strong class="chat-result-success">Succès !</strong> </li>
|
<div class="chat-result-success">Succès !</div>
|
||||||
{{#if isReussiteCritique}}
|
{{#if isReussiteCritique}}
|
||||||
<li data-tooltip="Si le jet n'est pas opposé, cliquez sur le bouton pour gagner 1 XP gagné en {{carac.name}}">
|
<div class="chat-result-success" data-tooltip="Si le jet n'est pas opposé, cliquez sur le bouton pour gagner 1 XP en {{carac.name}}" style="margin-top: 0.3rem;">
|
||||||
<strong class="chat-result-success">Réussite critique (XP potentiel) !</strong>
|
🌟 Réussite critique (XP potentiel) !
|
||||||
</li>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if arme}}
|
{{#if arme}}
|
||||||
<li><strong class="">Attaque réussie ! Faites une opposition avec la défense de la cible ou appliquez directement
|
<div class="chat-info-badge" style="display: block; margin-top: 0.4rem; padding: 0.3rem; font-size: 0.9em;">
|
||||||
les dégats.</strong> </li>
|
⚔️ <strong>Attaque réussie !</strong> Faites une opposition avec la défense de la cible ou appliquez directement les dégâts.
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<li><strong class="chat-result-failure">Echec !</strong> </li>
|
<div class="chat-result-failure">Échec !</div>
|
||||||
|
{{#if critiqueTotal}}
|
||||||
|
<div class="chat-negative-dice" style="margin-top: 0.3rem;">
|
||||||
|
Dé négatif: {{critiqueTotal}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
{{#if isEchecCritique}}
|
{{#if isEchecCritique}}
|
||||||
<li data-tooltip="Si le jet n'est pas opposé, cliquez sur le bouton pour gagner 1 XP gagné en {{carac.name}}">
|
<div class="chat-result-failure" data-tooltip="Si le jet n'est pas opposé, cliquez sur le bouton pour gagner 1 XP en {{carac.name}}" style="margin-top: 0.3rem;">
|
||||||
<strong class="chat-result-failure">Echec critique (XP potentiel) !</strong>
|
💀 Échec critique (XP potentiel) !
|
||||||
</li>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if nbEsquives}}
|
{{#if nbEsquives}}
|
||||||
<li>Rappel : vous devez réussir {{nbEsquives}} tests d'esquive pour arriver au contact (règle d'allonge des armes).
|
<div class="chat-warning-badge" style="display: block; margin-top: 0.4rem; padding: 0.3rem;">
|
||||||
</li>
|
⚠️ Rappel : vous devez réussir {{nbEsquives}} tests d'esquive pour arriver au contact (règle d'allonge des armes).
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if loc}}
|
{{#if loc}}
|
||||||
<li><strong>Attaque réussie !!</strong> </li>
|
<div class="chat-info-badge" style="display: block; margin-top: 0.4rem; padding: 0.3rem; background: rgba(255, 215, 0, 0.15); border-left-color: goldenrod;">
|
||||||
<li>Localisation: {{loc.label}} </li>
|
🎯 <strong>Localisation:</strong> {{loc.label}}
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if degats}}
|
{{#if degats}}
|
||||||
<li>Dégats: {{degats}} {{#if isReussiteCritique}}(Augmentez la gravité de la blessure d'un niveau){{/if}}</li>
|
<div class="chat-warning-badge" style="display: block; margin-top: 0.4rem; padding: 0.3rem; font-size: 0.95em; background: rgba(255, 100, 100, 0.15); border-left-color: #a82020;">
|
||||||
|
⚔️ <strong>Dégâts:</strong> {{degats}} {{#if isReussiteCritique}}<em>(Augmentez la gravité de la blessure d'un niveau)</em>{{/if}}
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/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 class="chat-actions-bar">
|
||||||
|
{{#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égâts directement sans opposition"
|
||||||
|
src="systems/fvtt-te-deum/images/icons/appliquer-degats.webp">
|
||||||
|
</a>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -1,112 +1,176 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="skill-roll-dialog">
|
||||||
<header class="roll-dialog-header">
|
<header class="roll-dialog-header">
|
||||||
{{#if img}}
|
{{#if img}}
|
||||||
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
|
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
|
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Caracteristique </span>
|
<span class="roll-dialog-label">⚡ Caractéristique </span>
|
||||||
<span class="roll-dialog-label">{{carac.name}} : {{carac.qualite}} ({{carac.dice}})</span>
|
<span class="roll-dialog-label">{{carac.name}}
|
||||||
|
:
|
||||||
|
{{carac.qualite}}
|
||||||
|
({{carac.dice}})</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if competence}}
|
{{#if competence}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Compétence </span>
|
<span class="roll-dialog-label">🎯 Compétence </span>
|
||||||
<span class="roll-dialog-label">{{competence.name}} ({{compScore}})</span>
|
<span class="roll-dialog-label">{{competence.name}}
|
||||||
</div>
|
({{compScore}})</span>
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if santeModifier}}
|
{{#if santeModifier}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Malus Blessures </span>
|
<span class="roll-dialog-label">💔 Malus Blessures </span>
|
||||||
<span class="roll-dialog-label">{{santeModifier}} niveaux</span>
|
<span class="roll-dialog-label">{{santeModifier}} niveaux</span>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Bonus/Malus : </span>
|
<span class="roll-dialog-label">➕➖ Bonus/Malus : </span>
|
||||||
<select class="" type="text" id="roll-bonus-malus" value="{{bonusMalus}}" data-dtype="Number">
|
<select
|
||||||
{{selectOptions config.bonusMalus selected=bonusMalus labelAttr="label" valueAttr="value" nameAttr="value"}}
|
class=""
|
||||||
|
type="text"
|
||||||
|
id="roll-bonus-malus"
|
||||||
|
value="{{bonusMalus}}"
|
||||||
|
data-dtype="Number"
|
||||||
|
>
|
||||||
|
{{selectOptions
|
||||||
|
config.bonusMalus
|
||||||
|
selected=bonusMalus
|
||||||
|
labelAttr="label"
|
||||||
|
valueAttr="value"
|
||||||
|
nameAttr="value"
|
||||||
|
}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if providence.value}}
|
{{#if providence.value}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Utiliser la Providence ({{providence.dice}})</span>
|
<span class="roll-dialog-label">✨ Utiliser la Providence ({{providence.dice}})</span>
|
||||||
<input type="checkbox" id="roll-enable-providence" {{checked enableProvidence}} />
|
<input
|
||||||
</div>
|
type="checkbox"
|
||||||
|
id="roll-enable-providence"
|
||||||
|
{{checked enableProvidence}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
{{/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
|
||||||
{{#select porteeTir}}
|
class=""
|
||||||
{{#each config.ARME_PORTEES as |portee key|}}
|
type="text"
|
||||||
<option value="{{key}}">{{portee.label}}</option>
|
id="roll-portee-tir"
|
||||||
{{/each}}
|
value="{{porteeTir}}"
|
||||||
{{/select}}
|
data-dtype="String"
|
||||||
</select>
|
>
|
||||||
</div>
|
{{#select porteeTir}}
|
||||||
<div class="flexrow">
|
{{#each config.ARME_PORTEES as |portee key|}}
|
||||||
<span class="roll-dialog-label">Viser : </span>
|
<option value="{{key}}">{{portee.label}}</option>
|
||||||
<input type="checkbox" id="roll-tir-viser" {{checked isViser}} />
|
{{/each}}
|
||||||
</div>
|
{{/select}}
|
||||||
<div class="flexrow">
|
</select>
|
||||||
<span class="roll-dialog-label">Cible petite/en mouvement : </span>
|
</div>
|
||||||
<input type="checkbox" id="roll-tir-mouvement" {{checked isMouvement}} />
|
<div class="flexrow">
|
||||||
</div>
|
<span class="roll-dialog-label">👁️ Viser : </span>
|
||||||
|
<input type="checkbox" id="roll-tir-viser" {{checked isViser}} />
|
||||||
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">🏃 Cible petite/en mouvement : </span>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
id="roll-tir-mouvement"
|
||||||
|
{{checked isMouvement}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-label">⚔️ Allonge
|
||||||
|
{{allongeLabel}}
|
||||||
|
: Indiquez l'allonge de votre adversaire ci-dessous.</span>
|
||||||
|
</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}}
|
||||||
|
</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">✋ Main gauche ?</span>
|
||||||
|
<input type="checkbox" id="roll-main-gauche" {{checked isMainGauche}} />
|
||||||
|
</div>
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Allonge {{allongeLabel}} : Indiquez l'allonge de votre adversaire
|
<span class="roll-dialog-label">📊 Difficulté : </span>
|
||||||
ci-dessous.</span>
|
<select
|
||||||
</div>
|
class=""
|
||||||
<div class="flexrow">
|
type="text"
|
||||||
<span class="roll-dialog-label"
|
id="roll-difficulty"
|
||||||
data-tooltip="Modification d'allonge selon votre arme et celle de votre adversaire">Allonge arme adversaire :
|
value="{{difficulty}}"
|
||||||
</span>
|
data-dtype="String"
|
||||||
<select class="" type="text" id="roll-allonge" value="{{allongeId}}" data-dtype="String">
|
>
|
||||||
{{#select allongeId}}
|
{{selectOptions
|
||||||
{{#each allonges as |allonge key|}}
|
config.difficulte
|
||||||
<option value="{{key}}">{{allonge.label}}</option>
|
selected=difficulty
|
||||||
{{/each}}
|
valueAttr="key"
|
||||||
{{/select}}
|
labelAttr="label"
|
||||||
</select>
|
}}
|
||||||
</div>
|
</select>
|
||||||
<div class="flexrow">
|
</div>
|
||||||
<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">Main gauche ?</span>
|
|
||||||
<input type="checkbox" id="roll-main-gauche" {{checked isMainGauche}} />
|
|
||||||
</div>
|
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="flexrow">
|
|
||||||
<span class="roll-dialog-label">Difficulté : </span>
|
|
||||||
<select class="" type="text" id="roll-difficulty" value="{{difficulty}}" data-dtype="String">
|
|
||||||
{{selectOptions config.difficulte selected=difficulty valueAttr="key" labelAttr="label"}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -38,22 +38,22 @@
|
|||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<h3>Spécificités</h3>
|
<h3>⚔️ Spécificités</h3>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Dégâts</label>
|
<label class="item-name-label-long">💥 Dégâts</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.degats" value="{{system.degats}}" data-dtype="String" />
|
name="system.degats" value="{{system.degats}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Valeur d'echec critique (ie 1 par défaut)</label>
|
<label class="item-name-label-long">⚠️ Valeur d'échec critique (ie 1 par défaut)</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.valeurEchecCritique" value="{{system.valeurEchecCritique}}" data-dtype="Numeric" />
|
name="system.valeurEchecCritique" value="{{system.valeurEchecCritique}}" data-dtype="Numeric" />
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
{{#if (eq system.typeArme "melee")}}
|
{{#if (eq system.typeArme "melee")}}
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Allonge</label>
|
<label class="item-name-label-long">🗡️ Allonge</label>
|
||||||
<select name="system.allonge">
|
<select name="system.allonge">
|
||||||
{{selectOptions config.armeAllonges selected=system.allonge labelAttr="label"}}
|
{{selectOptions config.armeAllonges selected=system.allonge labelAttr="label"}}
|
||||||
</select>
|
</select>
|
||||||
@@ -62,12 +62,12 @@
|
|||||||
|
|
||||||
{{#if (eq system.typeArme "tir")}}
|
{{#if (eq system.typeArme "tir")}}
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Temps de recharge</label>
|
<label class="item-name-label-long">⏱️ Temps de recharge</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.tempsRecharge" value="{{system.tempsRecharge}}" data-dtype="Number" />
|
name="system.tempsRecharge" value="{{system.tempsRecharge}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Compétence de recharge</label>
|
<label class="item-name-label-long">🔄 Compétence de recharge</label>
|
||||||
<select name="system.competenceRecharge">
|
<select name="system.competenceRecharge">
|
||||||
{{selectOptions config.competencesRecharge selected=system.competenceRecharge labelAttr="label"}}
|
{{selectOptions config.competencesRecharge selected=system.competenceRecharge labelAttr="label"}}
|
||||||
</select>
|
</select>
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
||||||
{{#if (eq system.typeArme "tir")}}
|
{{#if (eq system.typeArme "tir")}}
|
||||||
<h3>Portées</h3>
|
<h3>🎯 Portées</h3>
|
||||||
{{#each system.portees as |portee porteeId|}}
|
{{#each system.portees as |portee porteeId|}}
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">{{getConfigLabel "ARME_PORTEES" porteeId}}</label>
|
<label class="item-name-label-long">{{getConfigLabel "ARME_PORTEES" porteeId}}</label>
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<h3>Degats sur armures</h3>
|
<h3>🛡️ Degats sur armures</h3>
|
||||||
{{#each system.degatsArmure as |degat degtId|}}
|
{{#each system.degatsArmure as |degat degtId|}}
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">{{getConfigLabel "degatsArmure" degtId}}</label>
|
<label class="item-name-label-long">{{getConfigLabel "degatsArmure" degtId}}</label>
|
||||||
@@ -109,21 +109,21 @@
|
|||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
||||||
<h3>Autres</h3>
|
<h3>📝 Autres</h3>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Equipé?</label>
|
<label class="item-name-label-long">✅ Equipé?</label>
|
||||||
<input type="checkbox" name="system.equipe" {{checked system.equipe}} />
|
<input type="checkbox" name="system.equipe" {{checked system.equipe}} />
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Bonus d'Initiative</label>
|
<label class="item-name-label-long">⚡ Bonus d'Initiative</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.initiativeBonus" value="{{system.initiativeBonus}}" data-dtype="Number" />
|
name="system.initiativeBonus" value="{{system.initiativeBonus}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Prix</label>
|
<label class="item-name-label-long">💰 Prix</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.prix" value="{{system.prix}}" data-dtype="Number" />
|
name="system.prix" value="{{system.prix}}" data-dtype="Number" />
|
||||||
<select name="system.monnaie">
|
<select name="system.monnaie">
|
||||||
|
|||||||
@@ -33,13 +33,13 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Protection</label>
|
<label class="item-name-label-long">🛡️ Protection</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.protection" value="{{system.protection}}" data-dtype="Number" />
|
name="system.protection" value="{{system.protection}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Cout en pièces d'Armure Lourde</label>
|
<label class="item-name-label-long">⚖️ Cout en pièces d'Armure Lourde</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.coutArmureLourde" value="{{system.coutArmureLourde}}" data-dtype="Number" />
|
name="system.coutArmureLourde" value="{{system.coutArmureLourde}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
@@ -57,12 +57,12 @@
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Equipé?</label>
|
<label class="item-name-label-long">✅ Equipé?</label>
|
||||||
<input type="checkbox" name="system.equipe" {{checked system.equipe}} />
|
<input type="checkbox" name="system.equipe" {{checked system.equipe}} />
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Prix</label>
|
<label class="item-name-label-long">💰 Prix</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.prix" value="{{system.prix}}" data-dtype="Number" />
|
name="system.prix" value="{{system.prix}}" data-dtype="Number" />
|
||||||
<select name="system.monnaie">
|
<select name="system.monnaie">
|
||||||
|
|||||||
@@ -18,13 +18,13 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Type de Blessure</label>
|
<label class="item-name-label-long">🩸 Type de Blessure</label>
|
||||||
<select name="system.typeBlessure">
|
<select name="system.typeBlessure">
|
||||||
{{selectOptions config.blessures selected=system.typeBlessure valueAttr="key" nameAttr="key" labelAttr="label"}}
|
{{selectOptions config.blessures selected=system.typeBlessure valueAttr="key" nameAttr="key" labelAttr="label"}}
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Localisation</label>
|
<label class="item-name-label-long">🎯 Localisation</label>
|
||||||
<select name="system.localisation">
|
<select name="system.localisation">
|
||||||
{{selectOptions config.LOCALISATION selected=system.localisation valueAttr="id" nameAttr="id" labelAttr="label"}}
|
{{selectOptions config.LOCALISATION selected=system.localisation valueAttr="id" nameAttr="id" labelAttr="label"}}
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -19,19 +19,19 @@
|
|||||||
<div class="tab" data-group="primary">
|
<div class="tab" data-group="primary">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Caractéristique</label>
|
<label class="item-name-label-long">⚡ Caractéristique</label>
|
||||||
<select name="system.caracteristique">
|
<select name="system.caracteristique">
|
||||||
{{selectOptions config.caracteristiques selected=system.caracteristique labelAttr="label" blank=""}}
|
{{selectOptions config.caracteristiques selected=system.caracteristique labelAttr="label" blank=""}}
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Compétence de base</label>
|
<label class="item-name-label-long">🎯 Compétence de base</label>
|
||||||
<input type="checkbox" name="system.isBase" {{checked system.isBase}} />
|
<input type="checkbox" name="system.isBase" {{checked system.isBase}} />
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Score</label>
|
<label class="item-name-label-long">📊 Score</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.score" value="{{system.score}}" data-dtype="Number" {{#if system.isBase}}disabled{{/if}}/>
|
name="system.score" value="{{system.score}}" data-dtype="Number" {{#if system.isBase}}disabled{{/if}}/>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Prix</label>
|
<label class="item-name-label-long">💰 Prix</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short"
|
<input type="text" class="padd-right numeric-input item-field-label-short"
|
||||||
name="system.prix" value="{{system.prix}}" data-dtype="Number" />
|
name="system.prix" value="{{system.prix}}" data-dtype="Number" />
|
||||||
<select name="system.monnaie">
|
<select name="system.monnaie">
|
||||||
|
|||||||
@@ -25,25 +25,25 @@
|
|||||||
|
|
||||||
<div class="tab details" data-group="primary" data-tab="details">
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
|
||||||
<h4 class="item-name-label-long">Vertus médicinales</h4>
|
<h4 class="item-name-label-long">🌿 Vertus médicinales</h4>
|
||||||
<textarea name="system.vertus" rows="6" data-dtype="String">
|
<textarea name="system.vertus" rows="6" data-dtype="String">
|
||||||
{{{system.vertus}}}
|
{{{system.vertus}}}
|
||||||
</textarea>
|
</textarea>
|
||||||
|
|
||||||
<h4 class="item-name-label-long">Toxicité</h4>
|
<h4 class="item-name-label-long">☠️ Toxicité</h4>
|
||||||
<textarea name="system.toxicite" rows="6" data-dtype="String">
|
<textarea name="system.toxicite" rows="6" data-dtype="String">
|
||||||
{{{system.toxicite}}}
|
{{{system.toxicite}}}
|
||||||
</textarea>
|
</textarea>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Difficulté au test d'Endurance</label>
|
<label class="item-name-label-long">💪 Difficulté au test d'Endurance</label>
|
||||||
<select class="" type="text" name="system.difficulteEndurance" data-dtype="String">
|
<select class="" type="text" name="system.difficulteEndurance" data-dtype="String">
|
||||||
{{selectOptions config.difficulte selected=system.difficulteEndurance abelAttr="label"}}
|
{{selectOptions config.difficulte selected=system.difficulteEndurance abelAttr="label"}}
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-name-label-long">Virulence</label>
|
<label class="item-name-label-long">🔥 Virulence</label>
|
||||||
<select name="system.virulence">
|
<select name="system.virulence">
|
||||||
{{selectOptions config.virulencePoison selected=system.virulence labelAttr="label"}}
|
{{selectOptions config.virulencePoison selected=system.virulence labelAttr="label"}}
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
26
welcome-message-tedeum.html
Normal file
26
welcome-message-tedeum.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<h3 class="welcome-message-h3">Bonjour à tous !</h3>
|
||||||
|
|
||||||
|
<div class="message-chat-center">
|
||||||
|
Open Sesame Game a mis en place un nouveau Discord pour ceux ou celles qui
|
||||||
|
souhaiteraient participer plus activement à la communauté des jeux d'Open
|
||||||
|
Sesame Games, avec un espace dédié à Te Deum ! <br />
|
||||||
|
Nouveaux joueurs comme vétérans sont les bienvenus, n'hésitez pas à passer
|
||||||
|
pour papoter, profiter de nos ressources, ou suivre les nouvelles d'OSG plus
|
||||||
|
directement. Cliquez ici :<br />
|
||||||
|
<a href="https://discord.gg/dUPhNfJdaD">https://discord.gg/dUPhNfJdaD</a
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="message-chat-center">
|
||||||
|
Ce système vous est proposé par Open Sesame Games.<br />
|
||||||
|
Vous trouverez de l'aide dans
|
||||||
|
@UUID[Compendium.fvtt-te-deum.aides.JournalEntry.uNwJgi4kXBCiZmAH]{Aide pour
|
||||||
|
Te Deum}<br />
|
||||||
|
ainsi que sur le Discord de Foundry FR :
|
||||||
|
<a href="https://discord.gg/pPSDNJk">https://discord.gg/pPSDNJk</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
Merci pour votre attention et à très bientôt pour la suite ! L'équipe Open
|
||||||
|
Sesame Games
|
||||||
|
</div>
|
||||||
Reference in New Issue
Block a user