9 Commits

Author SHA1 Message Date
3693d68c24 Correction sur les compétences de base
All checks were successful
Release Creation / build (release) Successful in 1m0s
2025-06-04 15:29:32 +02:00
16ccd2f3e1 Foundry v13 migration 2025-05-09 10:28:22 +02:00
631eb280ca Foundry v13 migration
All checks were successful
Release Creation / build (release) Successful in 55s
2025-05-09 10:26:29 +02:00
88ca98945f Fix #3 2025-04-20 09:25:48 +02:00
edfb2105d3 Various enhancements + fixes
All checks were successful
Release Creation / build (release) Successful in 56s
2025-04-12 00:18:45 +02:00
84cc59c57d Fix and enhancements
All checks were successful
Release Creation / build (release) Successful in 2m23s
2025-04-05 23:15:46 +02:00
e9c0fbd818 Fix URL scheme
All checks were successful
Release Creation / build (release) Successful in 1m30s
2025-03-19 13:55:30 +01:00
aaabb7ed75 Correction sur XP, echec critique et tir réussi
All checks were successful
Release Creation / build (release) Successful in 53s
2025-03-18 20:38:30 +01:00
fee7a3a9fb Gestion opposition en combat melee 2025-03-11 20:16:26 +01:00
90 changed files with 438 additions and 311 deletions

View File

@ -27,7 +27,7 @@ jobs:
env: env:
version: ${{steps.get_version.outputs.version-without-v}} version: ${{steps.get_version.outputs.version-without-v}}
url: https://www.uberwald.me/gitea/${{gitea.repository}} url: https://www.uberwald.me/gitea/${{gitea.repository}}
manifest: https://www.uberwald.me/gitea/public/${{gitea.repository}}/releases/download/latest/system.json manifest: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/latest/system.json
download: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-te-deum-${{github.event.release.tag_name}}.zip download: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-te-deum-${{github.event.release.tag_name}}.zip
# Create a zip file with all files required by the module to add to the release # Create a zip file with all files required by the module to add to the release

View File

@ -1,3 +1,21 @@
# 13.0.0
- Support de Foundry v13
# 12.0.23
- Correction sur les jets réussie en tir
- Correction sur le dés négatif pour les échecs critiques
- Correction sur l'XP et édition de l'XP en mode MJ
# 12.0.22
- Correction pour les armes d'hast
- Correction sur la zone libre d'équipement
- Bouton + pour créer un équipement à nouveau opérationnel
- Modification de la gestion des jets en combat, avec gestion opposition ou degats immédiats
- Gestion du genre dans la création de personnage
# 12.0.21 # 12.0.21
- Creation de PNJ OK - Creation de PNJ OK

View File

