Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
631eb280ca | |||
88ca98945f | |||
edfb2105d3 | |||
84cc59c57d | |||
e9c0fbd818 | |||
aaabb7ed75 | |||
fee7a3a9fb | |||
31517030f6 | |||
c5cbf2a6d1 | |||
a30f813d94 | |||
090f6be601 | |||
60db1f65e4 | |||
d532765d2b | |||
b6016742ae | |||
761f95d6d9 | |||
c24f4fe502 | |||
caedcf5e21 | |||
fe0814e498 | |||
544f9f467a | |||
ce5771f930 |
@ -27,7 +27,7 @@ jobs:
|
||||
env:
|
||||
version: ${{steps.get_version.outputs.version-without-v}}
|
||||
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
|
||||
|
||||
# Create a zip file with all files required by the module to add to the release
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Système Foundry pour Te Deum pour un massacre (French RPG, Open Sesam Games, Official)
|
||||
# Système Foundry pour Te Deum pour un Massacre (French RPG, Open Sesame Games, Official)
|
||||
|
||||
This is a base game system with functionnal character sheets for the game Te Deum pour un massacre.
|
||||
|
||||
@ -6,6 +6,11 @@ This is a base game system with functionnal character sheets for the game Te Deu
|
||||
|
||||
- Original code realised by Uberwald (https://www.uberwald.me/)
|
||||
|
||||
Snapshot of the system :
|
||||
|
||||

|
||||
|
||||
|
||||
# Copyright mentions
|
||||
|
||||
Copyright 2025 Open Sesame Games
|
||||
|
25
changelog.md
25
changelog.md
@ -0,0 +1,25 @@
|
||||
# 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
|
||||
|
||||
- Creation de PNJ OK
|
||||
|
||||
# 12.0.20
|
||||
|
||||
- Corrections sur la création de perso
|
||||
|
||||
# 12.0.19
|
||||
|
||||
- Initial release !
|
BIN
images/icons/appliquer-degats.webp
Normal file
BIN
images/icons/appliquer-degats.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
@ -6,7 +6,7 @@
|
||||
import { TeDeumUtility } from "../common/tedeum-utility.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class TeDeumActorPJSheet extends ActorSheet {
|
||||
export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
@ -42,6 +42,7 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
providence: this.actor.prepareProvidence(),
|
||||
arbreCompetences: this.actor.prepareArbreCompetences(),
|
||||
equipements: this.actor.getEquipements(),
|
||||
simples: this.actor.getSimples(),
|
||||
armures: this.actor.getArmures(),
|
||||
graces: this.actor.getGraces(),
|
||||
blessures: this.actor.getBlessures(),
|
||||
@ -55,8 +56,10 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
nbArmuresLourdes: this.actor.getNbArmuresLourdesActuel(),
|
||||
santeModifier: this.actor.getSanteModifier(),
|
||||
educations: this.actor.getEducations(),
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
|
||||
equipmentfree: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.equipmentfree, { async: true }),
|
||||
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }),
|
||||
histoire: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.histoire, { async: true }),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@ -76,10 +79,10 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
|
||||
// Everything below here is only needed if the sheet is editable
|
||||
if (!this.options.editable) return;
|
||||
|
||||
|
||||
html.bind("keydown", function(e) { // Ignore Enter in actores sheet
|
||||
if (e.keyCode === 13) return false;
|
||||
});
|
||||
});
|
||||
|
||||
// Update Inventory Item
|
||||
html.find('.item-edit').click(ev => {
|
||||
@ -95,16 +98,21 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
})
|
||||
html.find('.item-add').click(ev => {
|
||||
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 => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let actorId = li.data("actor-id");
|
||||
let actor = game.actors.get( actorId );
|
||||
actor.sheet.render(true);
|
||||
});
|
||||
|
||||
|
||||
html.find('.subactor-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
let actorId = li.data("actor-id");
|
||||
@ -122,7 +130,7 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
html.find('.roll-competence').click((event) => {
|
||||
let compId = $(event.currentTarget).data("comp-id")
|
||||
this.actor.rollCompetence(compId)
|
||||
});
|
||||
});
|
||||
html.find('.roll-arme').click((event) => {
|
||||
const armeId = $(event.currentTarget).data("arme-id")
|
||||
this.actor.rollArme(armeId)
|
||||
@ -131,24 +139,24 @@ export class TeDeumActorPJSheet extends ActorSheet {
|
||||
const armeId = $(event.currentTarget).data("arme-id")
|
||||
this.actor.rollDegatsArme(armeId)
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
html.find('.lock-unlock-sheet').click((event) => {
|
||||
this.options.editScore = !this.options.editScore;
|
||||
this.render(true);
|
||||
});
|
||||
});
|
||||
html.find('.item-equip').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.equipItem( li.data("item-id") );
|
||||
this.render(true);
|
||||
this.render(true);
|
||||
});
|
||||
html.find('.update-field').change(ev => {
|
||||
const fieldName = $(ev.currentTarget).data("field-name");
|
||||
let value = Number(ev.currentTarget.value);
|
||||
this.actor.update( { [`${fieldName}`]: value } );
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
setPosition(options = {}) {
|
||||
|
@ -14,8 +14,8 @@ export class TeDeumActor extends Actor {
|
||||
/**
|
||||
* Override the create() function to provide additional SoS functionality.
|
||||
*
|
||||
* This overrided create() function adds initial items
|
||||
* Namely: Basic skills, money,
|
||||
* This overrided create() function adds initial items
|
||||
* Namely: Basic skills, money,
|
||||
*
|
||||
* @param {Object} data Barebones actor data which this function adds onto.
|
||||
* @param {Object} options (Unused) Additional options which customize the creation workflow.
|
||||
@ -34,7 +34,7 @@ export class TeDeumActor extends Actor {
|
||||
return actor;
|
||||
}
|
||||
|
||||
if (data.type == 'pj') {
|
||||
if (data.type == 'pj' || data.type == 'pnj') {
|
||||
const skills = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences")
|
||||
data.items = data.items || []
|
||||
for (let skill of skills) {
|
||||
@ -65,6 +65,14 @@ export class TeDeumActor extends Actor {
|
||||
super._preUpdate(changed, options, user);
|
||||
}
|
||||
|
||||
getCompetenceScore(compName) {
|
||||
let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase())
|
||||
if (competence) {
|
||||
return competence.system.score
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_onUpdate(changed, options, userId) {
|
||||
let updates = []
|
||||
@ -119,8 +127,10 @@ export class TeDeumActor extends Actor {
|
||||
if (updates.length > 0) {
|
||||
this.updateEmbeddedDocuments('Item', updates)
|
||||
}
|
||||
|
||||
super._onUpdate(changed, options, userId);
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _preCreate(data, options, user) {
|
||||
await super._preCreate(data, options, user);
|
||||
@ -190,6 +200,11 @@ export class TeDeumActor extends Actor {
|
||||
TeDeumUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
getSimples() {
|
||||
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'simple') || [])
|
||||
TeDeumUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
getArmures() {
|
||||
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'armure') || [])
|
||||
TeDeumUtility.sortArrayObjectsByName(comp)
|
||||
@ -267,7 +282,7 @@ export class TeDeumActor extends Actor {
|
||||
for (let bId in game.system.tedeum.config.blessures) {
|
||||
let blessure = game.system.tedeum.config.blessures[bId]
|
||||
if (diff >= blessure.degatsMin && diff <= blessure.degatsMax) {
|
||||
// Create a new blessure object
|
||||
// Create a new blessure object
|
||||
let blessureObj = {
|
||||
name: blessure.label,
|
||||
type: "blessure",
|
||||
@ -295,7 +310,11 @@ export class TeDeumActor extends Actor {
|
||||
c.key = key
|
||||
c.name = game.system.tedeum.config.caracteristiques[key].label
|
||||
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.negativeDice = game.system.tedeum.config.descriptionValeur[c.value].negativeDice
|
||||
}
|
||||
@ -314,7 +333,11 @@ export class TeDeumActor extends Actor {
|
||||
prepareProvidence() {
|
||||
let providence = foundry.utils.deepClone(this.system.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.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
|
||||
@ -352,11 +375,13 @@ export class TeDeumActor extends Actor {
|
||||
providence.value = Math.min(Math.max(providence.value + value, 0), 6)
|
||||
this.update({ "system.providence": providence })
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
modifyXP(key, value) {
|
||||
async modifyXP(key, value) {
|
||||
let xp = this.system.caracteristiques[key].experience
|
||||
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)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -622,7 +647,8 @@ export class TeDeumActor extends Actor {
|
||||
|
||||
// Setup competence + carac
|
||||
if (!compName) {
|
||||
compName = weapon.system.competence
|
||||
let compIdx = weapon.system.competence
|
||||
compName = game.system.tedeum.config.armeCompetences[compIdx]?.label
|
||||
}
|
||||
let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase())
|
||||
if (competence) {
|
||||
|
@ -11,6 +11,7 @@ export class TeDeumCharacterCreator {
|
||||
this.religion = undefined
|
||||
this.caracBonus = {}
|
||||
this.competenceBonus = {}
|
||||
this.suiviReponses = []
|
||||
this.competences = TeDeumUtility.getCompetencesForDropDown()
|
||||
|
||||
for (let k in game.system.tedeum.config.caracteristiques) {
|
||||
@ -68,7 +69,7 @@ export class TeDeumCharacterCreator {
|
||||
|
||||
/*--------------------------------------------*/
|
||||
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({
|
||||
window: { title: context.title },
|
||||
classes: ["fvtt-te-deum"],
|
||||
@ -126,7 +127,7 @@ export class TeDeumCharacterCreator {
|
||||
context.competences = {}
|
||||
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({
|
||||
window: { title: context.title },
|
||||
classes: ["fvtt-te-deum"],
|
||||
@ -155,7 +156,7 @@ export class TeDeumCharacterCreator {
|
||||
// Get the responseKey data
|
||||
let responseKey = $(event.target).data("response-key")
|
||||
let compName = event.target.value
|
||||
console.log("Questionnaire Change", responseKey, compName)
|
||||
console.log("Questionnaire Change", responseKey, compName)
|
||||
context.competences[responseKey] = compName.toLowerCase()
|
||||
})
|
||||
}
|
||||
@ -168,6 +169,8 @@ export class TeDeumCharacterCreator {
|
||||
let selectedResponse = question.reponses[context.responseKey]
|
||||
let compName = context.competences[context.responseKey] || selectedResponse.compName
|
||||
this.increaseCompetence(compName)
|
||||
|
||||
this.suiviReponses.push({ etape: stage.name, question: question.question, reponse: selectedResponse.reponse, compName: compName })
|
||||
}
|
||||
}
|
||||
|
||||
@ -189,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({
|
||||
window: { title: context.title },
|
||||
classes: ["fvtt-te-deum"],
|
||||
@ -233,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({
|
||||
window: { title: context.title },
|
||||
classes: ["fvtt-te-deum"],
|
||||
@ -280,7 +283,7 @@ export class TeDeumCharacterCreator {
|
||||
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({
|
||||
window: { title: context.title },
|
||||
classes: ["fvtt-te-deum"],
|
||||
@ -322,7 +325,7 @@ export class TeDeumCharacterCreator {
|
||||
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 choiceResult = await foundry.applications.api.DialogV2.wait({
|
||||
window: { title: context.title },
|
||||
@ -371,6 +374,7 @@ export class TeDeumCharacterCreator {
|
||||
title: "Création de personnage - La Pouponnière",
|
||||
subtitle: "Choix de la Pouponnière",
|
||||
label: "Valider le choix de la Pouponnière",
|
||||
hasGenre: false,
|
||||
choices: pouponniereItems,
|
||||
caracBonus: this.caracBonus,
|
||||
competenceBonus: this.competenceBonus
|
||||
@ -400,11 +404,12 @@ export class TeDeumCharacterCreator {
|
||||
/*--------------------------------------------*/
|
||||
async renderPetitsGrimauds(stage) {
|
||||
// Filter available pouponniere from origineSociale
|
||||
let grimaudsItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible)
|
||||
let grimaudsItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible && (item.system.genre === this.sexe || item.system.genre === "Mixte"))
|
||||
|
||||
let context = {
|
||||
title: "Les Petits Grimauds",
|
||||
label: "Valider le choix des Petits Grimauds",
|
||||
hasGenre: true,
|
||||
choices: grimaudsItems,
|
||||
caracBonus: this.caracBonus,
|
||||
competenceBonus: this.competenceBonus
|
||||
@ -434,12 +439,13 @@ export class TeDeumCharacterCreator {
|
||||
/*--------------------------------------------*/
|
||||
async renderRosesDeLaVie(stage) {
|
||||
// Filter available pouponniere from origineSociale
|
||||
let rosesItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible)
|
||||
let rosesItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible && (item.system.genre === this.sexe || item.system.genre === "Mixte"))
|
||||
|
||||
let context = {
|
||||
title: "Création de personnage - Les Roses de la Vie",
|
||||
label: "Valider le choix des Roses de la Vie",
|
||||
choices: rosesItems,
|
||||
hasGenre: true,
|
||||
caracBonus: this.caracBonus,
|
||||
competenceBonus: this.competenceBonus
|
||||
|
||||
@ -485,6 +491,7 @@ export class TeDeumCharacterCreator {
|
||||
title: "Création de personnage - L'Age Viril",
|
||||
label: "Valider le choix de l'Age Viril",
|
||||
choices: ageVirilItems,
|
||||
hasGenre: false,
|
||||
caracBonus: this.caracBonus,
|
||||
competenceBonus: this.competenceBonus
|
||||
}
|
||||
@ -538,7 +545,7 @@ export class TeDeumCharacterCreator {
|
||||
let actor = await TeDeumActor.create({name: "Nouveau personnage", type: "pj"})
|
||||
let updates = {}
|
||||
for (let key in this.caracBonus) {
|
||||
updates[`system.caracteristiques.${key}.value`] = Number(this.caracBonus[key].value)+1
|
||||
updates[`system.caracteristiques.${key}.value`] = Number(this.caracBonus[key].value)+1
|
||||
}
|
||||
updates['system.genre'] = this.sexe
|
||||
updates['system.religion'] = TeDeumUtility.upperFirst(this.religion)
|
||||
@ -546,7 +553,7 @@ export class TeDeumCharacterCreator {
|
||||
updates['system.equipmentfree'] = this.ageViril.system.trousseau
|
||||
actor.update( updates);
|
||||
|
||||
// Process competences : increase know skills
|
||||
// Process competences : increase know skills
|
||||
let updateComp = []
|
||||
let toAdd = []
|
||||
for (let compName in this.competenceBonus) {
|
||||
@ -555,13 +562,13 @@ export class TeDeumCharacterCreator {
|
||||
updateComp.push({ _id: comp._id, "system.score": this.competenceBonus[compName].value })
|
||||
} else {
|
||||
toAdd.push( compName)
|
||||
}
|
||||
}
|
||||
}
|
||||
actor.updateEmbeddedDocuments("Item", updateComp)
|
||||
|
||||
// Process adding skills
|
||||
|
||||
// Process adding skills
|
||||
let compendiumSkill = TeDeumUtility.getCompetences()
|
||||
let compToAdd = [ this.pouponniere, this.grimauds, this.roses, this.ageViril ]
|
||||
let compToAdd = [ this.pouponniere, this.grimauds, this.roses, this.ageViril ]
|
||||
for (let compName of toAdd) {
|
||||
let comp = compendiumSkill.find( i => i.name.toLowerCase() === compName.toLowerCase())
|
||||
comp.system.score = this.competenceBonus[compName].value
|
||||
@ -573,9 +580,23 @@ export class TeDeumCharacterCreator {
|
||||
newArgent /= this.ageViril.system.cagnotteDivider
|
||||
await actor.update({ [`system.fortune.${this.origineSociale.cagnotteUnit}`]: newArgent})
|
||||
|
||||
let histoire = ""
|
||||
for (let reponse of this.suiviReponses) {
|
||||
histoire += `<p>${reponse.question}<br>${reponse.reponse} (${reponse.compName})</p>`
|
||||
}
|
||||
await actor.update({ "system.histoire": histoire})
|
||||
actor.render(true)
|
||||
|
||||
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-finished.hbs", context)
|
||||
context.pointsCompetence = {
|
||||
"savoir": { score: actor.getCompetenceScore("Mémoriser"), label: "Savoir" },
|
||||
"sensibilite": { score: actor.getCompetenceScore("Perception"), label: "Sensibilité" },
|
||||
"entregent": { score: actor.getCompetenceScore("Charme"), label: "Entregent" },
|
||||
"puissance": { score: actor.getCompetenceScore("Effort"), label: "Puissance" },
|
||||
"complexion": { score: actor.getCompetenceScore("Endurance"), label: "Complexion" },
|
||||
"adresse": { score: actor.getCompetenceScore("Initiative"), label: "Adresse" },
|
||||
}
|
||||
|
||||
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-finished.hbs", context)
|
||||
const label = "Terminer"
|
||||
const choiceResult = await foundry.applications.api.DialogV2.wait({
|
||||
window: { title: context.title },
|
||||
|
@ -5,7 +5,7 @@ export class TeDeumCombat extends Combat {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
|
||||
console.log("Roll INIT !")
|
||||
//console.log("Roll INIT !")
|
||||
ids = typeof ids === "string" ? [ids] : ids;
|
||||
for (let cId of ids) {
|
||||
const c = this.combatants.get(cId);
|
||||
|
@ -57,7 +57,7 @@ export const TEDEUM_CONFIG = {
|
||||
|
||||
descriptionValeurOdd: {
|
||||
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" },
|
||||
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" },
|
||||
@ -71,12 +71,20 @@ export const TEDEUM_CONFIG = {
|
||||
},
|
||||
descriptionValeur: {
|
||||
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" },
|
||||
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" },
|
||||
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"],
|
||||
degatsArmure: {
|
||||
sansarmure: { label: "Sans armure" },
|
||||
@ -117,6 +125,11 @@ export const TEDEUM_CONFIG = {
|
||||
melee: { label: "Mêlée", value: "melee" },
|
||||
tir: { label: "Tir", value: "tir" }
|
||||
},
|
||||
genreEducation: {
|
||||
"homme": { label: "Homme", value: "Homme" },
|
||||
"femme": { label: "Femme", value: "Femme" },
|
||||
"mixte": { label: "Mixte", value: "Mixte" }
|
||||
},
|
||||
armeAllonges: {
|
||||
courte: { label: "Courte", value: "courte" },
|
||||
moyenne: { label: "Moyenne", value: "moyenne" },
|
||||
@ -152,11 +165,16 @@ export const TEDEUM_CONFIG = {
|
||||
sol: { label: "Sols", id: "sol", value: 10 },
|
||||
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: {
|
||||
pouponniere: { label: "La Pouponnière", value: "pouponniere", agemin: 0, agemax: 6, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasDebouches: false, hasMultiplier: false, canCompetencesOpt: false },
|
||||
petitsgrimauds: { label: "La classe des Petits Grimauds", value: "petitsgrimauds", agemin: 7, agemax: 12, nbCompetences: 10, nbCaracteristiques: 3, hasDebouches: false, hasQuestionnaire: true, hasMultiplier: false, canCompetencesOpt: false },
|
||||
rosevie: { label: "Les Roses de la Vie", value: "rosevie", agemin: 13, agemax: 16, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasDebouches: true, hasMultiplier: false, canCompetencesOpt: false },
|
||||
ageviril: { label: "L'Age Viril", value: "ageviril", agemin: 17, agemax: 17, nbCompetences: 9, nbCaracteristiques: 2, hasQuestionnaire: false, hasDebouches: false, hasMultiplier: true, canCompetencesOpt: true },
|
||||
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 },
|
||||
rosevie: { label: "Les Roses de la Vie", value: "rosevie", agemin: 13, agemax: 16, nbCompetences: 2, nbCaracteristiques: 3, hasGenre: true, hasQuestionnaire: true, hasDebouches: true, hasMultiplier: false, canCompetencesOpt: false },
|
||||
ageviril: { label: "L'Age Viril", value: "ageviril", agemin: 17, agemax: 17, nbCompetences: 9, nbCaracteristiques: 2, hasGenre: false, hasQuestionnaire: false, hasDebouches: false, hasMultiplier: true, canCompetencesOpt: true },
|
||||
},
|
||||
origineSociale: {
|
||||
noblesseepee: { label: "Noblesse d'épée", id: "noblesseepee", caracteristiques: { entregent: 1, puissance: 1 }, cagnotte: 10, cagnotteUnit: "livres", value: 1 },
|
||||
|
@ -24,7 +24,7 @@ export class TeDeumUtility {
|
||||
let cr = new game.system.tedeum.TeDeumCharacterCreator();
|
||||
cr.init()
|
||||
})
|
||||
html.find('.header-actions').after(button)
|
||||
$(html).find('.header-actions').after(button)
|
||||
}
|
||||
})
|
||||
//Hooks.on("getChatLogEntryContext", (html, options) => TeDeumUtility.chatMenuManager(html, options));
|
||||
@ -92,6 +92,13 @@ export class TeDeumUtility {
|
||||
Handlebars.registerHelper('isGM', function () {
|
||||
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
|
||||
const competences = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences")
|
||||
@ -160,6 +167,7 @@ export class TeDeumUtility {
|
||||
formData.hasMultiplier = etape.hasMultiplier;
|
||||
formData.hasDebouches = etape.hasDebouches;
|
||||
formData.canCompetencesOpt = etape.canCompetencesOpt;
|
||||
formData.hasGenre = etape.hasGenre;
|
||||
}
|
||||
|
||||
/*-------------------------------------------- */
|
||||
@ -200,11 +208,13 @@ export class TeDeumUtility {
|
||||
ui.notifications.info("Opposition démarrée avec " + rollData.alias);
|
||||
} else {
|
||||
// Perform the opposition
|
||||
let isAttackWinner = true
|
||||
let rWinner = this.currentOpposition
|
||||
let rLooser = rollData
|
||||
if (rWinner.total < rLooser.total) {
|
||||
rWinner = rollData
|
||||
rLooser = this.currentOpposition
|
||||
isAttackWinner = false
|
||||
}
|
||||
this.currentOpposition = undefined // Reset opposition
|
||||
let oppositionData = {
|
||||
@ -212,17 +222,35 @@ export class TeDeumUtility {
|
||||
looser: rLooser
|
||||
}
|
||||
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)
|
||||
|
||||
// Si le gagnant est l'attaquant, appliquer les dégats sur la victime
|
||||
if ( isAttackWinner && rWinner.isSuccess && rWinner.mode == "arme" && rWinner.arme?.system.typeArme == "melee" && rWinner.defenderTokenId) {
|
||||
this.appliquerDegats(rWinner)
|
||||
}
|
||||
|
||||
console.log("Rolldata result", rollData)
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */ /* -------------------------------------------- */
|
||||
static async appliquerDegats(rollData) {
|
||||
await this.processAttaqueMelee(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é")
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */ /* -------------------------------------------- */
|
||||
static async chatListeners(html) {
|
||||
|
||||
html.on("click", '.chat-command-button', event => {
|
||||
$(html).on("click", '.chat-command-opposition', event => {
|
||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "te-deum-rolldata")
|
||||
@ -230,6 +258,14 @@ export class TeDeumUtility {
|
||||
TeDeumUtility.manageOpposition(rollData, messageId)
|
||||
}
|
||||
})
|
||||
$(html).on("click", '.chat-command-appliquer-degats', event => {
|
||||
let messageId = TeDeumUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "te-deum-rolldata")
|
||||
if (rollData) {
|
||||
TeDeumUtility.appliquerDegats(rollData, messageId)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -241,7 +277,7 @@ export class TeDeumUtility {
|
||||
'systems/fvtt-te-deum/templates/items/partial-item-description.hbs',
|
||||
'systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs'
|
||||
]
|
||||
return loadTemplates(templatePaths);
|
||||
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -318,7 +354,7 @@ export class TeDeumUtility {
|
||||
let rollData = msg.data.rollData
|
||||
if (game.user.isGM) {
|
||||
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
|
||||
})
|
||||
chatMsg.setFlag("world", "tedeum-rolldata", rollData)
|
||||
@ -408,10 +444,11 @@ export class TeDeumUtility {
|
||||
}
|
||||
}
|
||||
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"))
|
||||
rollData.critiqueRoll = foundry.utils.duplicate(critiqueRoll)
|
||||
if (critiqueRoll.total > rollData.competence.score) {
|
||||
if (critiqueRoll.total > rollData.competence.system.score) {
|
||||
rollData.isEchecCritique = true
|
||||
}
|
||||
}
|
||||
@ -465,18 +502,13 @@ export class TeDeumUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async processAttaqueMelee(rollData) {
|
||||
if (rollData.arme?.system.typeArme != "melee") {
|
||||
return
|
||||
}
|
||||
if (rollData.isSuccess) {
|
||||
await this.getLocalisation(rollData)
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
let bDegats = actor.getBonusDegats()
|
||||
let degatsRoll = await new Roll(rollData.arme.system.degats + "+" + bDegats.value).roll()
|
||||
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
||||
rollData.degats = degatsRoll.total
|
||||
}
|
||||
await this.getLocalisation(rollData)
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
let bDegats = actor.getBonusDegats()
|
||||
let degatsRoll = await new Roll(rollData.arme.system.degats + "+" + bDegats.value).roll()
|
||||
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
||||
rollData.degats = degatsRoll.total
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -489,7 +521,7 @@ export class TeDeumUtility {
|
||||
await this.getLocalisation(rollData)
|
||||
// Now the degats
|
||||
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.degats = degatsRoll.total
|
||||
}
|
||||
@ -519,10 +551,9 @@ export class TeDeumUtility {
|
||||
await this.computeResults(rollData)
|
||||
|
||||
await this.processAttaqueDistance(rollData)
|
||||
await this.processAttaqueMelee(rollData)
|
||||
|
||||
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)
|
||||
console.log("Rolldata result", rollData)
|
||||
@ -531,19 +562,10 @@ export class TeDeumUtility {
|
||||
if (rollData.enableProvidence) {
|
||||
actor.modifyProvidence(-1)
|
||||
}
|
||||
// Manage XP
|
||||
// Manage XP
|
||||
if (rollData.isReussiteCritique || rollData.isEchecCritique) {
|
||||
actor.modifyXP(rollData.carac.key, 1)
|
||||
}
|
||||
|
||||
// gestion degats automatique
|
||||
if (rollData.arme && rollData.defenderTokenId) {
|
||||
let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
|
||||
if (defenderToken) {
|
||||
let actor = defenderToken.actor
|
||||
await actor.appliquerDegats(rollData)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -15,6 +15,8 @@ export class TeDeumEducationSchema extends foundry.abstract.TypeDataModel {
|
||||
}, {})
|
||||
);
|
||||
|
||||
schema.genre = new fields.StringField({required: true, initial: "Homme", choices: ["masculin", "mixte", "Homme", "Femme", "Mixte"]});
|
||||
|
||||
schema.nbChoixCarac = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 });
|
||||
schema.caracteristiques = new fields.SchemaField(Array.fromRange(3, 1).reduce((caracs, i) => {
|
||||
caracs[`carac${i}`] = new fields.SchemaField({
|
||||
|
@ -13,4 +13,10 @@ export class TeDeumEquipementSchema extends foundry.abstract.TypeDataModel {
|
||||
|
||||
return schema;
|
||||
}
|
||||
|
||||
get monnaieLabel() {
|
||||
console.log("monnaieLabel", this.monnaie,game.system.tedeum.config.monnaieUnit)
|
||||
return game.system.tedeum.config.monnaieUnit[String(this.monnaie)]?.label;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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.fievre = new fields.StringField({required: true, choices: ["aucune", "legere", "forte", "grave"], initial: "aucune"});
|
||||
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 });
|
||||
|
||||
|
@ -26,32 +26,35 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
|
||||
obj[loc.id] = new fields.SchemaField({
|
||||
armure: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 }),
|
||||
touche: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 }),
|
||||
blessures: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 })
|
||||
blessures: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 })
|
||||
});
|
||||
return obj;
|
||||
}, {})
|
||||
);
|
||||
|
||||
schema.fortune = new fields.SchemaField({
|
||||
"ecus": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
"ecus": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
"livres": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) ,
|
||||
"sous": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) ,
|
||||
"deniers": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
"deniers": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
});
|
||||
|
||||
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.histoire = 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.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.statutocial = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
schema.charges = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
schema.religion = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
schema.lieunaissance = new fields.StringField({ required: false, blank: true, initial: undefined });
|
||||
|
||||
schema.age = new fields.StringField({ required: false, blank: true, initial: "" });
|
||||
schema.datenaissance = new fields.StringField({ required: false, blank: true, initial: "" });
|
||||
schema.statutocial = new fields.StringField({ required: false, blank: true, initial: "" });
|
||||
schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: "" });
|
||||
schema.charges = new fields.StringField({ required: false, blank: true, initial: "" });
|
||||
schema.religion = new fields.StringField({ required: false, blank: true, initial: "" });
|
||||
schema.lieunaissance = new fields.StringField({ required: false, blank: true, initial: "" });
|
||||
|
||||
return schema;
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import { TeDeumUtility } from "../common/tedeum-utility.js";
|
||||
* Extend the basic ItemSheet with some very simple modifications
|
||||
* @extends {ItemSheet}
|
||||
*/
|
||||
export class TeDeumItemSheet extends ItemSheet {
|
||||
export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
@ -49,11 +49,11 @@ export class TeDeumItemSheet extends ItemSheet {
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
|
||||
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }),
|
||||
isGM: game.user.isGM
|
||||
}
|
||||
|
||||
|
||||
if (this.object.type == "education") {
|
||||
TeDeumUtility.prepareEducationContent(formData);
|
||||
}
|
||||
@ -103,7 +103,7 @@ export class TeDeumItemSheet extends ItemSheet {
|
||||
let levelIndex = Number($(ev.currentTarget).parents(".item").data("level-index"))
|
||||
let choiceIndex = Number($(ev.currentTarget).parents(".item").data("choice-index"))
|
||||
let featureId = $(ev.currentTarget).parents(".item").data("feature-id")
|
||||
|
||||
|
||||
let itemData = this.object.system.levels[levelIndex].choices[choiceIndex].features[featureId]
|
||||
|
||||
if (itemData.name != 'None') {
|
||||
|
@ -51,7 +51,7 @@ Hooks.once("init", async function () {
|
||||
// preload handlebars templates
|
||||
TeDeumUtility.preloadHandlebarsTemplates();
|
||||
|
||||
// Set an initiative formula for the system
|
||||
// Set an initiative formula for the system
|
||||
CONFIG.Combat.initiative = {
|
||||
formula: "1d6",
|
||||
decimals: 1
|
||||
@ -79,17 +79,17 @@ Hooks.once("init", async function () {
|
||||
blessure: TeDeumBlessureSchema,
|
||||
maladie: TeDeumMaladieSchema,
|
||||
};
|
||||
|
||||
|
||||
console.log("TeDeum RPG | Ready");
|
||||
|
||||
Actors.unregisterSheet("core", ActorSheet);
|
||||
Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pj"], makeDefault: true });
|
||||
Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pnj"], makeDefault: true });
|
||||
|
||||
Items.unregisterSheet("core", ItemSheet);
|
||||
Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { makeDefault: true });
|
||||
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pj"], makeDefault: true });
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pnj"], makeDefault: true });
|
||||
|
||||
TeDeumUtility.init()
|
||||
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { makeDefault: true });
|
||||
|
||||
TeDeumUtility.init()
|
||||
});
|
||||
|
||||
|
||||
@ -106,7 +106,7 @@ Hooks.once("ready", function () {
|
||||
user: game.user._id
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
||||
console.log("ClassCounter loaded", moduleCounter)
|
||||
moduleCounter.ClassCounter.registerUsageCount()
|
||||
@ -134,4 +134,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
|
Binary file not shown.
BIN
packs/aides/000103.ldb
Normal file
BIN
packs/aides/000103.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000014
|
||||
MANIFEST-000099
|
||||
|
@ -1,15 +1,14 @@
|
||||
2025/02/21-17:37:17.636121 7f5931ffb6c0 Recovering log #12
|
||||
2025/02/21-17:37:17.694242 7f5931ffb6c0 Delete type=3 #10
|
||||
2025/02/21-17:37:17.694432 7f5931ffb6c0 Delete type=0 #12
|
||||
2025/02/21-17:40:09.864856 7f5693fff6c0 Level-0 table #17: started
|
||||
2025/02/21-17:40:09.868441 7f5693fff6c0 Level-0 table #17: 6588 bytes OK
|
||||
2025/02/21-17:40:09.875550 7f5693fff6c0 Delete type=0 #15
|
||||
2025/02/21-17:40:09.886661 7f5693fff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
2025/02/21-17:40:09.893774 7f5693fff6c0 Manual compaction at level-1 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 15 : 1
|
||||
2025/02/21-17:40:09.893799 7f5693fff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/02/21-17:40:09.898306 7f5693fff6c0 Generated table #18@1: 5 keys, 3660 bytes
|
||||
2025/02/21-17:40:09.898361 7f5693fff6c0 Compacted 1@1 + 1@2 files => 3660 bytes
|
||||
2025/02/21-17:40:09.904952 7f5693fff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/02/21-17:40:09.905193 7f5693fff6c0 Delete type=2 #5
|
||||
2025/02/21-17:40:09.905447 7f5693fff6c0 Delete type=2 #17
|
||||
2025/02/21-17:40:09.923689 7f5693fff6c0 Manual compaction at level-1 from '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 15 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
2025/05/09-10:15:41.735148 7fbe907f86c0 Recovering log #97
|
||||
2025/05/09-10:15:41.791781 7fbe907f86c0 Delete type=3 #95
|
||||
2025/05/09-10:15:41.791840 7fbe907f86c0 Delete type=0 #97
|
||||
2025/05/09-10:26:09.013435 7fbe8fbff6c0 Level-0 table #102: started
|
||||
2025/05/09-10:26:09.031920 7fbe8fbff6c0 Level-0 table #102: 3728 bytes OK
|
||||
2025/05/09-10:26:09.069119 7fbe8fbff6c0 Delete type=0 #100
|
||||
2025/05/09-10:26:09.069442 7fbe8fbff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 25 : 1
|
||||
2025/05/09-10:26:09.069450 7fbe8fbff6c0 Compacting 1@0 + 1@1 files
|
||||
2025/05/09-10:26:09.093063 7fbe8fbff6c0 Generated table #103@0: 5 keys, 3728 bytes
|
||||
2025/05/09-10:26:09.093094 7fbe8fbff6c0 Compacted 1@0 + 1@1 files => 3728 bytes
|
||||
2025/05/09-10:26:09.137637 7fbe8fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/05/09-10:26:09.137778 7fbe8fbff6c0 Delete type=2 #72
|
||||
2025/05/09-10:26:09.137982 7fbe8fbff6c0 Delete type=2 #102
|
||||
2025/05/09-10:26:09.254090 7fbe8fbff6c0 Manual compaction at level-0 from '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 25 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,8 +1,7 @@
|
||||
2025/02/21-17:31:59.431540 7f5930ff96c0 Recovering log #8
|
||||
2025/02/21-17:31:59.442045 7f5930ff96c0 Delete type=3 #6
|
||||
2025/02/21-17:31:59.442169 7f5930ff96c0 Delete type=0 #8
|
||||
2025/02/21-17:36:32.701871 7f5693fff6c0 Level-0 table #13: started
|
||||
2025/02/21-17:36:32.701921 7f5693fff6c0 Level-0 table #13: 0 bytes OK
|
||||
2025/02/21-17:36:32.708271 7f5693fff6c0 Delete type=0 #11
|
||||
2025/02/21-17:36:32.718706 7f5693fff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
2025/02/21-17:36:32.732878 7f5693fff6c0 Manual compaction at level-1 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
|
||||
2025/04/20-09:24:48.041836 7fa413fff6c0 Recovering log #93
|
||||
2025/04/20-09:24:48.069770 7fa413fff6c0 Delete type=3 #91
|
||||
2025/04/20-09:24:48.069934 7fa413fff6c0 Delete type=0 #93
|
||||
2025/04/20-09:25:06.962777 7fa4127fc6c0 Level-0 table #98: started
|
||||
2025/04/20-09:25:06.962842 7fa4127fc6c0 Level-0 table #98: 0 bytes OK
|
||||
2025/04/20-09:25:06.970328 7fa4127fc6c0 Delete type=0 #96
|
||||
2025/04/20-09:25:06.988174 7fa4127fc6c0 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-000099
Normal file
BIN
packs/aides/MANIFEST-000099
Normal file
Binary file not shown.
BIN
packs/aides/lost/MANIFEST-000047
Normal file
BIN
packs/aides/lost/MANIFEST-000047
Normal file
Binary file not shown.
BIN
packs/aides/lost/MANIFEST-000054
Normal file
BIN
packs/aides/lost/MANIFEST-000054
Normal file
Binary file not shown.
BIN
packs/aides/lost/MANIFEST-000061
Normal file
BIN
packs/aides/lost/MANIFEST-000061
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/armes/000206.ldb
Normal file
BIN
packs/armes/000206.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000117
|
||||
MANIFEST-000202
|
||||
|
@ -1,7 +1,14 @@
|
||||
2025/02/21-17:37:17.195165 7f5930ff96c0 Recovering log #115
|
||||
2025/02/21-17:37:17.251788 7f5930ff96c0 Delete type=3 #113
|
||||
2025/02/21-17:37:17.251907 7f5930ff96c0 Delete type=0 #115
|
||||
2025/02/21-17:40:09.792578 7f5693fff6c0 Level-0 table #120: started
|
||||
2025/02/21-17:40:09.792658 7f5693fff6c0 Level-0 table #120: 0 bytes OK
|
||||
2025/02/21-17:40:09.799539 7f5693fff6c0 Delete type=0 #118
|
||||
2025/02/21-17:40:09.813519 7f5693fff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
||||
2025/05/09-10:15:41.297396 7fbe90ff96c0 Recovering log #200
|
||||
2025/05/09-10:15:41.362108 7fbe90ff96c0 Delete type=3 #198
|
||||
2025/05/09-10:15:41.362318 7fbe90ff96c0 Delete type=0 #200
|
||||
2025/05/09-10:26:08.357066 7fbe8fbff6c0 Level-0 table #205: started
|
||||
2025/05/09-10:26:08.362656 7fbe8fbff6c0 Level-0 table #205: 30743 bytes OK
|
||||
2025/05/09-10:26:08.375920 7fbe8fbff6c0 Delete type=0 #203
|
||||
2025/05/09-10:26:08.439160 7fbe8fbff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at '!items!wxIHkrq98eQ3cOvp' @ 73 : 1
|
||||
2025/05/09-10:26:08.439169 7fbe8fbff6c0 Compacting 1@0 + 1@1 files
|
||||
2025/05/09-10:26:08.445806 7fbe8fbff6c0 Generated table #206@0: 38 keys, 31247 bytes
|
||||
2025/05/09-10:26:08.445836 7fbe8fbff6c0 Compacted 1@0 + 1@1 files => 31247 bytes
|
||||
2025/05/09-10:26:08.458685 7fbe8fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/05/09-10:26:08.458808 7fbe8fbff6c0 Delete type=2 #197
|
||||
2025/05/09-10:26:08.458974 7fbe8fbff6c0 Delete type=2 #205
|
||||
2025/05/09-10:26:08.486140 7fbe8fbff6c0 Manual compaction at level-0 from '!items!wxIHkrq98eQ3cOvp' @ 73 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,7 @@
|
||||
2025/02/21-17:31:59.314972 7f59327fc6c0 Recovering log #111
|
||||
2025/02/21-17:31:59.325624 7f59327fc6c0 Delete type=3 #109
|
||||
2025/02/21-17:31:59.325779 7f59327fc6c0 Delete type=0 #111
|
||||
2025/02/21-17:36:32.629703 7f5693fff6c0 Level-0 table #116: started
|
||||
2025/02/21-17:36:32.629742 7f5693fff6c0 Level-0 table #116: 0 bytes OK
|
||||
2025/02/21-17:36:32.638568 7f5693fff6c0 Delete type=0 #114
|
||||
2025/02/21-17:36:32.653420 7f5693fff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
|
||||
2025/04/20-09:24:47.881295 7fa412ffd6c0 Recovering log #195
|
||||
2025/04/20-09:24:47.897306 7fa412ffd6c0 Delete type=3 #193
|
||||
2025/04/20-09:24:47.897426 7fa412ffd6c0 Delete type=0 #195
|
||||
2025/04/20-09:25:06.915266 7fa4127fc6c0 Level-0 table #201: started
|
||||
2025/04/20-09:25:06.915317 7fa4127fc6c0 Level-0 table #201: 0 bytes OK
|
||||
2025/04/20-09:25:06.922256 7fa4127fc6c0 Delete type=0 #199
|
||||
2025/04/20-09:25:06.929081 7fa4127fc6c0 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-000202
Normal file
BIN
packs/armes/MANIFEST-000202
Normal file
Binary file not shown.
0
packs/armes/lost/000165.log
Normal file
0
packs/armes/lost/000165.log
Normal file
BIN
packs/armes/lost/MANIFEST-000149
Normal file
BIN
packs/armes/lost/MANIFEST-000149
Normal file
Binary file not shown.
BIN
packs/armes/lost/MANIFEST-000156
Normal file
BIN
packs/armes/lost/MANIFEST-000156
Normal file
Binary file not shown.
BIN
packs/armes/lost/MANIFEST-000163
Normal file
BIN
packs/armes/lost/MANIFEST-000163
Normal file
Binary file not shown.
Binary file not shown.
0
packs/armures/000203.log
Normal file
0
packs/armures/000203.log
Normal file
BIN
packs/armures/000205.ldb
Normal file
BIN
packs/armures/000205.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000117
|
||||
MANIFEST-000201
|
||||
|
@ -1,7 +1,14 @@
|
||||
2025/02/21-17:37:17.256489 7f5931ffb6c0 Recovering log #115
|
||||
2025/02/21-17:37:17.318730 7f5931ffb6c0 Delete type=3 #113
|
||||
2025/02/21-17:37:17.318861 7f5931ffb6c0 Delete type=0 #115
|
||||
2025/02/21-17:40:09.806879 7f5693fff6c0 Level-0 table #120: started
|
||||
2025/02/21-17:40:09.806939 7f5693fff6c0 Level-0 table #120: 0 bytes OK
|
||||
2025/02/21-17:40:09.813255 7f5693fff6c0 Delete type=0 #118
|
||||
2025/02/21-17:40:09.813572 7f5693fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||
2025/05/09-10:15:41.365049 7fbe917fa6c0 Recovering log #199
|
||||
2025/05/09-10:15:41.456977 7fbe917fa6c0 Delete type=3 #197
|
||||
2025/05/09-10:15:41.457096 7fbe917fa6c0 Delete type=0 #199
|
||||
2025/05/09-10:26:08.314346 7fbe8fbff6c0 Level-0 table #204: started
|
||||
2025/05/09-10:26:08.321855 7fbe8fbff6c0 Level-0 table #204: 11921 bytes OK
|
||||
2025/05/09-10:26:08.334418 7fbe8fbff6c0 Delete type=0 #202
|
||||
2025/05/09-10:26:08.402084 7fbe8fbff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at '!items!ufvhWG5V8pX0qrtR' @ 54 : 1
|
||||
2025/05/09-10:26:08.402106 7fbe8fbff6c0 Compacting 1@0 + 1@1 files
|
||||
2025/05/09-10:26:08.407755 7fbe8fbff6c0 Generated table #205@0: 29 keys, 12111 bytes
|
||||
2025/05/09-10:26:08.407809 7fbe8fbff6c0 Compacted 1@0 + 1@1 files => 12111 bytes
|
||||
2025/05/09-10:26:08.419957 7fbe8fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/05/09-10:26:08.420095 7fbe8fbff6c0 Delete type=2 #174
|
||||
2025/05/09-10:26:08.420237 7fbe8fbff6c0 Delete type=2 #204
|
||||
2025/05/09-10:26:08.486117 7fbe8fbff6c0 Manual compaction at level-0 from '!items!ufvhWG5V8pX0qrtR' @ 54 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,7 @@
|
||||
2025/02/21-17:31:59.330152 7f5930ff96c0 Recovering log #111
|
||||
2025/02/21-17:31:59.341768 7f5930ff96c0 Delete type=3 #109
|
||||
2025/02/21-17:31:59.341926 7f5930ff96c0 Delete type=0 #111
|
||||
2025/02/21-17:36:32.638873 7f5693fff6c0 Level-0 table #116: started
|
||||
2025/02/21-17:36:32.638950 7f5693fff6c0 Level-0 table #116: 0 bytes OK
|
||||
2025/02/21-17:36:32.645471 7f5693fff6c0 Delete type=0 #114
|
||||
2025/02/21-17:36:32.653459 7f5693fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
|
||||
2025/04/20-09:24:47.903860 7fa413fff6c0 Recovering log #195
|
||||
2025/04/20-09:24:47.919442 7fa413fff6c0 Delete type=3 #193
|
||||
2025/04/20-09:24:47.919592 7fa413fff6c0 Delete type=0 #195
|
||||
2025/04/20-09:25:06.908159 7fa4127fc6c0 Level-0 table #200: started
|
||||
2025/04/20-09:25:06.908228 7fa4127fc6c0 Level-0 table #200: 0 bytes OK
|
||||
2025/04/20-09:25:06.915011 7fa4127fc6c0 Delete type=0 #198
|
||||
2025/04/20-09:25:06.929064 7fa4127fc6c0 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-000201
Normal file
BIN
packs/armures/MANIFEST-000201
Normal file
Binary file not shown.
0
packs/armures/lost/000147.log
Normal file
0
packs/armures/lost/000147.log
Normal file
0
packs/armures/lost/000151.log
Normal file
0
packs/armures/lost/000151.log
Normal file
0
packs/armures/lost/000158.log
Normal file
0
packs/armures/lost/000158.log
Normal file
0
packs/armures/lost/000165.log
Normal file
0
packs/armures/lost/000165.log
Normal file
BIN
packs/armures/lost/MANIFEST-000149
Normal file
BIN
packs/armures/lost/MANIFEST-000149
Normal file
Binary file not shown.
BIN
packs/armures/lost/MANIFEST-000156
Normal file
BIN
packs/armures/lost/MANIFEST-000156
Normal file
Binary file not shown.
BIN
packs/armures/lost/MANIFEST-000163
Normal file
BIN
packs/armures/lost/MANIFEST-000163
Normal file
Binary file not shown.
Binary file not shown.
0
packs/competences/000200.log
Normal file
0
packs/competences/000200.log
Normal file
BIN
packs/competences/000202.ldb
Normal file
BIN
packs/competences/000202.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000114
|
||||
MANIFEST-000198
|
||||
|
@ -1,7 +1,14 @@
|
||||
2025/02/21-17:37:17.133219 7f59327fc6c0 Recovering log #112
|
||||
2025/02/21-17:37:17.190379 7f59327fc6c0 Delete type=3 #110
|
||||
2025/02/21-17:37:17.190537 7f59327fc6c0 Delete type=0 #112
|
||||
2025/02/21-17:40:09.785663 7f5693fff6c0 Level-0 table #117: started
|
||||
2025/02/21-17:40:09.785737 7f5693fff6c0 Level-0 table #117: 0 bytes OK
|
||||
2025/02/21-17:40:09.792355 7f5693fff6c0 Delete type=0 #115
|
||||
2025/02/21-17:40:09.813482 7f5693fff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||
2025/05/09-10:15:41.212131 7fbe907f86c0 Recovering log #196
|
||||
2025/05/09-10:15:41.294357 7fbe907f86c0 Delete type=3 #194
|
||||
2025/05/09-10:15:41.294415 7fbe907f86c0 Delete type=0 #196
|
||||
2025/05/09-10:26:08.334569 7fbe8fbff6c0 Level-0 table #201: started
|
||||
2025/05/09-10:26:08.342225 7fbe8fbff6c0 Level-0 table #201: 38203 bytes OK
|
||||
2025/05/09-10:26:08.356875 7fbe8fbff6c0 Delete type=0 #199
|
||||
2025/05/09-10:26:08.420303 7fbe8fbff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at '!items!yx4k7lQHGcom99mk' @ 237 : 1
|
||||
2025/05/09-10:26:08.420310 7fbe8fbff6c0 Compacting 1@0 + 1@1 files
|
||||
2025/05/09-10:26:08.426825 7fbe8fbff6c0 Generated table #202@0: 116 keys, 38485 bytes
|
||||
2025/05/09-10:26:08.426858 7fbe8fbff6c0 Compacted 1@0 + 1@1 files => 38485 bytes
|
||||
2025/05/09-10:26:08.438808 7fbe8fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/05/09-10:26:08.438945 7fbe8fbff6c0 Delete type=2 #171
|
||||
2025/05/09-10:26:08.439090 7fbe8fbff6c0 Delete type=2 #201
|
||||
2025/05/09-10:26:08.486130 7fbe8fbff6c0 Manual compaction at level-0 from '!items!yx4k7lQHGcom99mk' @ 237 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,7 @@
|
||||
2025/02/21-17:31:59.298905 7f59317fa6c0 Recovering log #108
|
||||
2025/02/21-17:31:59.309924 7f59317fa6c0 Delete type=3 #106
|
||||
2025/02/21-17:31:59.310033 7f59317fa6c0 Delete type=0 #108
|
||||
2025/02/21-17:36:32.618180 7f5693fff6c0 Level-0 table #113: started
|
||||
2025/02/21-17:36:32.618265 7f5693fff6c0 Level-0 table #113: 0 bytes OK
|
||||
2025/02/21-17:36:32.629549 7f5693fff6c0 Delete type=0 #111
|
||||
2025/02/21-17:36:32.653376 7f5693fff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
|
||||
2025/04/20-09:24:47.857871 7fa4137fe6c0 Recovering log #192
|
||||
2025/04/20-09:24:47.873833 7fa4137fe6c0 Delete type=3 #190
|
||||
2025/04/20-09:24:47.873948 7fa4137fe6c0 Delete type=0 #192
|
||||
2025/04/20-09:25:06.901277 7fa4127fc6c0 Level-0 table #197: started
|
||||
2025/04/20-09:25:06.901384 7fa4127fc6c0 Level-0 table #197: 0 bytes OK
|
||||
2025/04/20-09:25:06.907939 7fa4127fc6c0 Delete type=0 #195
|
||||
2025/04/20-09:25:06.929038 7fa4127fc6c0 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-000198
Normal file
BIN
packs/competences/MANIFEST-000198
Normal file
Binary file not shown.
0
packs/competences/lost/000144.log
Normal file
0
packs/competences/lost/000144.log
Normal file
0
packs/competences/lost/000148.log
Normal file
0
packs/competences/lost/000148.log
Normal file
0
packs/competences/lost/000155.log
Normal file
0
packs/competences/lost/000155.log
Normal file
0
packs/competences/lost/000162.log
Normal file
0
packs/competences/lost/000162.log
Normal file
BIN
packs/competences/lost/MANIFEST-000146
Normal file
BIN
packs/competences/lost/MANIFEST-000146
Normal file
Binary file not shown.
BIN
packs/competences/lost/MANIFEST-000153
Normal file
BIN
packs/competences/lost/MANIFEST-000153
Normal file
Binary file not shown.
BIN
packs/competences/lost/MANIFEST-000160
Normal file
BIN
packs/competences/lost/MANIFEST-000160
Normal file
Binary file not shown.
0
packs/education/000212.log
Normal file
0
packs/education/000212.log
Normal file
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000122
|
||||
MANIFEST-000210
|
||||
|
@ -1,7 +1,14 @@
|
||||
2025/02/21-17:37:17.322674 7f59317fa6c0 Recovering log #120
|
||||
2025/02/21-17:37:17.380428 7f59317fa6c0 Delete type=3 #118
|
||||
2025/02/21-17:37:17.380608 7f59317fa6c0 Delete type=0 #120
|
||||
2025/02/21-17:40:09.799751 7f5693fff6c0 Level-0 table #125: started
|
||||
2025/02/21-17:40:09.799807 7f5693fff6c0 Level-0 table #125: 0 bytes OK
|
||||
2025/02/21-17:40:09.806651 7f5693fff6c0 Delete type=0 #123
|
||||
2025/02/21-17:40:09.813547 7f5693fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||
2025/05/09-10:15:41.459323 7fbe907f86c0 Recovering log #208
|
||||
2025/05/09-10:15:41.503379 7fbe907f86c0 Delete type=3 #206
|
||||
2025/05/09-10:15:41.503446 7fbe907f86c0 Delete type=0 #208
|
||||
2025/05/09-10:26:08.376101 7fbe8fbff6c0 Level-0 table #213: started
|
||||
2025/05/09-10:26:08.388425 7fbe8fbff6c0 Level-0 table #213: 263867 bytes OK
|
||||
2025/05/09-10:26:08.401652 7fbe8fbff6c0 Delete type=0 #211
|
||||
2025/05/09-10:26:08.459044 7fbe8fbff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!zGlRtP7zSnkjuuue' @ 510 : 1
|
||||
2025/05/09-10:26:08.459053 7fbe8fbff6c0 Compacting 1@0 + 1@1 files
|
||||
2025/05/09-10:26:08.472966 7fbe8fbff6c0 Generated table #214@0: 71 keys, 264215 bytes
|
||||
2025/05/09-10:26:08.472996 7fbe8fbff6c0 Compacted 1@0 + 1@1 files => 264215 bytes
|
||||
2025/05/09-10:26:08.485587 7fbe8fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/05/09-10:26:08.485765 7fbe8fbff6c0 Delete type=2 #205
|
||||
2025/05/09-10:26:08.485988 7fbe8fbff6c0 Delete type=2 #213
|
||||
2025/05/09-10:26:08.486148 7fbe8fbff6c0 Manual compaction at level-0 from '!items!zGlRtP7zSnkjuuue' @ 510 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,7 @@
|
||||
2025/02/21-17:31:59.347176 7f5931ffb6c0 Recovering log #116
|
||||
2025/02/21-17:31:59.357805 7f5931ffb6c0 Delete type=3 #114
|
||||
2025/02/21-17:31:59.358054 7f5931ffb6c0 Delete type=0 #116
|
||||
2025/02/21-17:36:32.660378 7f5693fff6c0 Level-0 table #121: started
|
||||
2025/02/21-17:36:32.660437 7f5693fff6c0 Level-0 table #121: 0 bytes OK
|
||||
2025/02/21-17:36:32.666840 7f5693fff6c0 Delete type=0 #119
|
||||
2025/02/21-17:36:32.681433 7f5693fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
|
||||
2025/04/20-09:24:47.923568 7fa418ffa6c0 Recovering log #203
|
||||
2025/04/20-09:24:47.940475 7fa418ffa6c0 Delete type=3 #201
|
||||
2025/04/20-09:24:47.940632 7fa418ffa6c0 Delete type=0 #203
|
||||
2025/04/20-09:25:06.922414 7fa4127fc6c0 Level-0 table #209: started
|
||||
2025/04/20-09:25:06.922447 7fa4127fc6c0 Level-0 table #209: 0 bytes OK
|
||||
2025/04/20-09:25:06.928838 7fa4127fc6c0 Delete type=0 #207
|
||||
2025/04/20-09:25:06.929095 7fa4127fc6c0 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-000210
Normal file
BIN
packs/education/MANIFEST-000210
Normal file
Binary file not shown.
0
packs/education/lost/000154.log
Normal file
0
packs/education/lost/000154.log
Normal file
0
packs/education/lost/000158.log
Normal file
0
packs/education/lost/000158.log
Normal file
0
packs/education/lost/000165.log
Normal file
0
packs/education/lost/000165.log
Normal file
0
packs/education/lost/000172.log
Normal file
0
packs/education/lost/000172.log
Normal file
BIN
packs/education/lost/MANIFEST-000156
Normal file
BIN
packs/education/lost/MANIFEST-000156
Normal file
Binary file not shown.
BIN
packs/education/lost/MANIFEST-000163
Normal file
BIN
packs/education/lost/MANIFEST-000163
Normal file
Binary file not shown.
BIN
packs/education/lost/MANIFEST-000170
Normal file
BIN
packs/education/lost/MANIFEST-000170
Normal file
Binary file not shown.
Binary file not shown.
0
packs/graces/000203.log
Normal file
0
packs/graces/000203.log
Normal file
BIN
packs/graces/000205.ldb
Normal file
BIN
packs/graces/000205.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000116
|
||||
MANIFEST-000201
|
||||
|
@ -1,7 +1,14 @@
|
||||
2025/02/21-17:37:17.386428 7f59327fc6c0 Recovering log #114
|
||||
2025/02/21-17:37:17.439969 7f59327fc6c0 Delete type=3 #112
|
||||
2025/02/21-17:37:17.440130 7f59327fc6c0 Delete type=0 #114
|
||||
2025/02/21-17:40:09.813728 7f5693fff6c0 Level-0 table #119: started
|
||||
2025/02/21-17:40:09.813806 7f5693fff6c0 Level-0 table #119: 0 bytes OK
|
||||
2025/02/21-17:40:09.820069 7f5693fff6c0 Delete type=0 #117
|
||||
2025/02/21-17:40:09.840912 7f5693fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||
2025/05/09-10:15:41.507118 7fbe91ffb6c0 Recovering log #199
|
||||
2025/05/09-10:15:41.563016 7fbe91ffb6c0 Delete type=3 #197
|
||||
2025/05/09-10:15:41.563136 7fbe91ffb6c0 Delete type=0 #199
|
||||
2025/05/09-10:26:08.486247 7fbe8fbff6c0 Level-0 table #204: started
|
||||
2025/05/09-10:26:08.492712 7fbe8fbff6c0 Level-0 table #204: 20052 bytes OK
|
||||
2025/05/09-10:26:08.521869 7fbe8fbff6c0 Delete type=0 #202
|
||||
2025/05/09-10:26:08.657886 7fbe8fbff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at '!items!zUYIVOuFpRur9aAR' @ 109 : 1
|
||||
2025/05/09-10:26:08.657901 7fbe8fbff6c0 Compacting 1@0 + 1@1 files
|
||||
2025/05/09-10:26:08.675906 7fbe8fbff6c0 Generated table #205@0: 49 keys, 20052 bytes
|
||||
2025/05/09-10:26:08.675933 7fbe8fbff6c0 Compacted 1@0 + 1@1 files => 20052 bytes
|
||||
2025/05/09-10:26:08.712163 7fbe8fbff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2025/05/09-10:26:08.712328 7fbe8fbff6c0 Delete type=2 #196
|
||||
2025/05/09-10:26:08.712603 7fbe8fbff6c0 Delete type=2 #204
|
||||
2025/05/09-10:26:08.869429 7fbe8fbff6c0 Manual compaction at level-0 from '!items!zUYIVOuFpRur9aAR' @ 109 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,7 @@
|
||||
2025/02/21-17:31:59.365093 7f59317fa6c0 Recovering log #110
|
||||
2025/02/21-17:31:59.377140 7f59317fa6c0 Delete type=3 #108
|
||||
2025/02/21-17:31:59.377276 7f59317fa6c0 Delete type=0 #110
|
||||
2025/02/21-17:36:32.645760 7f5693fff6c0 Level-0 table #115: started
|
||||
2025/02/21-17:36:32.645838 7f5693fff6c0 Level-0 table #115: 0 bytes OK
|
||||
2025/02/21-17:36:32.653163 7f5693fff6c0 Delete type=0 #113
|
||||
2025/02/21-17:36:32.653494 7f5693fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
|
||||
2025/04/20-09:24:47.948681 7fa4137fe6c0 Recovering log #194
|
||||
2025/04/20-09:24:47.965382 7fa4137fe6c0 Delete type=3 #192
|
||||
2025/04/20-09:24:47.965487 7fa4137fe6c0 Delete type=0 #194
|
||||
2025/04/20-09:25:06.935620 7fa4127fc6c0 Level-0 table #200: started
|
||||
2025/04/20-09:25:06.935652 7fa4127fc6c0 Level-0 table #200: 0 bytes OK
|
||||
2025/04/20-09:25:06.942921 7fa4127fc6c0 Delete type=0 #198
|
||||
2025/04/20-09:25:06.956261 7fa4127fc6c0 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-000201
Normal file
BIN
packs/graces/MANIFEST-000201
Normal file
Binary file not shown.
0
packs/graces/lost/000146.log
Normal file
0
packs/graces/lost/000146.log
Normal file
0
packs/graces/lost/000150.log
Normal file
0
packs/graces/lost/000150.log
Normal file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user