@ -6,7 +6,7 @@
import { TeDeumUtility } from "../common/tedeum-utility.js"; import { TeDeumUtility } from "../common/tedeum-utility.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
export class TeDeumActorPJSheet extends ActorSheet { export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
@ -42,6 +42,7 @@ export class TeDeumActorPJSheet extends ActorSheet {
providence: this.actor.prepareProvidence(), providence: this.actor.prepareProvidence(),
arbreCompetences: this.actor.prepareArbreCompetences(), arbreCompetences: this.actor.prepareArbreCompetences(),
equipements: this.actor.getEquipements(), equipements: this.actor.getEquipements(),
simples: this.actor.getSimples(),
armures: this.actor.getArmures(), armures: this.actor.getArmures(),
graces: this.actor.getGraces(), graces: this.actor.getGraces(),
blessures: this.actor.getBlessures(), blessures: this.actor.getBlessures(),
@ -55,10 +56,10 @@ export class TeDeumActorPJSheet extends ActorSheet {
nbArmuresLourdes: this.actor.getNbArmuresLourdesActuel(), nbArmuresLourdes: this.actor.getNbArmuresLourdesActuel(),
santeModifier: this.actor.getSanteModifier(), santeModifier: this.actor.getSanteModifier(),
educations: this.actor.getEducations(), educations: this.actor.getEducations(),
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }), description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
equipmentfree: await TextEditor.enrichHTML(this.object.system.equipmentfree, { async: true }), equipmentfree: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.equipmentfree, { async: true }),
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }), notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }),
histoire: await TextEditor.enrichHTML(this.object.system.histoire, { async: true }), histoire: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.histoire, { async: true }),
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
editScore: this.options.editScore, editScore: this.options.editScore,
@ -97,7 +98,12 @@ export class TeDeumActorPJSheet extends ActorSheet {
}) })
html.find('.item-add').click(ev => { html.find('.item-add').click(ev => {
let dataType = $(ev.currentTarget).data("type") let dataType = $(ev.currentTarget).data("type")
this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true }) this.actor.createEmbeddedDocuments('Item', [{ name: "Nouveau " + dataType, type: dataType }], { renderSheet: true })
})
html.find('.competence-add').click(ev => {
let dataType = $(ev.currentTarget).data("type")
let caracKey = $(ev.currentTarget).data("carac-key")
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 => {

View File

@ -127,6 +127,8 @@ export class TeDeumActor extends Actor {
if (updates.length > 0) { if (updates.length > 0) {
this.updateEmbeddedDocuments('Item', updates) this.updateEmbeddedDocuments('Item', updates)
} }
super._onUpdate(changed, options, userId);
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -198,6 +200,11 @@ export class TeDeumActor extends Actor {
TeDeumUtility.sortArrayObjectsByName(comp) TeDeumUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
getSimples() {
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'simple') || [])
TeDeumUtility.sortArrayObjectsByName(comp)
return comp;
}
getArmures() { getArmures() {
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'armure') || []) let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'armure') || [])
TeDeumUtility.sortArrayObjectsByName(comp) TeDeumUtility.sortArrayObjectsByName(comp)
@ -303,7 +310,11 @@ export class TeDeumActor extends Actor {
c.key = key c.key = key
c.name = game.system.tedeum.config.caracteristiques[key].label c.name = game.system.tedeum.config.caracteristiques[key].label
c.generalqualite = game.system.tedeum.config.descriptionValeur[c.value].qualite c.generalqualite = game.system.tedeum.config.descriptionValeur[c.value].qualite
c.qualite = game.system.tedeum.config.descriptionValeur[c.value][key] if (this.system.genre.toLowerCase() == "homme") {
c.qualite = game.system.tedeum.config.descriptionValeur[c.value][key]
} else {
c.qualite = game.system.tedeum.config.descriptionValeurFemme[c.value][key]
}
c.dice = game.system.tedeum.config.descriptionValeur[c.value].dice c.dice = game.system.tedeum.config.descriptionValeur[c.value].dice
c.negativeDice = game.system.tedeum.config.descriptionValeur[c.value].negativeDice c.negativeDice = game.system.tedeum.config.descriptionValeur[c.value].negativeDice
} }
@ -322,7 +333,11 @@ export class TeDeumActor extends Actor {
prepareProvidence() { prepareProvidence() {
let providence = foundry.utils.deepClone(this.system.providence) let providence = foundry.utils.deepClone(this.system.providence)
providence.name = "Providence" providence.name = "Providence"
providence.qualite = game.system.tedeum.config.providence[providence.value].labelM if (this.system.genre.toLowerCase() == "homme") {
providence.qualite = game.system.tedeum.config.providence[providence.value].labelH
} else {
providence.qualite = game.system.tedeum.config.providence[providence.value].labelF
}
providence.dice = game.system.tedeum.config.providence[providence.value].diceValue providence.dice = game.system.tedeum.config.providence[providence.value].diceValue
providence.description = "La Providence représente la Volonté Divine à l'œuvre pour guider ou sauver un être humain. Les PJ montent dans léchelle de la Providence en menant à bien leurs missions et en se montrant vertueux. Les points de Providence peuvent servir à augmenter temporairement une caractéris- tique, à modifier la gravité d'une blessure, et à résister au vieillissement. Chaque person- nage commence avec un score initial de 1 en Providence (au niveau Pauvre pécheur)." providence.description = "La Providence représente la Volonté Divine à l'œuvre pour guider ou sauver un être humain. Les PJ montent dans léchelle de la Providence en menant à bien leurs missions et en se montrant vertueux. Les points de Providence peuvent servir à augmenter temporairement une caractéris- tique, à modifier la gravité d'une blessure, et à résister au vieillissement. Chaque person- nage commence avec un score initial de 1 en Providence (au niveau Pauvre pécheur)."
return providence return providence
@ -360,11 +375,13 @@ export class TeDeumActor extends Actor {
providence.value = Math.min(Math.max(providence.value + value, 0), 6) providence.value = Math.min(Math.max(providence.value + value, 0), 6)
this.update({ "system.providence": providence }) this.update({ "system.providence": providence })
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
modifyXP(key, value) { async modifyXP(key, value) {
let xp = this.system.caracteristiques[key].experience let xp = this.system.caracteristiques[key].experience
xp = Math.max(xp + value, 0) xp = Math.max(xp + value, 0)
this.update({ [`system.caracteristiques.${key}.experience`]: xp }) await this.update({ [`system.caracteristiques.${key}.experience`]: xp })
this.sheet?.render(true)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -578,6 +595,7 @@ export class TeDeumActor extends Actor {
let rollData = this.getCommonCompetence(compId) let rollData = this.getCommonCompetence(compId)
rollData.mode = "competence" rollData.mode = "competence"
rollData.title = rollData.competence.name rollData.title = rollData.competence.name
rollData.compScore = rollData.competence.system.isBase ? this.system.caracteristiques[rollData.competence.system.caracteristique].value : rollData.competence.system.score
this.startRoll(rollData).catch("Error on startRoll") this.startRoll(rollData).catch("Error on startRoll")
} }

View File

@ -69,7 +69,7 @@ export class TeDeumCharacterCreator {
/*--------------------------------------------*/ /*--------------------------------------------*/
async askStageName(context) { async askStageName(context) {
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-stage-name.hbs", context) const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-stage-name.hbs", context)
const choiceResult = await foundry.applications.api.DialogV2.wait({ const choiceResult = await foundry.applications.api.DialogV2.wait({
window: { title: context.title }, window: { title: context.title },
classes: ["fvtt-te-deum"], classes: ["fvtt-te-deum"],
@ -127,7 +127,7 @@ export class TeDeumCharacterCreator {
context.competences = {} context.competences = {}
context.responseKey = "reponse1" // By default context.responseKey = "reponse1" // By default
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-questions.hbs", context) const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-questions.hbs", context)
const choiceResult = await foundry.applications.api.DialogV2.wait({ const choiceResult = await foundry.applications.api.DialogV2.wait({
window: { title: context.title }, window: { title: context.title },
classes: ["fvtt-te-deum"], classes: ["fvtt-te-deum"],
@ -192,7 +192,7 @@ export class TeDeumCharacterCreator {
} }
} }
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-competences.hbs", context) const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-competences.hbs", context)
const choiceResult = await foundry.applications.api.DialogV2.wait({ const choiceResult = await foundry.applications.api.DialogV2.wait({
window: { title: context.title }, window: { title: context.title },
classes: ["fvtt-te-deum"], classes: ["fvtt-te-deum"],
@ -236,7 +236,7 @@ export class TeDeumCharacterCreator {
} }
} }
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-competences.hbs", context) const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-competences.hbs", context)
const choiceResult = await foundry.applications.api.DialogV2.wait({ const choiceResult = await foundry.applications.api.DialogV2.wait({
window: { title: context.title }, window: { title: context.title },
classes: ["fvtt-te-deum"], classes: ["fvtt-te-deum"],
@ -283,7 +283,7 @@ export class TeDeumCharacterCreator {
context.caracList.push(game.system.tedeum.config.caracteristiques[carac.caracId]) context.caracList.push(game.system.tedeum.config.caracteristiques[carac.caracId])
} }
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-carac.hbs", context) const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-carac.hbs", context)
const choiceResult = await foundry.applications.api.DialogV2.wait({ const choiceResult = await foundry.applications.api.DialogV2.wait({
window: { title: context.title }, window: { title: context.title },
classes: ["fvtt-te-deum"], classes: ["fvtt-te-deum"],
@ -325,7 +325,7 @@ export class TeDeumCharacterCreator {
origineChoice: game.system.tedeum.config.origineSociale origineChoice: game.system.tedeum.config.origineSociale
} }
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-origine.hbs", context) const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-origine.hbs", context)
const label = "Valider le choix de l'Origine Sociale" const label = "Valider le choix de l'Origine Sociale"
const choiceResult = await foundry.applications.api.DialogV2.wait({ const choiceResult = await foundry.applications.api.DialogV2.wait({
window: { title: context.title }, window: { title: context.title },
@ -596,7 +596,7 @@ export class TeDeumCharacterCreator {
"adresse": { score: actor.getCompetenceScore("Initiative"), label: "Adresse" }, "adresse": { score: actor.getCompetenceScore("Initiative"), label: "Adresse" },
} }
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-finished.hbs", context) const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-finished.hbs", context)
const label = "Terminer" const label = "Terminer"
const choiceResult = await foundry.applications.api.DialogV2.wait({ const choiceResult = await foundry.applications.api.DialogV2.wait({
window: { title: context.title }, window: { title: context.title },

View File

@ -57,7 +57,7 @@ export const TEDEUM_CONFIG = {
descriptionValeurOdd: { descriptionValeurOdd: {
1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" }, 1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" },
2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" }, 2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Fruste", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" },
3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" }, 3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" },
4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" }, 4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
5: { valeur: 5, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" }, 5: { valeur: 5, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
@ -71,12 +71,20 @@ export const TEDEUM_CONFIG = {
}, },
descriptionValeur: { descriptionValeur: {
1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" }, 1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" },
2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" }, 2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Fruste", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" },
3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" }, 3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" },
4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" }, 4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" },
5: { valeur: 5, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" }, 5: { valeur: 5, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" },
6: { valeur: 6, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" }, 6: { valeur: 6, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" },
}, },
descriptionValeurFemme: {
1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sotte", sensibilite: "Obtuse", entregent: "Rustaude", puissance: "Menue", complexion: "Anémique", adresse: "Empesée" },
2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limitée", sensibilite: "Etriquée", entregent: "Fruste", puissance: "Délicate", complexion: "Languide", adresse: "Gauche" },
3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlée", sensibilite: "Ouverte", entregent: "Badine", puissance: "Membrue", complexion: "Dispose", adresse: "Ingambe" },
4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettrée", sensibilite: "Fine", entregent: "Diserte", puissance: "Vigoureuse", complexion: "Gaillarde", adresse: "Leste" },
5: { valeur: 5, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtile", entregent: "Galante", puissance: "Musculeuse", complexion: "Sanguine", adresse: "Preste" },
6: { valeur: 6, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituelle", entregent: "Sémillante", puissance: "Hercule", complexion: "Aguerrie", adresse: "Alerte" },
},
diceValeur: ["d4", "d6", "d8", "d10", "d12", "d20"], diceValeur: ["d4", "d6", "d8", "d10", "d12", "d20"],
degatsArmure: { degatsArmure: {
sansarmure: { label: "Sans armure" }, sansarmure: { label: "Sans armure" },
@ -157,6 +165,11 @@ export const TEDEUM_CONFIG = {
sol: { label: "Sols", id: "sol", value: 10 }, sol: { label: "Sols", id: "sol", value: 10 },
livre: { label: "Livres", id: "livre", value: 100 } livre: { label: "Livres", id: "livre", value: 100 }
}, },
monnaieUnit: {
"1": { label: "Deniers", id: "denier", value: 1 },
"10": { label: "Sols", id: "sol", value: 10 },
"100": { label: "Livres", id: "livre", value: 100 }
},
etapesEducation: { etapesEducation: {
pouponniere: { label: "La Pouponnière", value: "pouponniere", agemin: 0, agemax: 6, nbCompetences: 2, nbCaracteristiques: 3, hasGenre: false, hasQuestionnaire: true, hasDebouches: false, hasMultiplier: false, canCompetencesOpt: false }, pouponniere: { label: "La Pouponnière", value: "pouponniere", agemin: 0, agemax: 6, nbCompetences: 2, nbCaracteristiques: 3, hasGenre: false, hasQuestionnaire: true, hasDebouches: false, hasMultiplier: false, canCompetencesOpt: false },
petitsgrimauds: { label: "La classe des Petits Grimauds", value: "petitsgrimauds", agemin: 7, agemax: 12, nbCompetences: 10, hasGenre: true, nbCaracteristiques: 3, hasDebouches: false, hasQuestionnaire: true, hasMultiplier: false, canCompetencesOpt: false }, petitsgrimauds: { label: "La classe des Petits Grimauds", value: "petitsgrimauds", agemin: 7, agemax: 12, nbCompetences: 10, hasGenre: true, nbCaracteristiques: 3, hasDebouches: false, hasQuestionnaire: true, hasMultiplier: false, canCompetencesOpt: false },

View File

@ -24,7 +24,7 @@ export class TeDeumUtility {
let cr = new game.system.tedeum.TeDeumCharacterCreator(); let cr = new game.system.tedeum.TeDeumCharacterCreator();
cr.init() cr.init()
}) })
html.find('.header-actions').after(button) $(html).find('.header-actions').after(button)
} }
}) })
//Hooks.on("getChatLogEntryContext", (html, options) => TeDeumUtility.chatMenuManager(html, options)); //Hooks.on("getChatLogEntryContext", (html, options) => TeDeumUtility.chatMenuManager(html, options));
@ -92,6 +92,13 @@ export class TeDeumUtility {
Handlebars.registerHelper('isGM', function () { Handlebars.registerHelper('isGM', function () {
return game.user.isGM return game.user.isGM
}) })
Handlebars.registerHelper('monnaie', function (value) {
let monnaie = game.system.tedeum.config.monnaieUnit[String(value)]
if (monnaie) {
return monnaie.label
}
return value
})
// Load compendium data // Load compendium data
const competences = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences") const competences = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences")
@ -215,7 +222,7 @@ export class TeDeumUtility {
looser: rLooser looser: rLooser
} }
let msg = await this.createChatWithRollMode(rollData.alias, { let msg = await this.createChatWithRollMode(rollData.alias, {
content: await 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)
@ -243,7 +250,7 @@ export class TeDeumUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */ /* -------------------------------------------- */ /* -------------------------------------------- */
static async chatListeners(html) { static async chatListeners(html) {
html.on("click", '.chat-command-opposition', event => { $(html).on("click", '.chat-command-opposition', event => {
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget) let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId) let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "te-deum-rolldata") let rollData = message.getFlag("world", "te-deum-rolldata")
@ -251,7 +258,7 @@ export class TeDeumUtility {
TeDeumUtility.manageOpposition(rollData, messageId) TeDeumUtility.manageOpposition(rollData, messageId)
} }
}) })
html.on("click", '.chat-command-appliquer-degats', event => { $(html).on("click", '.chat-command-appliquer-degats', event => {
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget) let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId) let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "te-deum-rolldata") let rollData = message.getFlag("world", "te-deum-rolldata")
@ -270,7 +277,7 @@ export class TeDeumUtility {
'systems/fvtt-te-deum/templates/items/partial-item-description.hbs', 'systems/fvtt-te-deum/templates/items/partial-item-description.hbs',
'systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs' 'systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs'
] ]
return loadTemplates(templatePaths); return foundry.applications.handlebars.loadTemplates(templatePaths);
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -347,7 +354,7 @@ export class TeDeumUtility {
let rollData = msg.data.rollData let rollData = msg.data.rollData
if (game.user.isGM) { if (game.user.isGM) {
let chatMsg = await this.createChatMessage(rollData.alias, "blindroll", { let chatMsg = await this.createChatMessage(rollData.alias, "blindroll", {
content: await renderTemplate(msg.data.template, rollData), content: await foundry.applications.handlebars.renderTemplate(msg.data.template, rollData),
whisper: game.user.id whisper: game.user.id
}) })
chatMsg.setFlag("world", "tedeum-rolldata", rollData) chatMsg.setFlag("world", "tedeum-rolldata", rollData)
@ -437,10 +444,11 @@ export class TeDeumUtility {
} }
} }
if (rollData.diceSum == 1) { if (rollData.diceSum == 1) {
let critiqueRoll = await new Roll(rollData.carac.negativeDice).roll() let critiqueRoll = await new Roll(rollData.carac.negativeDice)
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)
if (critiqueRoll.total > rollData.competence.score) { if (critiqueRoll.total > rollData.competence.system.score) {
rollData.isEchecCritique = true rollData.isEchecCritique = true
} }
} }
@ -470,7 +478,7 @@ export class TeDeumUtility {
} }
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.competence.system.score diceFormula = diceBase + "x + " + rollData.compScore
} }
if (rollData.enableProvidence) { if (rollData.enableProvidence) {
diceFormula += " + " + rollData.providence.dice diceFormula += " + " + rollData.providence.dice
@ -513,7 +521,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(locRoll, game.settings.get("core", "rollMode")) await this.showDiceSoNice(rollData.locRoll, 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
} }
@ -528,6 +536,14 @@ export class TeDeumUtility {
rollData.difficulty = "pardefaut" rollData.difficulty = "pardefaut"
} }
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
if ( rollData.competence ) {
if ( rollData.competence.system.isBase) {
rollData.compScore = actor.system.caracteristiques[rollData.competence.system.caracteristique].value
} else {
rollData.compScore = rollData.competence.system.score
}
}
let diceFormula = this.computeRollFormula(rollData, actor) let diceFormula = this.computeRollFormula(rollData, actor)
if (!diceFormula) return; if (!diceFormula) return;
console.log("RollData", rollData, diceFormula) console.log("RollData", rollData, diceFormula)
@ -545,7 +561,7 @@ export class TeDeumUtility {
await this.processAttaqueDistance(rollData) await this.processAttaqueDistance(rollData)
let msg = await this.createChatWithRollMode(rollData.alias, { let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-generic-result.hbs`, rollData) content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-generic-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)

View File

@ -13,4 +13,10 @@ export class TeDeumEquipementSchema extends foundry.abstract.TypeDataModel {
return schema; return schema;
} }
get monnaieLabel() {
console.log("monnaieLabel", this.monnaie,game.system.tedeum.config.monnaieUnit)
return game.system.tedeum.config.monnaieUnit[String(this.monnaie)]?.label;
}
} }

View File

@ -9,7 +9,8 @@ export class TeDeumMaladieSchema extends foundry.abstract.TypeDataModel {
schema.virulence = new fields.StringField({required: true, choices: ["fatigue", "epuisement", "souffrance", "agonie"], initial: "fatigue"}); schema.virulence = new fields.StringField({required: true, choices: ["fatigue", "epuisement", "souffrance", "agonie"], initial: "fatigue"});
schema.fievre = new fields.StringField({required: true, choices: ["aucune", "legere", "forte", "grave"], initial: "aucune"}); schema.fievre = new fields.StringField({required: true, choices: ["aucune", "legere", "forte", "grave"], initial: "aucune"});
schema.symptomes = new fields.HTMLField({ required: true, blank: true }); schema.symptomes = new fields.HTMLField({ required: true, blank: true });
schema.appliquee = new fields.BooleanField({initial: false}), schema.complications = new fields.HTMLField({ required: true, blank: true });
schema.appliquee = new fields.BooleanField({initial: false});
schema.description = new fields.HTMLField({ required: true, blank: true }); schema.description = new fields.HTMLField({ required: true, blank: true });

View File

@ -40,18 +40,20 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
}); });
schema.description = new fields.HTMLField({required: true, blank: true}); schema.description = new fields.HTMLField({required: true, blank: true});
schema.notes = new fields.HTMLField({required: true, blank: true});
schema.connaissances = new fields.HTMLField({required: true, blank: true}); schema.connaissances = new fields.HTMLField({required: true, blank: true});
schema.histoire = new fields.HTMLField({required: true, blank: true}); schema.histoire = new fields.HTMLField({required: true, blank: true});
schema.vetements = new fields.HTMLField({required: true, blank: true}); schema.vetements = new fields.HTMLField({required: true, blank: true});
schema.equipmentfree = new fields.HTMLField({required: true, blank: true}); schema.equipmentfree = new fields.HTMLField({required: true, blank: true});
schema.genre = new fields.StringField({required: true, choices: game.system.tedeum.config.genre, initial: "Femme"}); schema.genre = new fields.StringField({required: true, choices: game.system.tedeum.config.genre, initial: "Femme"});
schema.age = new fields.StringField({ required: false, blank: true, initial: undefined }); schema.age = new fields.StringField({ required: false, blank: true, initial: "" });
schema.statutocial = new fields.StringField({ required: false, blank: true, initial: undefined }); schema.datenaissance = new fields.StringField({ required: false, blank: true, initial: "" });
schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: undefined }); schema.statutocial = new fields.StringField({ required: false, blank: true, initial: "" });
schema.charges = new fields.StringField({ required: false, blank: true, initial: undefined }); schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: "" });
schema.religion = new fields.StringField({ required: false, blank: true, initial: undefined }); schema.charges = new fields.StringField({ required: false, blank: true, initial: "" });
schema.lieunaissance = new fields.StringField({ required: false, blank: true, initial: undefined }); schema.religion = new fields.StringField({ required: false, blank: true, initial: "" });
schema.lieunaissance = new fields.StringField({ required: false, blank: true, initial: "" });
return schema; return schema;
} }

View File

@ -4,7 +4,7 @@ import { TeDeumUtility } from "../common/tedeum-utility.js";
* Extend the basic ItemSheet with some very simple modifications * Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet} * @extends {ItemSheet}
*/ */
export class TeDeumItemSheet extends ItemSheet { export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
@ -49,8 +49,8 @@ export class TeDeumItemSheet extends ItemSheet {
limited: this.object.limited, limited: this.object.limited,
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }), description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }), notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }),
isGM: game.user.isGM isGM: game.user.isGM
} }

View File

@ -82,12 +82,12 @@ Hooks.once("init", async function () {
console.log("TeDeum RPG | Ready"); console.log("TeDeum RPG | Ready");
Actors.unregisterSheet("core", ActorSheet); foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pj"], makeDefault: true }); foundry.documents.collections.Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pj"], makeDefault: true });
Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pnj"], makeDefault: true }); foundry.documents.collections.Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pnj"], makeDefault: true });
Items.unregisterSheet("core", ItemSheet); foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { makeDefault: true }); foundry.documents.collections.Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { makeDefault: true });
TeDeumUtility.init() TeDeumUtility.init()
}); });
@ -134,4 +134,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
} }
return true; return true;
}); });

Binary file not shown.

BIN
packs/aides/000103.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000077 MANIFEST-000108

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.143055 7f24c6ffd6c0 Recovering log #75 2025/06/04-15:05:47.545416 7ff25bfff6c0 Recovering log #106
2025/03/11-18:04:31.153035 7f24c6ffd6c0 Delete type=3 #73 2025/06/04-15:05:47.556041 7ff25bfff6c0 Delete type=3 #104
2025/03/11-18:04:31.153146 7f24c6ffd6c0 Delete type=0 #75 2025/06/04-15:05:47.556120 7ff25bfff6c0 Delete type=0 #106
2025/03/11-18:27:51.833675 7f24c4bff6c0 Level-0 table #80: started 2025/06/04-15:26:45.555523 7ff25a3ff6c0 Level-0 table #111: started
2025/03/11-18:27:51.833743 7f24c4bff6c0 Level-0 table #80: 0 bytes OK 2025/06/04-15:26:45.555566 7ff25a3ff6c0 Level-0 table #111: 0 bytes OK
2025/03/11-18:27:51.840981 7f24c4bff6c0 Delete type=0 #78 2025/06/04-15:26:45.562169 7ff25a3ff6c0 Delete type=0 #109
2025/03/11-18:27:51.853984 7f24c4bff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.562425 7ff25a3ff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/03/11-13:28:14.628624 7f24c6ffd6c0 Recovering log #70 2025/05/18-22:00:33.531561 7f8905ffb6c0 Recovering log #101
2025/03/11-13:28:14.638344 7f24c6ffd6c0 Delete type=3 #68 2025/05/18-22:00:33.592770 7f8905ffb6c0 Delete type=3 #99
2025/03/11-13:28:14.638409 7f24c6ffd6c0 Delete type=0 #70 2025/05/18-22:00:33.592842 7f8905ffb6c0 Delete type=0 #101
2025/03/11-13:44:45.762189 7f24c4bff6c0 Level-0 table #76: started 2025/05/18-22:05:29.127669 7f8667fff6c0 Level-0 table #107: started
2025/03/11-13:44:45.762249 7f24c4bff6c0 Level-0 table #76: 0 bytes OK 2025/05/18-22:05:29.127710 7f8667fff6c0 Level-0 table #107: 0 bytes OK
2025/03/11-13:44:45.768757 7f24c4bff6c0 Delete type=0 #74 2025/05/18-22:05:29.134205 7f8667fff6c0 Delete type=0 #105
2025/03/11-13:44:45.768912 7f24c4bff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) 2025/05/18-22:05:29.134321 7f8667fff6c0 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-000108 Normal file

Binary file not shown.

Binary file not shown.

BIN
packs/armes/000206.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000179 MANIFEST-000211

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.045395 7f24c5ffb6c0 Recovering log #177 2025/06/04-15:05:47.429143 7ff25affd6c0 Recovering log #209
2025/03/11-18:04:31.056356 7f24c5ffb6c0 Delete type=3 #175 2025/06/04-15:05:47.441082 7ff25affd6c0 Delete type=3 #207
2025/03/11-18:04:31.056467 7f24c5ffb6c0 Delete type=0 #177 2025/06/04-15:05:47.441344 7ff25affd6c0 Delete type=0 #209
2025/03/11-18:27:51.772304 7f24c4bff6c0 Level-0 table #182: started 2025/06/04-15:26:45.478679 7ff25a3ff6c0 Level-0 table #214: started
2025/03/11-18:27:51.772338 7f24c4bff6c0 Level-0 table #182: 0 bytes OK 2025/06/04-15:26:45.478793 7ff25a3ff6c0 Level-0 table #214: 0 bytes OK
2025/03/11-18:27:51.778305 7f24c4bff6c0 Delete type=0 #180 2025/06/04-15:26:45.485108 7ff25a3ff6c0 Delete type=0 #212
2025/03/11-18:27:51.798039 7f24c4bff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.505317 7ff25a3ff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/03/11-13:28:14.531093 7f24c5ffb6c0 Recovering log #172 2025/05/18-22:00:33.073973 7f8904ff96c0 Recovering log #204
2025/03/11-13:28:14.541728 7f24c5ffb6c0 Delete type=3 #170 2025/05/18-22:00:33.125273 7f8904ff96c0 Delete type=3 #202
2025/03/11-13:28:14.541774 7f24c5ffb6c0 Delete type=0 #172 2025/05/18-22:00:33.125334 7f8904ff96c0 Delete type=0 #204
2025/03/11-13:44:45.683900 7f24c4bff6c0 Level-0 table #178: started 2025/05/18-22:05:29.052408 7f8667fff6c0 Level-0 table #210: started
2025/03/11-13:44:45.683936 7f24c4bff6c0 Level-0 table #178: 0 bytes OK 2025/05/18-22:05:29.052435 7f8667fff6c0 Level-0 table #210: 0 bytes OK
2025/03/11-13:44:45.690560 7f24c4bff6c0 Delete type=0 #176 2025/05/18-22:05:29.058826 7f8667fff6c0 Delete type=0 #208
2025/03/11-13:44:45.703381 7f24c4bff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) 2025/05/18-22:05:29.071831 7f8667fff6c0 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-000211 Normal file

Binary file not shown.

Binary file not shown.

BIN
packs/armures/000205.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000179 MANIFEST-000210

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.059498 7f24c6ffd6c0 Recovering log #177 2025/06/04-15:05:47.446612 7ff2609fa6c0 Recovering log #208
2025/03/11-18:04:31.068855 7f24c6ffd6c0 Delete type=3 #175 2025/06/04-15:05:47.457941 7ff2609fa6c0 Delete type=3 #206
2025/03/11-18:04:31.068919 7f24c6ffd6c0 Delete type=0 #177 2025/06/04-15:05:47.458200 7ff2609fa6c0 Delete type=0 #208
2025/03/11-18:27:51.778439 7f24c4bff6c0 Level-0 table #182: started 2025/06/04-15:26:45.491864 7ff25a3ff6c0 Level-0 table #213: started
2025/03/11-18:27:51.778466 7f24c4bff6c0 Level-0 table #182: 0 bytes OK 2025/06/04-15:26:45.491924 7ff25a3ff6c0 Level-0 table #213: 0 bytes OK
2025/03/11-18:27:51.784375 7f24c4bff6c0 Delete type=0 #180 2025/06/04-15:26:45.498683 7ff25a3ff6c0 Delete type=0 #211
2025/03/11-18:27:51.798058 7f24c4bff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.505345 7ff25a3ff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/03/11-13:28:14.544961 7f24c6ffd6c0 Recovering log #172 2025/05/18-22:00:33.135764 7f89067fc6c0 Recovering log #203
2025/03/11-13:28:14.555248 7f24c6ffd6c0 Delete type=3 #170 2025/05/18-22:00:33.191351 7f89067fc6c0 Delete type=3 #201
2025/03/11-13:28:14.555342 7f24c6ffd6c0 Delete type=0 #172 2025/05/18-22:00:33.191454 7f89067fc6c0 Delete type=0 #203
2025/03/11-13:44:45.668267 7f24c4bff6c0 Level-0 table #178: started 2025/05/18-22:05:29.065248 7f8667fff6c0 Level-0 table #209: started
2025/03/11-13:44:45.668337 7f24c4bff6c0 Level-0 table #178: 0 bytes OK 2025/05/18-22:05:29.065277 7f8667fff6c0 Level-0 table #209: 0 bytes OK
2025/03/11-13:44:45.675505 7f24c4bff6c0 Delete type=0 #176 2025/05/18-22:05:29.071683 7f8667fff6c0 Delete type=0 #207
2025/03/11-13:44:45.703361 7f24c4bff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) 2025/05/18-22:05:29.071852 7f8667fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000176 MANIFEST-000207

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.031690 7f24c57fa6c0 Recovering log #174 2025/06/04-15:05:47.413144 7ff25bfff6c0 Recovering log #205
2025/03/11-18:04:31.041244 7f24c57fa6c0 Delete type=3 #172 2025/06/04-15:05:47.423163 7ff25bfff6c0 Delete type=3 #203
2025/03/11-18:04:31.041294 7f24c57fa6c0 Delete type=0 #174 2025/06/04-15:05:47.423245 7ff25bfff6c0 Delete type=0 #205
2025/03/11-18:27:51.791921 7f24c4bff6c0 Level-0 table #179: started 2025/06/04-15:26:45.485291 7ff25a3ff6c0 Level-0 table #210: started
2025/03/11-18:27:51.791971 7f24c4bff6c0 Level-0 table #179: 0 bytes OK 2025/06/04-15:26:45.485326 7ff25a3ff6c0 Level-0 table #210: 0 bytes OK
2025/03/11-18:27:51.797892 7f24c4bff6c0 Delete type=0 #177 2025/06/04-15:26:45.491655 7ff25a3ff6c0 Delete type=0 #208
2025/03/11-18:27:51.798085 7f24c4bff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.505333 7ff25a3ff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/03/11-13:28:14.513253 7f24c67fc6c0 Recovering log #169 2025/05/18-22:00:32.966617 7f8905ffb6c0 Recovering log #200
2025/03/11-13:28:14.526554 7f24c67fc6c0 Delete type=3 #167 2025/05/18-22:00:33.058932 7f8905ffb6c0 Delete type=3 #198
2025/03/11-13:28:14.526600 7f24c67fc6c0 Delete type=0 #169 2025/05/18-22:00:33.058991 7f8905ffb6c0 Delete type=0 #200
2025/03/11-13:44:45.675611 7f24c4bff6c0 Level-0 table #175: started 2025/05/18-22:05:29.044847 7f8667fff6c0 Level-0 table #206: started
2025/03/11-13:44:45.675642 7f24c4bff6c0 Level-0 table #175: 0 bytes OK 2025/05/18-22:05:29.044904 7f8667fff6c0 Level-0 table #206: 0 bytes OK
2025/03/11-13:44:45.683758 7f24c4bff6c0 Delete type=0 #173 2025/05/18-22:05:29.052189 7f8667fff6c0 Delete type=0 #204
2025/03/11-13:44:45.703372 7f24c4bff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end) 2025/05/18-22:05:29.071818 7f8667fff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000187 MANIFEST-000219

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.072608 7f24c67fc6c0 Recovering log #184 2025/06/04-15:05:47.464179 7ff25b7fe6c0 Recovering log #217
2025/03/11-18:04:31.084241 7f24c67fc6c0 Delete type=3 #182 2025/06/04-15:05:47.474973 7ff25b7fe6c0 Delete type=3 #215
2025/03/11-18:04:31.084398 7f24c67fc6c0 Delete type=0 #184 2025/06/04-15:05:47.475215 7ff25b7fe6c0 Delete type=0 #217
2025/03/11-18:27:51.784510 7f24c4bff6c0 Level-0 table #190: started 2025/06/04-15:26:45.511713 7ff25a3ff6c0 Level-0 table #222: started
2025/03/11-18:27:51.784541 7f24c4bff6c0 Level-0 table #190: 0 bytes OK 2025/06/04-15:26:45.511749 7ff25a3ff6c0 Level-0 table #222: 0 bytes OK
2025/03/11-18:27:51.791721 7f24c4bff6c0 Delete type=0 #188 2025/06/04-15:26:45.518781 7ff25a3ff6c0 Delete type=0 #220
2025/03/11-18:27:51.798072 7f24c4bff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.531871 7ff25a3ff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)

View File

@ -1,14 +1,7 @@
2025/03/11-13:28:14.558461 7f24c57fa6c0 Recovering log #179 2025/05/18-22:00:33.199430 7f89057fa6c0 Recovering log #212
2025/03/11-13:28:14.568052 7f24c57fa6c0 Delete type=3 #177 2025/05/18-22:00:33.264639 7f89057fa6c0 Delete type=3 #210
2025/03/11-13:28:14.568097 7f24c57fa6c0 Delete type=0 #179 2025/05/18-22:00:33.264698 7f89057fa6c0 Delete type=0 #212
2025/03/11-13:44:45.690663 7f24c4bff6c0 Level-0 table #185: started 2025/05/18-22:05:29.078828 7f8667fff6c0 Level-0 table #218: started
2025/03/11-13:44:45.696528 7f24c4bff6c0 Level-0 table #185: 269024 bytes OK 2025/05/18-22:05:29.078861 7f8667fff6c0 Level-0 table #218: 0 bytes OK
2025/03/11-13:44:45.703042 7f24c4bff6c0 Delete type=0 #183 2025/05/18-22:05:29.085105 7f8667fff6c0 Delete type=0 #216
2025/03/11-13:44:45.703394 7f24c4bff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!zGlRtP7zSnkjuuue' @ 421 : 1 2025/05/18-22:05:29.098638 7f8667fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
2025/03/11-13:44:45.703398 7f24c4bff6c0 Compacting 1@0 + 1@1 files
2025/03/11-13:44:45.709467 7f24c4bff6c0 Generated table #186@0: 71 keys, 263379 bytes
2025/03/11-13:44:45.709502 7f24c4bff6c0 Compacted 1@0 + 1@1 files => 263379 bytes
2025/03/11-13:44:45.715665 7f24c4bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/03/11-13:44:45.715844 7f24c4bff6c0 Delete type=2 #181
2025/03/11-13:44:45.716087 7f24c4bff6c0 Delete type=2 #185
2025/03/11-13:44:45.737317 7f24c4bff6c0 Manual compaction at level-0 from '!items!zGlRtP7zSnkjuuue' @ 421 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/graces/000205.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000178 MANIFEST-000210

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.089058 7f24c57fa6c0 Recovering log #176 2025/06/04-15:05:47.481354 7ff25affd6c0 Recovering log #208
2025/03/11-18:04:31.099719 7f24c57fa6c0 Delete type=3 #174 2025/06/04-15:05:47.492415 7ff25affd6c0 Delete type=3 #206
2025/03/11-18:04:31.099830 7f24c57fa6c0 Delete type=0 #176 2025/06/04-15:05:47.492508 7ff25affd6c0 Delete type=0 #208
2025/03/11-18:27:51.804396 7f24c4bff6c0 Level-0 table #181: started 2025/06/04-15:26:45.499004 7ff25a3ff6c0 Level-0 table #213: started
2025/03/11-18:27:51.804421 7f24c4bff6c0 Level-0 table #181: 0 bytes OK 2025/06/04-15:26:45.499054 7ff25a3ff6c0 Level-0 table #213: 0 bytes OK
2025/03/11-18:27:51.810625 7f24c4bff6c0 Delete type=0 #179 2025/06/04-15:26:45.505185 7ff25a3ff6c0 Delete type=0 #211
2025/03/11-18:27:51.823828 7f24c4bff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.505355 7ff25a3ff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/03/11-13:28:14.573012 7f24c67fc6c0 Recovering log #171 2025/05/18-22:00:33.273056 7f8904ff96c0 Recovering log #203
2025/03/11-13:28:14.583548 7f24c67fc6c0 Delete type=3 #169 2025/05/18-22:00:33.327855 7f8904ff96c0 Delete type=3 #201
2025/03/11-13:28:14.583672 7f24c67fc6c0 Delete type=0 #171 2025/05/18-22:00:33.327981 7f8904ff96c0 Delete type=0 #203
2025/03/11-13:44:45.722734 7f24c4bff6c0 Level-0 table #177: started 2025/05/18-22:05:29.058954 7f8667fff6c0 Level-0 table #209: started
2025/03/11-13:44:45.722788 7f24c4bff6c0 Level-0 table #177: 0 bytes OK 2025/05/18-22:05:29.058982 7f8667fff6c0 Level-0 table #209: 0 bytes OK
2025/03/11-13:44:45.730379 7f24c4bff6c0 Delete type=0 #175 2025/05/18-22:05:29.065089 7f8667fff6c0 Delete type=0 #207
2025/03/11-13:44:45.737367 7f24c4bff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) 2025/05/18-22:05:29.071842 7f8667fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/maladies/000205.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000178 MANIFEST-000210

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.102877 7f24c5ffb6c0 Recovering log #176 2025/06/04-15:05:47.497176 7ff25bfff6c0 Recovering log #208
2025/03/11-18:04:31.112795 7f24c5ffb6c0 Delete type=3 #174 2025/06/04-15:05:47.507676 7ff25bfff6c0 Delete type=3 #206
2025/03/11-18:04:31.112850 7f24c5ffb6c0 Delete type=0 #176 2025/06/04-15:05:47.507762 7ff25bfff6c0 Delete type=0 #208
2025/03/11-18:27:51.798175 7f24c4bff6c0 Level-0 table #181: started 2025/06/04-15:26:45.518949 7ff25a3ff6c0 Level-0 table #213: started
2025/03/11-18:27:51.798273 7f24c4bff6c0 Level-0 table #181: 0 bytes OK 2025/06/04-15:26:45.518983 7ff25a3ff6c0 Level-0 table #213: 0 bytes OK
2025/03/11-18:27:51.804291 7f24c4bff6c0 Delete type=0 #179 2025/06/04-15:26:45.525386 7ff25a3ff6c0 Delete type=0 #211
2025/03/11-18:27:51.823814 7f24c4bff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.531893 7ff25a3ff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/03/11-13:28:14.587087 7f24c5ffb6c0 Recovering log #171 2025/05/18-22:00:33.333998 7f89067fc6c0 Recovering log #203
2025/03/11-13:28:14.597186 7f24c5ffb6c0 Delete type=3 #169 2025/05/18-22:00:33.393841 7f89067fc6c0 Delete type=3 #201
2025/03/11-13:28:14.597233 7f24c5ffb6c0 Delete type=0 #171 2025/05/18-22:00:33.393896 7f89067fc6c0 Delete type=0 #203
2025/03/11-13:44:45.716209 7f24c4bff6c0 Level-0 table #177: started 2025/05/18-22:05:29.085237 7f8667fff6c0 Level-0 table #209: started
2025/03/11-13:44:45.716245 7f24c4bff6c0 Level-0 table #177: 0 bytes OK 2025/05/18-22:05:29.085265 7f8667fff6c0 Level-0 table #209: 0 bytes OK
2025/03/11-13:44:45.722570 7f24c4bff6c0 Delete type=0 #175 2025/05/18-22:05:29.091461 7f8667fff6c0 Delete type=0 #207
2025/03/11-13:44:45.737346 7f24c4bff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end) 2025/05/18-22:05:29.098648 7f8667fff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000116 MANIFEST-000147

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.129320 7f24c67fc6c0 Recovering log #114 2025/06/04-15:05:47.528778 7ff25b7fe6c0 Recovering log #145
2025/03/11-18:04:31.139477 7f24c67fc6c0 Delete type=3 #112 2025/06/04-15:05:47.538793 7ff25b7fe6c0 Delete type=3 #143
2025/03/11-18:04:31.139583 7f24c67fc6c0 Delete type=0 #114 2025/06/04-15:05:47.538886 7ff25b7fe6c0 Delete type=0 #145
2025/03/11-18:27:51.817747 7f24c4bff6c0 Level-0 table #119: started 2025/06/04-15:26:45.525488 7ff25a3ff6c0 Level-0 table #150: started
2025/03/11-18:27:51.817804 7f24c4bff6c0 Level-0 table #119: 0 bytes OK 2025/06/04-15:26:45.525518 7ff25a3ff6c0 Level-0 table #150: 0 bytes OK
2025/03/11-18:27:51.823741 7f24c4bff6c0 Delete type=0 #117 2025/06/04-15:26:45.531590 7ff25a3ff6c0 Delete type=0 #148
2025/03/11-18:27:51.823845 7f24c4bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.531909 7ff25a3ff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/03/11-13:28:14.613748 7f24c57fa6c0 Recovering log #109 2025/05/18-22:00:33.470618 7f89057fa6c0 Recovering log #140
2025/03/11-13:28:14.624991 7f24c57fa6c0 Delete type=3 #107 2025/05/18-22:00:33.527042 7f89057fa6c0 Delete type=3 #138
2025/03/11-13:28:14.625043 7f24c57fa6c0 Delete type=0 #109 2025/05/18-22:00:33.527136 7f89057fa6c0 Delete type=0 #140
2025/03/11-13:44:45.755608 7f24c4bff6c0 Level-0 table #115: started 2025/05/18-22:05:29.091684 7f8667fff6c0 Level-0 table #146: started
2025/03/11-13:44:45.755668 7f24c4bff6c0 Level-0 table #115: 0 bytes OK 2025/05/18-22:05:29.091715 7f8667fff6c0 Level-0 table #146: 0 bytes OK
2025/03/11-13:44:45.761995 7f24c4bff6c0 Delete type=0 #113 2025/05/18-22:05:29.098504 7f8667fff6c0 Delete type=0 #144
2025/03/11-13:44:45.768901 7f24c4bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end) 2025/05/18-22:05:29.098657 7f8667fff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/simples/000205.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000178 MANIFEST-000210

View File

@ -1,7 +1,7 @@
2025/03/11-18:04:31.115280 7f24c6ffd6c0 Recovering log #176 2025/06/04-15:05:47.512282 7ff2609fa6c0 Recovering log #208
2025/03/11-18:04:31.125809 7f24c6ffd6c0 Delete type=3 #174 2025/06/04-15:05:47.522888 7ff2609fa6c0 Delete type=3 #206
2025/03/11-18:04:31.125868 7f24c6ffd6c0 Delete type=0 #176 2025/06/04-15:05:47.522989 7ff2609fa6c0 Delete type=0 #208
2025/03/11-18:27:51.810753 7f24c4bff6c0 Level-0 table #181: started 2025/06/04-15:26:45.505492 7ff25a3ff6c0 Level-0 table #213: started
2025/03/11-18:27:51.810792 7f24c4bff6c0 Level-0 table #181: 0 bytes OK 2025/06/04-15:26:45.505521 7ff25a3ff6c0 Level-0 table #213: 0 bytes OK
2025/03/11-18:27:51.817530 7f24c4bff6c0 Delete type=0 #179 2025/06/04-15:26:45.511578 7ff25a3ff6c0 Delete type=0 #211
2025/03/11-18:27:51.823838 7f24c4bff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end) 2025/06/04-15:26:45.531835 7ff25a3ff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2025/03/11-13:28:14.600224 7f24c6ffd6c0 Recovering log #171 2025/05/18-22:00:33.404356 7f8905ffb6c0 Recovering log #203
2025/03/11-13:28:14.609993 7f24c6ffd6c0 Delete type=3 #169 2025/05/18-22:00:33.459805 7f8905ffb6c0 Delete type=3 #201
2025/03/11-13:28:14.610100 7f24c6ffd6c0 Delete type=0 #171 2025/05/18-22:00:33.459865 7f8905ffb6c0 Delete type=0 #203
2025/03/11-13:44:45.730600 7f24c4bff6c0 Level-0 table #177: started 2025/05/18-22:05:29.071945 7f8667fff6c0 Level-0 table #209: started
2025/03/11-13:44:45.730666 7f24c4bff6c0 Level-0 table #177: 0 bytes OK 2025/05/18-22:05:29.071972 7f8667fff6c0 Level-0 table #209: 0 bytes OK
2025/03/11-13:44:45.737103 7f24c4bff6c0 Delete type=0 #175 2025/05/18-22:05:29.078657 7f8667fff6c0 Delete type=0 #207
2025/03/11-13:44:45.737471 7f24c4bff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end) 2025/05/18-22:05:29.098624 7f8667fff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -886,16 +886,12 @@ ul, li {
border-radius: 0; border-radius: 0;
background: rgba(30, 25, 20, 1); background: rgba(30, 25, 20, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
} }
#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover { #controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover {
background: rgba(72, 46, 28, 1); background: rgba(72, 46, 28, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
box-shadow: 0 0 3px #ff6400; box-shadow: 0 0 3px #ff6400;
@ -907,7 +903,6 @@ ul, li {
box-shadow: 2px 2px 5px #000000; box-shadow: 2px 2px 5px #000000;
} }
.macro { .macro {
-o-border-image: url(img/ui/bg_control.jpg) 21 repeat;
border-image: url(img/ui/bg_control.jpg) 21 repeat; border-image: url(img/ui/bg_control.jpg) 21 repeat;
border-image-slice: 6 6 6 6 fill; border-image-slice: 6 6 6 6 fill;
border-image-width: 6px 6px 6px 6px; border-image-width: 6px 6px 6px 6px;
@ -921,8 +916,6 @@ ul, li {
} }
} }
#players { #players {
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
background: rgba(30, 25, 20, 1); background: rgba(30, 25, 20, 1);
@ -933,8 +926,6 @@ ul, li {
&.nav-item { &.nav-item {
background: rgba(30, 25, 20, 1); background: rgba(30, 25, 20, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
&.active { &.active {
@ -946,8 +937,6 @@ ul, li {
#nav-toggle { #nav-toggle {
background: rgba(30, 25, 20, 1); background: rgba(30, 25, 20, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
} }
@ -955,8 +944,6 @@ ul, li {
#navigation #scene-list .scene.view, #navigation #scene-list .scene.context { #navigation #scene-list .scene.view, #navigation #scene-list .scene.context {
background: rgba(72, 46, 28, 1); background: rgba(72, 46, 28, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
box-shadow: 0 0 3px #ff6400; box-shadow: 0 0 3px #ff6400;

View File

@ -834,16 +834,12 @@ ul, li {
border-radius: 0; border-radius: 0;
background: rgba(30, 25, 20, 1); background: rgba(30, 25, 20, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
} }
#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover { #controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover {
background: rgba(72, 46, 28, 1); background: rgba(72, 46, 28, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
box-shadow: 0 0 3px #ff6400; box-shadow: 0 0 3px #ff6400;
@ -854,7 +850,7 @@ ul, li {
} }
#hotbar #action-bar .macro { #hotbar #action-bar .macro {
-o-border-image: url(img/ui/bg_control.jpg) 21 repeat; -o-border-image: url(img/ui/bg_control.jpg) 21 repeat;
border-image: url(img/ui/bg_control.jpg) 21 repeat; border-image: url(img/ui/bg_control.jpg) 21 repeat;
border-image-slice: 6 6 6 6 fill; border-image-slice: 6 6 6 6 fill;
border-image-width: 6px 6px 6px 6px; border-image-width: 6px 6px 6px 6px;
border-image-outset: 0px 0px 0px 0px; border-image-outset: 0px 0px 0px 0px;
@ -865,8 +861,6 @@ ul, li {
border: 1px solid rgba(72, 46, 28, 1); border: 1px solid rgba(72, 46, 28, 1);
} }
#players { #players {
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
background: rgba(30, 25, 20, 1); background: rgba(30, 25, 20, 1);
@ -874,8 +868,6 @@ ul, li {
#navigation #scene-list .scene.nav-item { #navigation #scene-list .scene.nav-item {
background: rgba(30, 25, 20, 1); background: rgba(30, 25, 20, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px border-image-outset: 0px
} }
@ -885,16 +877,12 @@ ul, li {
#navigation #nav-toggle { #navigation #nav-toggle {
background: rgba(30, 25, 20, 1); background: rgba(30, 25, 20, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
} }
#navigation #scene-list .scene.view, #navigation #scene-list .scene.context { #navigation #scene-list .scene.view, #navigation #scene-list .scene.context {
background: rgba(72, 46, 28, 1); background: rgba(72, 46, 28, 1);
background-origin: padding-box; background-origin: padding-box;
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
border-image: url(img/ui/footer-button.png) 10 repeat;
border-image-width: 4px; border-image-width: 4px;
border-image-outset: 0px; border-image-outset: 0px;
box-shadow: 0 0 3px #ff6400; box-shadow: 0 0 3px #ff6400;

View File

@ -134,22 +134,22 @@
"license": "LICENSE.txt", "license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/latest/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/latest/system.json",
"compatibility": { "compatibility": {
"minimum": "12", "minimum": "13",
"verified": "12" "verified": "13"
}, },
"id": "fvtt-te-deum", "id": "fvtt-te-deum",
"primaryTokenAttribute": "secondary.health", "primaryTokenAttribute": "secondary.health",
"secondaryTokenAttribute": "secondary.delirium", "secondaryTokenAttribute": "secondary.delirium",
"socket": true, "socket": true,
"styles": [ "styles": [
"styles/tedeum.css" {
"src": "styles/tedeum.css"
}
], ],
"relationships": {
},
"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": "12.0.16", "version": "13.0.1",
"download": "https://www.uberwald.me/gitea/public/fvtt-te-deum/archive/fvtt-te-deum-v12.0.16.zip", "download": "https://www.uberwald.me/gitea/public/fvtt-te-deum/releases/download/13.0.0/fvtt-te-deum-13.0.1.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": {

View File

@ -43,7 +43,7 @@
<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" data-tooltip="{{char.description}}">{{char.name}}</label>
<select type="text" class="input-numeric-short" name="system.caracteristiques.{{key}}.value" <select type="text" class="input-numeric-short" name="system.caracteristiques.{{key}}.value"
data-dtype="Number" /> data-dtype="Number" />
@ -169,6 +169,11 @@
<span class="item-field-title-long"> <span class="item-field-title-long">
<h3><label class="item-field-label-long">Grâces</label></h3> <h3><label class="item-field-label-long">Grâces</label></h3>
</span> </span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="grace" title="Créer une Grâce"><i
class="fas fa-plus"></i></a>
</div>
</li> </li>
{{#each graces as |grace key|}} {{#each graces as |grace key|}}
<li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{grace._id}}"> <li class="item flexrow list-item list-item-shadow item-id" data-item-id="{{grace._id}}">
@ -196,10 +201,22 @@
{{#each arbreCompetences as |carac key|}} {{#each arbreCompetences as |carac key|}}
<ul> <ul>
<li class="flexrow"> <li class="flexrow">
<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" />
<h3 class="item-field-label-long14" data-tooltip="Caracteristique">{{carac.name}} : {{carac.qualite}}</h3> <h3 class="item-field-label-long14" data-tooltip="Caracteristique">{{carac.name}} : {{carac.qualite}}</h3>
<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 item-field-label-medium">{{carac.dice}} (xp : {{carac.experience}})</label> <label class="item-field ">{{carac.dice}} (xp :
{{#if @root.isGM}}
<input class="input-numeric-short" type="text" name="system.caracteristiques.{{key}}.experience" value="{{carac.experience}}" data-dtype="Number" />
{{else}}
{{carac.experience}})
{{/if}}
)
</label>
<div class="item-filler">&nbsp;</div>
<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
class="fas fa-plus"></i></a>
</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|}}
@ -292,9 +309,9 @@
<div class="center-content"> <div class="center-content">
<div class="corps-combat-block flexrow"> <div class="corps-combat-block flexrow">
<img src="/systems/fvtt-te-deum/images/ui/femme_gauche.webp" class="silhouette-combat-picture" /> <img src="systems/fvtt-te-deum/images/ui/femme_gauche.webp" class="silhouette-combat-picture" />
<div class="silhouette-combat-space"></div> <div class="silhouette-combat-space"></div>
<img src="/systems/fvtt-te-deum/images/ui/homme_droit.webp" class="silhouette-combat-picture" /> <img src="systems/fvtt-te-deum/images/ui/homme_droit.webp" class="silhouette-combat-picture" />
{{#each combat as |loc key|}} {{#each combat as |loc key|}}
<div class="silhouette-combat-block" style="top:{{loc.coord.top}}px;left:{{loc.coord.left}}px;"> <div class="silhouette-combat-block" style="top:{{loc.coord.top}}px;left:{{loc.coord.left}}px;">
@ -358,7 +375,7 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{equip.img}}" /></a> src="{{equip.img}}" /></a>
<span class="item-name-label">{{equip.name}}</span> <span class="item-name-label">{{equip.name}}</span>
<span class="item-field-label-medium">{{equip.system.prix}} {{equip.system.monnaie}}</span> <span class="item-field-label-medium">{{equip.system.prix}} {{monnaie equip.system.monnaie}}</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
@ -367,7 +384,39 @@
</div> </div>
</li> </li>
{{/each}} {{/each}}
</ul> </ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long">
<h3><label class="item-field-label-long">Simples</label></h3>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">Prix</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="simple" title="Créer une simple"><i
class="fas fa-plus"></i></a>
</div>
</li>
{{#each simples as |simple key|}}
<li class="item list-item flexrow list-item-shadow item-id" data-item-id="{{simple._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{simple.img}}" /></a>
<span class="item-name-label">{{simple.name}}</span>
<span class="item-field-label-medium">{{simple.system.prix}} {{monnaie simple.system.monnaie}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Editer une simple"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Supprimer une simple"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div> </div>
{{!-- Biography Tab --}} {{!-- Biography Tab --}}
@ -392,6 +441,11 @@
<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">
<label class="item-name-label-medium">Date de Naissance</label>
<input type="text" class="" name="system.datenaissance" value="{{system.datenaissance}}"
data-dtype="String" />
</li>
</ul> </ul>
</div> </div>
<div> <div>

View File

@ -22,7 +22,7 @@
<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}}: {{competence.system.score}} </li> <li>{{competence.name}}: {{compScore}} </li>
{{/if}} {{/if}}
{{#if bonusMalus}} {{#if bonusMalus}}
<li>Bonus/Malus: {{bonusMalus}} </li> <li>Bonus/Malus: {{bonusMalus}} </li>
@ -66,7 +66,7 @@
{{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><strong class="chat-result-failure">Echec critique ! 1 XP gagné en {{carac.name}}.</strong> </li>
{{/if}} {{/if}}
{{/if}} {{/if}}

View File

@ -15,7 +15,7 @@
{{#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}} ({{competence.system.score}})</span> <span class="roll-dialog-label">{{competence.name}} ({{compScore}})</span>
</div> </div>
{{/if}} {{/if}}

View File

@ -12,20 +12,37 @@
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
{{> systems/fvtt-te-deum/templates/items/partial-item-description.hbs}} <div class="tab description" data-group="primary" data-tab="description">
<div class="grace-texte">
<strong>Transmission</strong> : {{system.transmission}}
</div>
<div class="grace-texte">
<strong>Symptômes</strong> : {{system.symptomes}}
</div>
<div class="grace-texte">
<strong>Complications</strong> : {{system.complications}}
</div>
<hr>
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
<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">Transmission</h4> <h4 class="item-name-label-long">Transmission</h4>
<textarea name="system.transmission" data-dtype="String"> <textarea name="system.transmission" rows="6" data-dtype="String">
{{{system.transmission}}} {{{system.transmission}}}
</textarea> </textarea>
<h4 class="item-name-label-long">Symptômes</h4> <h4 class="item-name-label-long">Symptômes</h4>
<textarea name="system.symptomes" data-dtype="String"> <textarea name="system.symptomes" rows="6" data-dtype="String">
{{{system.symptomes}}} {{{system.symptomes}}}
</textarea> </textarea>
<h4 class="item-name-label-long">Complications</h4>
<textarea name="system.complications" rows="6" data-dtype="String">
{{{system.complications}}}
</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>

View File

@ -12,17 +12,26 @@
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
{{> systems/fvtt-te-deum/templates/items/partial-item-description.hbs}} <div class="tab description" data-group="primary" data-tab="description">
<div class="grace-texte">
<strong>Vertus médicinales</strong> : {{system.vertus}}
</div>
<div class="grace-texte">
<strong>Toxicité</strong> : {{system.toxicite}}
</div>
<hr>
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
<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" 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" data-dtype="String"> <textarea name="system.toxicite" rows="6" data-dtype="String">
{{{system.toxicite}}} {{{system.toxicite}}}
</textarea> </textarea>