Compare commits
21 Commits
fvtt-hawkm
...
fvtt-hawkm
| Author | SHA1 | Date | |
|---|---|---|---|
| 05ca6e1763 | |||
| d3f014fcca | |||
| 679b3208cd | |||
| 871a18a0ee | |||
| 264c49eb06 | |||
| 9349c54966 | |||
| 274efac2b5 | |||
| 7a7398f8ca | |||
| 93600f7e13 | |||
| a6fa3afbee | |||
| 1051349dd0 | |||
| a245b0e87c | |||
| c9ce3367ed | |||
| e95e068112 | |||
| 6dd63a2c54 | |||
| 650e4b7449 | |||
| 3f27482ad9 | |||
| 436b282ff5 | |||
| 39f8cfdbcc | |||
| 24a57a906e | |||
| 667f3678fb |
BIN
assets/fonts/Montserrat-Italic-VariableFont_wght.ttf
Normal file
BIN
assets/fonts/Montserrat-Italic-VariableFont_wght.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/Montserrat-Medium.ttf
Normal file
BIN
assets/fonts/Montserrat-Medium.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/Montserrat-Medium.woff
Normal file
BIN
assets/fonts/Montserrat-Medium.woff
Normal file
Binary file not shown.
BIN
assets/fonts/Montserrat-Thin.woff
Normal file
BIN
assets/fonts/Montserrat-Thin.woff
Normal file
Binary file not shown.
BIN
assets/fonts/Montserrat-VariableFont_wght.ttf
Normal file
BIN
assets/fonts/Montserrat-VariableFont_wght.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/pfeffer-simpelgotisch.bold.otf
Normal file
BIN
assets/fonts/pfeffer-simpelgotisch.bold.otf
Normal file
Binary file not shown.
BIN
assets/fonts/pfeffer-simpelgotisch.regular.otf
Normal file
BIN
assets/fonts/pfeffer-simpelgotisch.regular.otf
Normal file
Binary file not shown.
BIN
assets/fonts/pfeffer-simpelgotisch.regular2.otf
Normal file
BIN
assets/fonts/pfeffer-simpelgotisch.regular2.otf
Normal file
Binary file not shown.
BIN
assets/fonts/pfeffer-simpelgotisch.semibold.otf
Normal file
BIN
assets/fonts/pfeffer-simpelgotisch.semibold.otf
Normal file
Binary file not shown.
@@ -7,7 +7,7 @@ import { HawkmoonUtility } from "./hawkmoon-utility.js";
|
|||||||
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class HawkmoonActorSheet extends ActorSheet {
|
export class HawkmoonActorSheet extends foundry.appv1.sheets.ActorSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
@@ -56,8 +56,8 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
nbCombativite: this.actor.system.sante.nbcombativite,
|
nbCombativite: this.actor.system.sante.nbcombativite,
|
||||||
combativiteList: HawkmoonUtility.getCombativiteList(this.actor.system.sante.nbcombativite),
|
combativiteList: HawkmoonUtility.getCombativiteList(this.actor.system.sante.nbcombativite),
|
||||||
initiative: this.actor.getFlag("world", "last-initiative") || -1,
|
initiative: this.actor.getFlag("world", "last-initiative") || -1,
|
||||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, {async: true}),
|
||||||
habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}),
|
habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, {async: true}),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCombatValues() {
|
getCombatValues() {
|
||||||
if (this.type == "cellule"){
|
if (this.type == "cellule") {
|
||||||
return {
|
return {
|
||||||
initBase: 0,
|
initBase: 0,
|
||||||
initTotal: 0,
|
initTotal: 0,
|
||||||
@@ -424,7 +424,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
if (sante.etat == this.system.sante.nbcombativite) {
|
if (sante.etat == this.system.sante.nbcombativite) {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} est vaincu !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} est vaincu !</strong>` })
|
||||||
}
|
}
|
||||||
this.processCombativite(sante)
|
// Duplicated ! this.processCombativite(sante)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -543,6 +543,23 @@ export class HawkmoonActor extends Actor {
|
|||||||
return init || -1
|
return init || -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getBestAttackValue() {
|
||||||
|
let attackList = this.items.filter(item => (item.type == "arme" || item.type == "talent") && item.system.equipped)
|
||||||
|
let maxOff = 0
|
||||||
|
let bestArme
|
||||||
|
for (let arme of attackList) {
|
||||||
|
if (arme.type == "arme") {
|
||||||
|
arme = this.prepareArme(arme)
|
||||||
|
}
|
||||||
|
if (arme.system.totalOffensif > maxOff) {
|
||||||
|
maxOff = arme.system.totalOffensif
|
||||||
|
bestArme = foundry.utils.duplicate(arme)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return bestArme
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getBestDefenseValue() {
|
getBestDefenseValue() {
|
||||||
let defenseList = this.items.filter(item => (item.type == "arme") && item.system.equipped)
|
let defenseList = this.items.filter(item => (item.type == "arme") && item.system.equipped)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
|||||||
const __ALLOWED_ITEM_CELLULE = { "talent": 1, "ressource": 1, "contact": 1, "equipement": 1, "protection": 1, "artefact": 1, "arme": 1, "monnaie": 1 }
|
const __ALLOWED_ITEM_CELLULE = { "talent": 1, "ressource": 1, "contact": 1, "equipement": 1, "protection": 1, "artefact": 1, "arme": 1, "monnaie": 1 }
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class HawkmoonCelluleSheet extends ActorSheet {
|
export class HawkmoonCelluleSheet extends foundry.appv1.sheets.ActorSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export class HawkmoonTokenHud {
|
|||||||
|
|
||||||
const hudData = { actor: actor }
|
const hudData = { actor: actor }
|
||||||
|
|
||||||
const controlIconActions = html.find('.control-icon[data-action=combat]');
|
const controlIconActions = $(html).find('.control-icon[data-action=combat]');
|
||||||
// initiative
|
// initiative
|
||||||
await HawkmoonTokenHud._configureSubMenu(controlIconActions, 'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html', hudData,
|
await HawkmoonTokenHud._configureSubMenu(controlIconActions, 'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html', hudData,
|
||||||
(event) => {
|
(event) => {
|
||||||
@@ -34,7 +34,7 @@ export class HawkmoonTokenHud {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async addTokenHudExtensions(app, html, tokenId) {
|
static async addTokenHudExtensions(app, html, tokenId) {
|
||||||
const controlIconCombat = html.find('.control-icon[data-action=combat]')
|
const controlIconCombat = $(html).find('.control-icon[data-action=combat]')
|
||||||
if (controlIconCombat.length>0 ) {
|
if (controlIconCombat.length>0 ) {
|
||||||
HawkmoonTokenHud.addExtensionHud(app, html, tokenId);
|
HawkmoonTokenHud.addExtensionHud(app, html, tokenId);
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,7 @@ export class HawkmoonTokenHud {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async _configureSubMenu(insertionPoint, template, hudData, onMenuItem) {
|
static async _configureSubMenu(insertionPoint, template, hudData, onMenuItem) {
|
||||||
const hud = $(await renderTemplate(template, hudData))
|
const hud = $(await foundry.applications.handlebars.renderTemplate(template, hudData))
|
||||||
const list = hud.find('div.hawkmoon-hud-list')
|
const list = hud.find('div.hawkmoon-hud-list')
|
||||||
|
|
||||||
HawkmoonTokenHud._toggleHudListActive(hud, list);
|
HawkmoonTokenHud._toggleHudListActive(hud, list);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { HawkmoonUtility } from "./hawkmoon-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 HawkmoonItemSheet extends ItemSheet {
|
export class HawkmoonItemSheet extends foundry.appv1.sheets.ItemSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
|
|||||||
@@ -56,14 +56,14 @@ Hooks.once("init", async function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Register sheet application classes
|
// Regster sheet application classes
|
||||||
Actors.unregisterSheet("core", ActorSheet);
|
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||||
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonActorSheet, { types: ["personnage"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonActorSheet, { types: ["personnage"], makeDefault: true })
|
||||||
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCreatureSheet, { types: ["creature"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCreatureSheet, { types: ["creature"], makeDefault: true })
|
||||||
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: true });
|
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: true });
|
||||||
|
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
||||||
Items.registerSheet("fvtt-hawkmoon-cyd", HawkmoonItemSheet, { makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", HawkmoonItemSheet, { makeDefault: true })
|
||||||
|
|
||||||
HawkmoonUtility.init()
|
HawkmoonUtility.init()
|
||||||
HawkmoonAutomation.init()
|
HawkmoonAutomation.init()
|
||||||
@@ -138,4 +138,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ import { HawkmoonUtility } from "./hawkmoon-utility.js";
|
|||||||
export class HawkmoonRollDialog extends Dialog {
|
export class HawkmoonRollDialog extends Dialog {
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async create(actor, rollData ) {
|
static async create(actor, rollData) {
|
||||||
|
|
||||||
let options = { classes: ["HawkmoonDialog"], width: 320, height: 'fit-content', 'z-index': 99999 };
|
let options = { classes: ["HawkmoonDialog"], width: 420, height: 'fit-content', 'z-index': 99999 };
|
||||||
let html = await renderTemplate('systems/fvtt-hawkmoon-cyd/templates/roll-dialog-generic.html', rollData);
|
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-hawkmoon-cyd/templates/roll-dialog-generic.html', rollData);
|
||||||
|
|
||||||
return new HawkmoonRollDialog(actor, rollData, html, options );
|
return new HawkmoonRollDialog(actor, rollData, html, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -18,20 +18,21 @@ export class HawkmoonRollDialog extends Dialog {
|
|||||||
content: html,
|
content: html,
|
||||||
buttons: {
|
buttons: {
|
||||||
rolld10: {
|
rolld10: {
|
||||||
icon: '<i class="fas fa-check"></i>',
|
icon: '<i class="fas fa-check"></i>',
|
||||||
label: "Lancer 1d10",
|
label: "Lancer 1d10",
|
||||||
callback: () => { this.roll("d10") }
|
callback: () => { this.roll("d10") }
|
||||||
},
|
},
|
||||||
rolld20: {
|
rolld20: {
|
||||||
icon: '<i class="fas fa-check"></i>',
|
icon: '<i class="fas fa-check"></i>',
|
||||||
label: "Lancer 1d20",
|
label: "Lancer 1d20",
|
||||||
callback: () => { this.roll("d20") }
|
callback: () => { this.roll("d20") }
|
||||||
},
|
},
|
||||||
cancel: {
|
cancel: {
|
||||||
icon: '<i class="fas fa-times"></i>',
|
icon: '<i class="fas fa-times"></i>',
|
||||||
label: "Annuler",
|
label: "Annuler",
|
||||||
callback: () => { this.close() }
|
callback: () => { this.close() }
|
||||||
} },
|
}
|
||||||
|
},
|
||||||
close: close
|
close: close
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,9 +43,9 @@ export class HawkmoonRollDialog extends Dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
roll ( dice) {
|
roll(dice) {
|
||||||
this.rollData.mainDice = dice
|
this.rollData.mainDice = dice
|
||||||
HawkmoonUtility.rollHawkmoon( this.rollData )
|
HawkmoonUtility.rollHawkmoon(this.rollData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -57,20 +58,20 @@ export class HawkmoonRollDialog extends Dialog {
|
|||||||
}
|
}
|
||||||
$(function () { onLoad(); });
|
$(function () { onLoad(); });
|
||||||
|
|
||||||
html.find('#modificateur').change(async (event) => {
|
html.find('#modificateur').change(async (event) => {
|
||||||
this.rollData.modificateur = Number(event.currentTarget.value)
|
this.rollData.modificateur = Number(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#difficulte').change( (event) => {
|
html.find('#difficulte').change((event) => {
|
||||||
console.log("Difficulte: " + event.currentTarget.value)
|
console.log("Difficulte: " + event.currentTarget.value)
|
||||||
this.rollData.difficulte = Number(event.currentTarget.value)
|
this.rollData.difficulte = Number(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#attrKey').change(async (event) => {
|
html.find('#attrKey').change(async (event) => {
|
||||||
this.rollData.attrKey = String(event.currentTarget.value)
|
this.rollData.attrKey = String(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#attrKey2').change(async (event) => {
|
html.find('#attrKey2').change(async (event) => {
|
||||||
this.rollData.attrKey2 = String(event.currentTarget.value)
|
this.rollData.attrKey2 = String(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#select-maitrise').change(async (event) => {
|
html.find('#select-maitrise').change(async (event) => {
|
||||||
this.rollData.maitriseId = String(event.currentTarget.value)
|
this.rollData.maitriseId = String(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#competence-talents').change((event) => {
|
html.find('#competence-talents').change((event) => {
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ import { HawkmoonCombat } from "./hawkmoon-combat.js";
|
|||||||
import { HawkmoonCommands } from "./hawkmoon-commands.js";
|
import { HawkmoonCommands } from "./hawkmoon-commands.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const __distanceDifficulte = { "porteecourte": 5, "porteemoyenne": 9, "porteelongue": 14}
|
const __distanceDifficulte = { "porteecourte": 5, "porteemoyenne": 9, "porteelongue": 14 }
|
||||||
const __tireurDeplacement = { immobile: 0, lent: 3, rapide: 5}
|
const __tireurDeplacement = { immobile: 0, lent: 3, rapide: 5 }
|
||||||
const __cibleCouvert = { aucun: 0, leger: 5, complet: 10}
|
const __cibleCouvert = { aucun: 0, leger: 5, complet: 10 }
|
||||||
const __tailleCible = { normal: 0, main: 10, enfant: 3, maison: -10}
|
const __tailleCible = { normal: 0, main: 10, enfant: 3, maison: -10 }
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class HawkmoonUtility {
|
export class HawkmoonUtility {
|
||||||
@@ -15,8 +15,7 @@ export class HawkmoonUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async init() {
|
static async init() {
|
||||||
Hooks.on('renderChatLog', (log, html, data) => HawkmoonUtility.chatListeners(html))
|
Hooks.on('renderChatLog', (log, html, data) => HawkmoonUtility.chatListeners(html))
|
||||||
Hooks.on("getChatLogEntryContext", (html, options) => HawkmoonUtility.chatRollMenu(html, options))
|
Hooks.on("getChatMessageContextOptions", (html, options) => HawkmoonUtility.chatRollMenu(html, options))
|
||||||
|
|
||||||
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
|
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
|
||||||
HawkmoonUtility.pushInitiativeOptions(html, options);
|
HawkmoonUtility.pushInitiativeOptions(html, options);
|
||||||
})
|
})
|
||||||
@@ -105,15 +104,33 @@ export class HawkmoonUtility {
|
|||||||
return this.skills
|
return this.skills
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static updatePauseLogo(html) {
|
||||||
|
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
|
||||||
|
console.log("Hawkmoon | Updating pause logo to:", logoPause)
|
||||||
|
|
||||||
|
// Supprimer l'ancien style s'il existe
|
||||||
|
let oldStyle = document.getElementById('hawkmoon-pause-logo-override')
|
||||||
|
if (oldStyle) {
|
||||||
|
oldStyle.remove()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Injecter une règle CSS pour override le logo
|
||||||
|
let styleSheet = document.createElement('style')
|
||||||
|
styleSheet.id = 'hawkmoon-pause-logo-override'
|
||||||
|
styleSheet.textContent = `#pause>img { content: url(${logoPause}) !important; }`
|
||||||
|
document.head.appendChild(styleSheet)
|
||||||
|
|
||||||
|
console.log("Hawkmoon | Logo CSS rule injected")
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async ready() {
|
static async ready() {
|
||||||
const skills = await HawkmoonUtility.loadCompendium("fvtt-hawkmoon-cyd.skills")
|
const skills = await HawkmoonUtility.loadCompendium("fvtt-hawkmoon-cyd.skills")
|
||||||
this.skills = skills.map(i => i.toObject())
|
this.skills = skills.map(i => i.toObject())
|
||||||
|
|
||||||
// Setup pause logo
|
// Setup pause logo
|
||||||
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
|
this.updatePauseLogo()
|
||||||
let logoImg = document.querySelector('#pause').children[0]
|
|
||||||
logoImg.setAttribute('style', `content: url(${logoPause})`)
|
|
||||||
|
|
||||||
game.system.hawkmoon.config.listeNiveauSkill = this.createDirectOptionList(0, 10)
|
game.system.hawkmoon.config.listeNiveauSkill = this.createDirectOptionList(0, 10)
|
||||||
game.system.hawkmoon.config.listeNiveauCreature = this.createDirectOptionList(0, 35)
|
game.system.hawkmoon.config.listeNiveauCreature = this.createDirectOptionList(0, 35)
|
||||||
@@ -131,7 +148,7 @@ export class HawkmoonUtility {
|
|||||||
static createArrayOptionList(min, max) {
|
static createArrayOptionList(min, max) {
|
||||||
let options = [];
|
let options = [];
|
||||||
for (let i = min; i <= max; i++) {
|
for (let i = min; i <= max; i++) {
|
||||||
options.push({key:`${i}`, label:`${i}`});
|
options.push({ key: `${i}`, label: `${i}` });
|
||||||
}
|
}
|
||||||
return options;
|
return options;
|
||||||
}
|
}
|
||||||
@@ -155,7 +172,7 @@ export class HawkmoonUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async chatListeners(html) {
|
static async chatListeners(html) {
|
||||||
|
|
||||||
html.on("click", '.predilection-reroll', async event => {
|
$(html).on("click", '.predilection-reroll', async event => {
|
||||||
let predIdx = $(event.currentTarget).data("predilection-index")
|
let predIdx = $(event.currentTarget).data("predilection-index")
|
||||||
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
@@ -166,14 +183,14 @@ export class HawkmoonUtility {
|
|||||||
HawkmoonUtility.rollHawkmoon(rollData)
|
HawkmoonUtility.rollHawkmoon(rollData)
|
||||||
})
|
})
|
||||||
|
|
||||||
html.on("click", '.roll-chat-degat', async event => {
|
$(html).on("click", '.roll-chat-degat', async event => {
|
||||||
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
||||||
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
|
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
|
||||||
})
|
})
|
||||||
html.on("click", '.roll-chat-degat-devastateur', async event => {
|
$(html).on("click", '.roll-chat-degat-devastateur', async event => {
|
||||||
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
@@ -196,7 +213,7 @@ export class HawkmoonUtility {
|
|||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-automation.html',
|
'systems/fvtt-hawkmoon-cyd/templates/partial-automation.html',
|
||||||
'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html',
|
'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html',
|
||||||
]
|
]
|
||||||
return loadTemplates(templatePaths);
|
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -279,9 +296,13 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static onSocketMesssage(msg) {
|
static onSocketMesssage(msg) {
|
||||||
if (msg.name == "msg_apply_combativite") {
|
if (msg.msg == "msg_apply_combativite") {
|
||||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
let defender = game.canvas.tokens.get(msg.data.defenderTokenId)?.actor
|
||||||
defender.changeEtatCombativite(msg.data.value)
|
if (defender) {
|
||||||
|
defender.changeEtatCombativite(msg.data.value)
|
||||||
|
} else {
|
||||||
|
console.warn("HawkmoonUtility.onSocketMesssage : Impossible de trouver le token pour appliquer la combativité", msg.defenderTokenId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,14 +376,19 @@ export class HawkmoonUtility {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//console.log("Result : ", rollData)
|
//console.log("Result : ", rollData
|
||||||
|
this.computeResultQuality(rollData)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static computeResultQuality(rollData) {
|
||||||
if (rollData.difficulte > 0 && !rollData.isDramatique) {
|
if (rollData.difficulte > 0 && !rollData.isDramatique) {
|
||||||
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
|
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
|
||||||
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
|
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
|
||||||
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
|
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static applyCombativite(rollData, value) {
|
static applyCombativite(rollData, value) {
|
||||||
if (game.user.isGM) {
|
if (game.user.isGM) {
|
||||||
@@ -432,10 +458,10 @@ export class HawkmoonUtility {
|
|||||||
rollData.diceFormula += `+3`
|
rollData.diceFormula += `+3`
|
||||||
}
|
}
|
||||||
if (rollData.hasAmbidextre) {
|
if (rollData.hasAmbidextre) {
|
||||||
if ( rollData.attaqueAmbidextre1) {
|
if (rollData.ambidextre1) {
|
||||||
rollData.diceFormula += `-3`
|
rollData.diceFormula += `-3`
|
||||||
} else if ( rollData.attaqueAmbidextre2) {
|
} else if (rollData.ambidextre2) {
|
||||||
rollData.diceFormula += `-5`
|
rollData.diceFormula += `-6`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rollData.defenseurAuSol) {
|
if (rollData.defenseurAuSol) {
|
||||||
@@ -454,7 +480,7 @@ export class HawkmoonUtility {
|
|||||||
rollData.diceFormula += `+5`
|
rollData.diceFormula += `+5`
|
||||||
}
|
}
|
||||||
if (rollData.soutiens > 0) { // 1 soutien = +3, 2 soutiens = +4, 3 soutiens = +5
|
if (rollData.soutiens > 0) { // 1 soutien = +3, 2 soutiens = +4, 3 soutiens = +5
|
||||||
rollData.diceFormula += `+${rollData.soutiens+2}`
|
rollData.diceFormula += `+${rollData.soutiens + 2}`
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rollData.arme?.system.isDistance) {
|
if (rollData.arme?.system.isDistance) {
|
||||||
@@ -492,18 +518,18 @@ export class HawkmoonUtility {
|
|||||||
}
|
}
|
||||||
if (rollData.feinte) {
|
if (rollData.feinte) {
|
||||||
actor.changeBonneAventure(-1)
|
actor.changeBonneAventure(-1)
|
||||||
if ( rollData.isHeroique) {
|
if (rollData.isHeroique) {
|
||||||
rollData.nbCombativitePerdu = "vaincu"
|
rollData.nbCombativitePerdu = "vaincu"
|
||||||
} else if ( rollData.isSuccess) {
|
} else if (rollData.isSuccess) {
|
||||||
rollData.nbCombativitePerdu = 2
|
rollData.nbCombativitePerdu = 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
|
||||||
}, rollData)
|
}, rollData)
|
||||||
|
|
||||||
if ( (rollData.coupBas || rollData.arme) && rollData.isSuccess && rollData.defenderTokenId) {
|
if ((rollData.coupBas || rollData.arme) && rollData.isSuccess && rollData.defenderTokenId) {
|
||||||
this.applyCombativite(rollData, rollData.nbCombativitePerdu)
|
this.applyCombativite(rollData, rollData.nbCombativitePerdu)
|
||||||
}
|
}
|
||||||
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
|
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
|
||||||
@@ -514,30 +540,35 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getCombativiteList(nbActivite) {
|
static getCombativiteList(nbActivite) {
|
||||||
let list = [ { value: String(0), label: "Combatif"}]
|
let list = [{ value: String(0), label: "Combatif" }]
|
||||||
for (let i = 1; i < nbActivite-2; i++) {
|
for (let i = 1; i < nbActivite - 2; i++) {
|
||||||
list.push({ value: String(i), label:"Eprouvé " + i} )
|
list.push({ value: String(i), label: "Eprouvé " + i })
|
||||||
}
|
}
|
||||||
list[nbActivite-2] = { value: String(nbActivite-2), label:"Affaibli"}
|
list[nbActivite - 2] = { value: String(nbActivite - 2), label: "Affaibli" }
|
||||||
list[nbActivite-1] = { value: String(nbActivite-1), label:"Très Affaibli"}
|
list[nbActivite - 1] = { value: String(nbActivite - 1), label: "Très Affaibli" }
|
||||||
list[nbActivite] = { value: String(nbActivite), label:"Vaincu"}
|
list[nbActivite] = { value: String(nbActivite), label: "Vaincu" }
|
||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async bonusRollHawkmoon(rollData) {
|
static async bonusRollHawkmoon(rollData) {
|
||||||
rollData.bonusFormula = rollData.addedBonus
|
rollData.bonusFormula = rollData.addedBonus
|
||||||
|
console.log("Bonus Roll Hawkmoon", rollData.bonusFormula)
|
||||||
|
|
||||||
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
if (!Number(rollData.bonusFormula)) {
|
||||||
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
||||||
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
|
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
||||||
|
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
|
||||||
|
rollData.finalResult += Number(rollData.bonusRoll.total)
|
||||||
|
} else {
|
||||||
|
rollData.finalResult += Number(rollData.bonusFormula)
|
||||||
|
console.log("Bonus Roll Hawkmoon 2", rollData.finalResult)
|
||||||
|
}
|
||||||
|
|
||||||
rollData.finalResult += rollData.bonusRoll.total
|
this.computeResultQuality(rollData)
|
||||||
|
|
||||||
this.computeResult(rollData)
|
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
|
||||||
}, rollData)
|
}, rollData)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -647,11 +678,11 @@ export class HawkmoonUtility {
|
|||||||
distanceTir: "porteemoyenne",
|
distanceTir: "porteemoyenne",
|
||||||
attaqueCharge: false,
|
attaqueCharge: false,
|
||||||
attaqueDesarme: false,
|
attaqueDesarme: false,
|
||||||
attaqueAmbidextre1 : false,
|
attaqueAmbidextre1: false,
|
||||||
attaqueAmbidextre2 : false,
|
attaqueAmbidextre2: false,
|
||||||
chargeCavalerie : false,
|
chargeCavalerie: false,
|
||||||
contenir : false,
|
contenir: false,
|
||||||
soutiens : 0
|
soutiens: 0
|
||||||
}
|
}
|
||||||
return rollData
|
return rollData
|
||||||
}
|
}
|
||||||
@@ -663,6 +694,7 @@ export class HawkmoonUtility {
|
|||||||
rollData.defenderTokenId = target.id
|
rollData.defenderTokenId = target.id
|
||||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
||||||
rollData.armeDefense = defender.getBestDefenseValue()
|
rollData.armeDefense = defender.getBestDefenseValue()
|
||||||
|
rollData.armeAttaqueDefenseur = defender.getBestAttackValue()
|
||||||
rollData.targetVigueur = defender.getVigueur()
|
rollData.targetVigueur = defender.getVigueur()
|
||||||
rollData.protectionDefenseur = defender.getProtection()
|
rollData.protectionDefenseur = defender.getProtection()
|
||||||
if (rollData.immobiliser || rollData.repousser) {
|
if (rollData.immobiliser || rollData.repousser) {
|
||||||
@@ -671,11 +703,13 @@ export class HawkmoonUtility {
|
|||||||
} else if (rollData.coupBas) {
|
} else if (rollData.coupBas) {
|
||||||
let combatValues = defender.getCombatValues()
|
let combatValues = defender.getCombatValues()
|
||||||
rollData.difficulte = combatValues.defenseTotal
|
rollData.difficulte = combatValues.defenseTotal
|
||||||
}else if ( rollData.assomer) {
|
} else if (rollData.assomer) {
|
||||||
rollData.difficulte = 3 + (defender.system.attributs.tre.value * 2)
|
rollData.difficulte = 3 + (defender.system.attributs.tre.value * 2)
|
||||||
|
} else if (rollData.desengager) {
|
||||||
|
rollData.difficulte = rollData.armeAttaqueDefenseur?.system?.totalOffensif || 0;
|
||||||
} else if (rollData.armeDefense) {
|
} else if (rollData.armeDefense) {
|
||||||
rollData.difficulte = rollData.armeDefense.system.totalDefensif
|
rollData.difficulte = rollData.armeDefense.system.totalDefensif
|
||||||
if ( !rollData.desengager && !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune ){
|
if (!rollData.desengager && !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune) {
|
||||||
if (rollData.armeDefense.system.armenaturelle || rollData.armeDefense.system.armefortune) {
|
if (rollData.armeDefense.system.armenaturelle || rollData.armeDefense.system.armefortune) {
|
||||||
rollData.bonusArmeNaturelle = 3
|
rollData.bonusArmeNaturelle = 3
|
||||||
}
|
}
|
||||||
@@ -693,7 +727,7 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static applyBonneAventureRoll(li, changed, addedBonus) {
|
static applyBonneAventureRoll(li, changed, addedBonus) {
|
||||||
let msgId = li.data("message-id")
|
let msgId = $(li).data("message-id")
|
||||||
let msg = game.messages.get(msgId)
|
let msg = game.messages.get(msgId)
|
||||||
if (msg) {
|
if (msg) {
|
||||||
let rollData = msg.getFlag("world", "hawkmoon-roll")
|
let rollData = msg.getFlag("world", "hawkmoon-roll")
|
||||||
@@ -712,7 +746,7 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static applyEclatRoll(li, changed, addedBonus) {
|
static applyEclatRoll(li, changed, addedBonus) {
|
||||||
let msgId = li.data("message-id")
|
let msgId = $(li).data("message-id")
|
||||||
let msg = game.messages.get(msgId)
|
let msg = game.messages.get(msgId)
|
||||||
if (msg) {
|
if (msg) {
|
||||||
let rollData = msg.getFlag("world", "hawkmoon-roll")
|
let rollData = msg.getFlag("world", "hawkmoon-roll")
|
||||||
@@ -733,13 +767,13 @@ export class HawkmoonUtility {
|
|||||||
static chatRollMenu(html, options) {
|
static chatRollMenu(html, options) {
|
||||||
let canApply = li => canvas.tokens.controlled.length && li.find(".hawkmoon-roll").length
|
let canApply = li => canvas.tokens.controlled.length && li.find(".hawkmoon-roll").length
|
||||||
let canApplyBA = function (li) {
|
let canApplyBA = function (li) {
|
||||||
let message = game.messages.get(li.attr("data-message-id"))
|
let message = game.messages.get($(li).attr("data-message-id"))
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
||||||
return (!rollData.isReroll && actor.getBonneAventure() > 0)
|
return (!rollData.isReroll && actor.getBonneAventure() > 0)
|
||||||
}
|
}
|
||||||
let canApplyPE = function (li) {
|
let canApplyPE = function (li) {
|
||||||
let message = game.messages.get(li.attr("data-message-id"))
|
let message = game.messages.get($(li).attr("data-message-id"))
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
||||||
return (!rollData.isReroll && actor.getEclat() > 0)
|
return (!rollData.isReroll && actor.getEclat() > 0)
|
||||||
@@ -765,7 +799,7 @@ export class HawkmoonUtility {
|
|||||||
name: "Relancer le dé (1 point d'Eclat)",
|
name: "Relancer le dé (1 point d'Eclat)",
|
||||||
icon: "<i class='fas fa-user-plus'></i>",
|
icon: "<i class='fas fa-user-plus'></i>",
|
||||||
condition: canApply && canApplyPE,
|
condition: canApply && canApplyPE,
|
||||||
callback: li => HawkmoonUtility.applyEclatRoll(li, -3, "reroll")
|
callback: li => HawkmoonUtility.applyEclatRoll(li, -1, "reroll")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return options
|
return options
|
||||||
|
|||||||
31
modules/models/arme.mjs
Normal file
31
modules/models/arme.mjs
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les armes
|
||||||
|
*/
|
||||||
|
export class ArmeDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
typearme: new fields.StringField({ initial: "" }),
|
||||||
|
armenaturelle: new fields.BooleanField({ initial: false }),
|
||||||
|
armefortune: new fields.BooleanField({ initial: false }),
|
||||||
|
bonusmaniementoff: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
seuildefense: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
onlevelonly: new fields.BooleanField({ initial: false }),
|
||||||
|
degats: new fields.StringField({ initial: "" }),
|
||||||
|
deuxmains: new fields.BooleanField({ initial: false }),
|
||||||
|
percearmure: new fields.BooleanField({ initial: false }),
|
||||||
|
percearmurevalue: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
courte: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
moyenne: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
longue: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
tr: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
28
modules/models/artefact.mjs
Normal file
28
modules/models/artefact.mjs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les artefacts
|
||||||
|
*/
|
||||||
|
export class ArtefactDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
complexite: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
branche: new fields.StringField({ initial: "" }),
|
||||||
|
branche2: new fields.StringField({ initial: "none" }),
|
||||||
|
dureerealisation: new fields.StringField({ initial: "" }),
|
||||||
|
tempsroute: new fields.StringField({ initial: "" }),
|
||||||
|
effetdejeu: new fields.StringField({ initial: "" }),
|
||||||
|
defautcourant: new fields.StringField({ initial: "" }),
|
||||||
|
autrescarac: new fields.StringField({ initial: "" }),
|
||||||
|
avantagespossibles: new fields.StringField({ initial: "" }),
|
||||||
|
avantages: new fields.StringField({ initial: "" }),
|
||||||
|
competences: new fields.StringField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
53
modules/models/base-item.mjs
Normal file
53
modules/models/base-item.mjs
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
/**
|
||||||
|
* Template de base pour tous les items
|
||||||
|
*/
|
||||||
|
export class BaseItemModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Template pour les équipements de base
|
||||||
|
*/
|
||||||
|
export class BaseEquipItemModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Template pour l'automatisation
|
||||||
|
*/
|
||||||
|
export class AutomationItemModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
isautomated: new fields.BooleanField({ initial: false }),
|
||||||
|
automations: new fields.ArrayField(
|
||||||
|
new fields.SchemaField({
|
||||||
|
id: new fields.StringField({ initial: "" }),
|
||||||
|
eventtype: new fields.StringField({ initial: "on-drop" }),
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
bonusname: new fields.StringField({ initial: "vigueur" }),
|
||||||
|
bonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
competence: new fields.StringField({ initial: "" }),
|
||||||
|
minLevel: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
baCost: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
{ initial: [] }
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
15
modules/models/cellule.mjs
Normal file
15
modules/models/cellule.mjs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les cellules
|
||||||
|
*/
|
||||||
|
export class CelluleDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
notoriete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
resistance: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
developpement: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
members: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
27
modules/models/competence.mjs
Normal file
27
modules/models/competence.mjs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les compétences
|
||||||
|
*/
|
||||||
|
export class CompetenceDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
attribut1: new fields.StringField({ initial: "" }),
|
||||||
|
attribut2: new fields.StringField({ initial: "" }),
|
||||||
|
attribut3: new fields.StringField({ initial: "" }),
|
||||||
|
doublebonus: new fields.BooleanField({ initial: false }),
|
||||||
|
predilections: new fields.ArrayField(
|
||||||
|
new fields.SchemaField({
|
||||||
|
id: new fields.StringField({ initial: "" }),
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.StringField({ initial: "" }),
|
||||||
|
acquise: new fields.BooleanField({ initial: false }),
|
||||||
|
maitrise: new fields.BooleanField({ initial: false }),
|
||||||
|
used: new fields.BooleanField({ initial: false })
|
||||||
|
}),
|
||||||
|
{ initial: [] }
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
14
modules/models/contact.mjs
Normal file
14
modules/models/contact.mjs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les contacts
|
||||||
|
*/
|
||||||
|
export class ContactDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
contacttype: new fields.StringField({ initial: "" }),
|
||||||
|
niveau: new fields.StringField({ initial: "" }),
|
||||||
|
pointdev: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
97
modules/models/creature.mjs
Normal file
97
modules/models/creature.mjs
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les créatures
|
||||||
|
*/
|
||||||
|
export class CreatureDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
// Template biodata
|
||||||
|
biodata: new fields.SchemaField({
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
age: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
poids: new fields.StringField({ initial: "" }),
|
||||||
|
taille: new fields.StringField({ initial: "" }),
|
||||||
|
cheveux: new fields.StringField({ initial: "" }),
|
||||||
|
sexe: new fields.StringField({ initial: "" }),
|
||||||
|
yeux: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.StringField({ initial: "" }),
|
||||||
|
habitat: new fields.StringField({ initial: "" }),
|
||||||
|
notes: new fields.StringField({ initial: "" }),
|
||||||
|
statut: new fields.StringField({ initial: "" }),
|
||||||
|
gmnotes: new fields.StringField({ initial: "" }),
|
||||||
|
statutresistant: new fields.StringField({ initial: "commun" })
|
||||||
|
}),
|
||||||
|
// Template core
|
||||||
|
subactors: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
||||||
|
attributs: new fields.SchemaField({
|
||||||
|
adr: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Adresse" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "adresse" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "adr" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pui: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Puissance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "puissance" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pui" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
cla: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Clairvoyance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "clairvoyance" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "cla" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pre: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Présence" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "presence" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pre" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
tre: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Trempe" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "trempe" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "tre" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
bonneaventure: new fields.SchemaField({
|
||||||
|
base: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
actuelle: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
experience: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
eclat: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
sante: new fields.SchemaField({
|
||||||
|
vigueur: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
etat: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
vigueurmodifier: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
nbcombativite: new fields.NumberField({ initial: 5, integer: true })
|
||||||
|
}),
|
||||||
|
adversite: new fields.SchemaField({
|
||||||
|
bleue: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rouge: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
noire: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
vitesse: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
combat: new fields.SchemaField({
|
||||||
|
initbonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
vitessebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
bonusdegats: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
attaquebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
defensebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
defensetotale: new fields.BooleanField({ initial: false }),
|
||||||
|
monte: new fields.BooleanField({ initial: false })
|
||||||
|
}),
|
||||||
|
// Propriétés spécifiques aux créatures
|
||||||
|
ressources: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
17
modules/models/equipement.mjs
Normal file
17
modules/models/equipement.mjs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour l'équipement
|
||||||
|
*/
|
||||||
|
export class EquipementDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
12
modules/models/historique.mjs
Normal file
12
modules/models/historique.mjs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les historiques
|
||||||
|
*/
|
||||||
|
export class HistoriqueDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
bonusmalus: new fields.StringField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
26
modules/models/index.mjs
Normal file
26
modules/models/index.mjs
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* Index des DataModels pour Hawkmoon CYD
|
||||||
|
* Ce fichier centralise tous les exports des modèles de données
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Modèles d'items
|
||||||
|
export { TalentDataModel } from './talent.mjs';
|
||||||
|
export { HistoriqueDataModel } from './historique.mjs';
|
||||||
|
export { ProfilDataModel } from './profil.mjs';
|
||||||
|
export { CompetenceDataModel } from './competence.mjs';
|
||||||
|
export { ArmeDataModel } from './arme.mjs';
|
||||||
|
export { ProtectionDataModel } from './protection.mjs';
|
||||||
|
export { MonnaieDataModel } from './monnaie.mjs';
|
||||||
|
export { EquipementDataModel } from './equipement.mjs';
|
||||||
|
export { ArtefactDataModel } from './artefact.mjs';
|
||||||
|
export { RessourceDataModel } from './ressource.mjs';
|
||||||
|
export { ContactDataModel } from './contact.mjs';
|
||||||
|
export { MutationDataModel } from './mutation.mjs';
|
||||||
|
|
||||||
|
// Modèles d'acteurs
|
||||||
|
export { PersonnageDataModel } from './personnage.mjs';
|
||||||
|
export { CelluleDataModel } from './cellule.mjs';
|
||||||
|
export { CreatureDataModel } from './creature.mjs';
|
||||||
|
|
||||||
|
// Templates de base (si nécessaire pour extension)
|
||||||
|
export { BaseItemModel, BaseEquipItemModel, AutomationItemModel } from './base-item.mjs';
|
||||||
17
modules/models/monnaie.mjs
Normal file
17
modules/models/monnaie.mjs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les monnaies
|
||||||
|
*/
|
||||||
|
export class MonnaieDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
14
modules/models/mutation.mjs
Normal file
14
modules/models/mutation.mjs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les mutations
|
||||||
|
*/
|
||||||
|
export class MutationDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
mutationcategorie: new fields.StringField({ initial: "tares_communes" }),
|
||||||
|
hascomplexite: new fields.BooleanField({ initial: false }),
|
||||||
|
complexite: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
93
modules/models/personnage.mjs
Normal file
93
modules/models/personnage.mjs
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les personnages
|
||||||
|
*/
|
||||||
|
export class PersonnageDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
// Template biodata
|
||||||
|
biodata: new fields.SchemaField({
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
age: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
poids: new fields.StringField({ initial: "" }),
|
||||||
|
taille: new fields.StringField({ initial: "" }),
|
||||||
|
cheveux: new fields.StringField({ initial: "" }),
|
||||||
|
sexe: new fields.StringField({ initial: "" }),
|
||||||
|
yeux: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.StringField({ initial: "" }),
|
||||||
|
habitat: new fields.StringField({ initial: "" }),
|
||||||
|
notes: new fields.StringField({ initial: "" }),
|
||||||
|
statut: new fields.StringField({ initial: "" }),
|
||||||
|
gmnotes: new fields.StringField({ initial: "" }),
|
||||||
|
statutresistant: new fields.StringField({ initial: "commun" })
|
||||||
|
}),
|
||||||
|
// Template core
|
||||||
|
subactors: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
||||||
|
attributs: new fields.SchemaField({
|
||||||
|
adr: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Adresse" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "adresse" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "adr" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pui: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Puissance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "puissance" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pui" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
cla: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Clairvoyance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "clairvoyance" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "cla" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pre: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Présence" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "presence" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pre" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
tre: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Trempe" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "trempe" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "tre" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
bonneaventure: new fields.SchemaField({
|
||||||
|
base: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
actuelle: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
experience: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
eclat: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
sante: new fields.SchemaField({
|
||||||
|
vigueur: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
etat: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
vigueurmodifier: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
nbcombativite: new fields.NumberField({ initial: 5, integer: true })
|
||||||
|
}),
|
||||||
|
adversite: new fields.SchemaField({
|
||||||
|
bleue: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rouge: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
noire: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
vitesse: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
combat: new fields.SchemaField({
|
||||||
|
initbonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
vitessebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
bonusdegats: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
attaquebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
defensebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
defensetotale: new fields.BooleanField({ initial: false }),
|
||||||
|
monte: new fields.BooleanField({ initial: false })
|
||||||
|
})
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
23
modules/models/profil.mjs
Normal file
23
modules/models/profil.mjs
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les profils
|
||||||
|
*/
|
||||||
|
export class ProfilDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
exemples: new fields.StringField({ initial: "" }),
|
||||||
|
attribut1: new fields.StringField({ initial: "" }),
|
||||||
|
attribut2: new fields.StringField({ initial: "" }),
|
||||||
|
attribut3: new fields.StringField({ initial: "" }),
|
||||||
|
competences: new fields.StringField({ initial: "" }),
|
||||||
|
talentsinitie: new fields.StringField({ initial: "" }),
|
||||||
|
prerequisaguerri: new fields.StringField({ initial: "" }),
|
||||||
|
talentsaguerri: new fields.StringField({ initial: "" }),
|
||||||
|
prerequismaitre: new fields.StringField({ initial: "" }),
|
||||||
|
talentsmaitre: new fields.StringField({ initial: "" }),
|
||||||
|
celluleinfo: new fields.StringField({ initial: "" }),
|
||||||
|
equipement: new fields.StringField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
19
modules/models/protection.mjs
Normal file
19
modules/models/protection.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les protections
|
||||||
|
*/
|
||||||
|
export class ProtectionDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
protection: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
adversitepoids: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
12
modules/models/ressource.mjs
Normal file
12
modules/models/ressource.mjs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les ressources
|
||||||
|
*/
|
||||||
|
export class RessourceDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
pointdev: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
30
modules/models/talent.mjs
Normal file
30
modules/models/talent.mjs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les talents
|
||||||
|
*/
|
||||||
|
export class TalentDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
isautomated: new fields.BooleanField({ initial: false }),
|
||||||
|
automations: new fields.ArrayField(
|
||||||
|
new fields.SchemaField({
|
||||||
|
id: new fields.StringField({ initial: "" }),
|
||||||
|
eventtype: new fields.StringField({ initial: "on-drop" }),
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
bonusname: new fields.StringField({ initial: "vigueur" }),
|
||||||
|
bonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
competence: new fields.StringField({ initial: "" }),
|
||||||
|
minLevel: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
baCost: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
{ initial: [] }
|
||||||
|
),
|
||||||
|
talenttype: new fields.StringField({ initial: "" }),
|
||||||
|
utilisation: new fields.StringField({ initial: "" }),
|
||||||
|
prerequis: new fields.StringField({ initial: "" }),
|
||||||
|
resumebonus: new fields.StringField({ initial: "" }),
|
||||||
|
used: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000234
|
MANIFEST-000333
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/23-13:47:38.795196 7fa5274006c0 Recovering log #232
|
2026/01/05-22:20:56.155164 7f93eb7fe6c0 Recovering log #331
|
||||||
2024/08/23-13:47:38.805401 7fa5274006c0 Delete type=3 #230
|
2026/01/05-22:20:56.166270 7f93eb7fe6c0 Delete type=3 #329
|
||||||
2024/08/23-13:47:38.805513 7fa5274006c0 Delete type=0 #232
|
2026/01/05-22:20:56.166327 7f93eb7fe6c0 Delete type=0 #331
|
||||||
2024/08/23-13:48:57.336586 7fa525a006c0 Level-0 table #237: started
|
2026/01/05-22:39:51.165703 7f93e9ffb6c0 Level-0 table #336: started
|
||||||
2024/08/23-13:48:57.336622 7fa525a006c0 Level-0 table #237: 0 bytes OK
|
2026/01/05-22:39:51.165730 7f93e9ffb6c0 Level-0 table #336: 0 bytes OK
|
||||||
2024/08/23-13:48:57.421126 7fa525a006c0 Delete type=0 #235
|
2026/01/05-22:39:51.171765 7f93e9ffb6c0 Delete type=0 #334
|
||||||
2024/08/23-13:48:57.421290 7fa525a006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.199079 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
2024/08/23-13:48:57.564386 7fa525a006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.199117 7f93e9ffb6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/22-14:01:55.546930 7f679aa006c0 Recovering log #228
|
2025/11/21-21:17:11.288531 7f34ccff96c0 Recovering log #327
|
||||||
2024/08/22-14:01:55.557048 7f679aa006c0 Delete type=3 #226
|
2025/11/21-21:17:11.303357 7f34ccff96c0 Delete type=3 #325
|
||||||
2024/08/22-14:01:55.557151 7f679aa006c0 Delete type=0 #228
|
2025/11/21-21:17:11.303441 7f34ccff96c0 Delete type=0 #327
|
||||||
2024/08/22-14:20:19.478989 7f679a0006c0 Level-0 table #233: started
|
2025/11/21-21:20:34.182000 7f322ffff6c0 Level-0 table #332: started
|
||||||
2024/08/22-14:20:19.479098 7f679a0006c0 Level-0 table #233: 0 bytes OK
|
2025/11/21-21:20:34.182040 7f322ffff6c0 Level-0 table #332: 0 bytes OK
|
||||||
2024/08/22-14:20:19.485098 7f679a0006c0 Delete type=0 #231
|
2025/11/21-21:20:34.189103 7f322ffff6c0 Delete type=0 #330
|
||||||
2024/08/22-14:20:19.512356 7f679a0006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.199156 7f322ffff6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
2024/08/22-14:20:19.512401 7f679a0006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.220809 7f322ffff6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/aides-de-jeu/MANIFEST-000333
Normal file
BIN
packs/aides-de-jeu/MANIFEST-000333
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/armes/000275.ldb
Normal file
BIN
packs/armes/000275.ldb
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000234
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/23-13:47:38.627093 7fa527e006c0 Recovering log #232
|
2026/01/05-22:20:56.048400 7f93eaffd6c0 Recovering log #330
|
||||||
2024/08/23-13:47:38.637783 7fa527e006c0 Delete type=3 #230
|
2026/01/05-22:20:56.058614 7f93eaffd6c0 Delete type=3 #328
|
||||||
2024/08/23-13:47:38.637866 7fa527e006c0 Delete type=0 #232
|
2026/01/05-22:20:56.058678 7f93eaffd6c0 Delete type=0 #330
|
||||||
2024/08/23-13:48:56.318743 7fa525a006c0 Level-0 table #237: started
|
2026/01/05-22:39:51.125881 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/08/23-13:48:56.318775 7fa525a006c0 Level-0 table #237: 0 bytes OK
|
2026/01/05-22:39:51.125907 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/08/23-13:48:56.397785 7fa525a006c0 Delete type=0 #235
|
2026/01/05-22:39:51.131746 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/08/23-13:48:56.397945 7fa525a006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137885 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
2024/08/23-13:48:56.397966 7fa525a006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137919 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/22-14:01:55.422620 7f679b4006c0 Recovering log #228
|
2025/11/21-21:17:11.119952 7f34cd7fa6c0 Recovering log #326
|
||||||
2024/08/22-14:01:55.432987 7f679b4006c0 Delete type=3 #226
|
2025/11/21-21:17:11.135840 7f34cd7fa6c0 Delete type=3 #324
|
||||||
2024/08/22-14:01:55.433138 7f679b4006c0 Delete type=0 #228
|
2025/11/21-21:17:11.135940 7f34cd7fa6c0 Delete type=0 #326
|
||||||
2024/08/22-14:20:19.439915 7f679a0006c0 Level-0 table #233: started
|
2025/11/21-21:20:34.115063 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/08/22-14:20:19.439953 7f679a0006c0 Level-0 table #233: 0 bytes OK
|
2025/11/21-21:20:34.115090 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/08/22-14:20:19.445868 7f679a0006c0 Delete type=0 #231
|
2025/11/21-21:20:34.121038 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/08/22-14:20:19.453304 7f679a0006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121241 7f322ffff6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
2024/08/22-14:20:19.453384 7f679a0006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121271 7f322ffff6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/armes/MANIFEST-000332
Normal file
BIN
packs/armes/MANIFEST-000332
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/competences-creatures/000275.ldb
Normal file
BIN
packs/competences-creatures/000275.ldb
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000234
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/23-13:47:38.596409 7fa5274006c0 Recovering log #232
|
2026/01/05-22:20:56.023009 7f93eb7fe6c0 Recovering log #330
|
||||||
2024/08/23-13:47:38.606638 7fa5274006c0 Delete type=3 #230
|
2026/01/05-22:20:56.032779 7f93eb7fe6c0 Delete type=3 #328
|
||||||
2024/08/23-13:47:38.606793 7fa5274006c0 Delete type=0 #232
|
2026/01/05-22:20:56.032853 7f93eb7fe6c0 Delete type=0 #330
|
||||||
2024/08/23-13:48:56.013684 7fa525a006c0 Level-0 table #237: started
|
2026/01/05-22:39:51.087705 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/08/23-13:48:56.013735 7fa525a006c0 Level-0 table #237: 0 bytes OK
|
2026/01/05-22:39:51.087797 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/08/23-13:48:56.087555 7fa525a006c0 Delete type=0 #235
|
2026/01/05-22:39:51.094096 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/08/23-13:48:56.087829 7fa525a006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112531 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
2024/08/23-13:48:56.087895 7fa525a006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112576 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/22-14:01:55.397936 7f679aa006c0 Recovering log #228
|
2025/11/21-21:17:11.082663 7f34ccff96c0 Recovering log #326
|
||||||
2024/08/22-14:01:55.407608 7f679aa006c0 Delete type=3 #226
|
2025/11/21-21:17:11.097415 7f34ccff96c0 Delete type=3 #324
|
||||||
2024/08/22-14:01:55.407662 7f679aa006c0 Delete type=0 #228
|
2025/11/21-21:17:11.097522 7f34ccff96c0 Delete type=0 #326
|
||||||
2024/08/22-14:20:19.402386 7f679a0006c0 Level-0 table #233: started
|
2025/11/21-21:20:34.082672 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/08/22-14:20:19.402465 7f679a0006c0 Level-0 table #233: 0 bytes OK
|
2025/11/21-21:20:34.082698 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/08/22-14:20:19.408589 7f679a0006c0 Delete type=0 #231
|
2025/11/21-21:20:34.088631 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/08/22-14:20:19.427406 7f679a0006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094927 7f322ffff6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
2024/08/22-14:20:19.427445 7f679a0006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094971 7f322ffff6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/competences-creatures/MANIFEST-000332
Normal file
BIN
packs/competences-creatures/MANIFEST-000332
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/competences/000275.ldb
Normal file
BIN
packs/competences/000275.ldb
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000234
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/23-13:47:38.566128 7fa527e006c0 Recovering log #232
|
2026/01/05-22:20:55.998572 7f93ea7fc6c0 Recovering log #330
|
||||||
2024/08/23-13:47:38.575513 7fa527e006c0 Delete type=3 #230
|
2026/01/05-22:20:56.008503 7f93ea7fc6c0 Delete type=3 #328
|
||||||
2024/08/23-13:47:38.575582 7fa527e006c0 Delete type=0 #232
|
2026/01/05-22:20:56.008556 7f93ea7fc6c0 Delete type=0 #330
|
||||||
2024/08/23-13:48:55.864079 7fa525a006c0 Level-0 table #237: started
|
2026/01/05-22:39:51.100430 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/08/23-13:48:55.864129 7fa525a006c0 Level-0 table #237: 0 bytes OK
|
2026/01/05-22:39:51.100453 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/08/23-13:48:55.931837 7fa525a006c0 Delete type=0 #235
|
2026/01/05-22:39:51.106283 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/08/23-13:48:56.087790 7fa525a006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112557 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
2024/08/23-13:48:56.087862 7fa525a006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112589 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/22-14:01:55.370959 7f679b4006c0 Recovering log #228
|
2025/11/21-21:17:11.044217 7f34ce7fc6c0 Recovering log #326
|
||||||
2024/08/22-14:01:55.381567 7f679b4006c0 Delete type=3 #226
|
2025/11/21-21:17:11.059351 7f34ce7fc6c0 Delete type=3 #324
|
||||||
2024/08/22-14:01:55.381665 7f679b4006c0 Delete type=0 #228
|
2025/11/21-21:17:11.059409 7f34ce7fc6c0 Delete type=0 #326
|
||||||
2024/08/22-14:20:19.420924 7f679a0006c0 Level-0 table #233: started
|
2025/11/21-21:20:34.076024 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/08/22-14:20:19.420947 7f679a0006c0 Level-0 table #233: 0 bytes OK
|
2025/11/21-21:20:34.076057 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/08/22-14:20:19.427335 7f679a0006c0 Delete type=0 #231
|
2025/11/21-21:20:34.082546 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/08/22-14:20:19.427434 7f679a0006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094915 7f322ffff6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
2024/08/22-14:20:19.427488 7f679a0006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094962 7f322ffff6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/competences/MANIFEST-000332
Normal file
BIN
packs/competences/MANIFEST-000332
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/equipement/000275.ldb
Normal file
BIN
packs/equipement/000275.ldb
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000234
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/23-13:47:38.657455 7fa5274006c0 Recovering log #232
|
2026/01/05-22:20:56.073305 7f93eb7fe6c0 Recovering log #330
|
||||||
2024/08/23-13:47:38.667848 7fa5274006c0 Delete type=3 #230
|
2026/01/05-22:20:56.084269 7f93eb7fe6c0 Delete type=3 #328
|
||||||
2024/08/23-13:47:38.667939 7fa5274006c0 Delete type=0 #232
|
2026/01/05-22:20:56.084336 7f93eb7fe6c0 Delete type=0 #330
|
||||||
2024/08/23-13:48:56.087965 7fa525a006c0 Level-0 table #237: started
|
2026/01/05-22:39:51.112726 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/08/23-13:48:56.087992 7fa525a006c0 Level-0 table #237: 0 bytes OK
|
2026/01/05-22:39:51.112760 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/08/23-13:48:56.169466 7fa525a006c0 Delete type=0 #235
|
2026/01/05-22:39:51.119133 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/08/23-13:48:56.397911 7fa525a006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137862 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
2024/08/23-13:48:56.397953 7fa525a006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137903 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/22-14:01:55.448753 7f679aa006c0 Recovering log #228
|
2025/11/21-21:17:11.157103 7f34ce7fc6c0 Recovering log #326
|
||||||
2024/08/22-14:01:55.458732 7f679aa006c0 Delete type=3 #226
|
2025/11/21-21:17:11.172875 7f34ce7fc6c0 Delete type=3 #324
|
||||||
2024/08/22-14:01:55.458797 7f679aa006c0 Delete type=0 #228
|
2025/11/21-21:17:11.172939 7f34ce7fc6c0 Delete type=0 #326
|
||||||
2024/08/22-14:20:19.427565 7f679a0006c0 Level-0 table #233: started
|
2025/11/21-21:20:34.095092 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/08/22-14:20:19.427601 7f679a0006c0 Level-0 table #233: 0 bytes OK
|
2025/11/21-21:20:34.095126 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/08/22-14:20:19.433658 7f679a0006c0 Delete type=0 #231
|
2025/11/21-21:20:34.102295 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/08/22-14:20:19.453255 7f679a0006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121183 7f322ffff6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
2024/08/22-14:20:19.453345 7f679a0006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121249 7f322ffff6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/equipement/MANIFEST-000332
Normal file
BIN
packs/equipement/MANIFEST-000332
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/historiques/000275.ldb
Normal file
BIN
packs/historiques/000275.ldb
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000234
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/23-13:47:38.610273 7fa52ca006c0 Recovering log #232
|
2026/01/05-22:20:56.034759 7f93ea7fc6c0 Recovering log #330
|
||||||
2024/08/23-13:47:38.621248 7fa52ca006c0 Delete type=3 #230
|
2026/01/05-22:20:56.045303 7f93ea7fc6c0 Delete type=3 #328
|
||||||
2024/08/23-13:47:38.621323 7fa52ca006c0 Delete type=0 #232
|
2026/01/05-22:20:56.045387 7f93ea7fc6c0 Delete type=0 #330
|
||||||
2024/08/23-13:48:55.931980 7fa525a006c0 Level-0 table #237: started
|
2026/01/05-22:39:51.094206 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/08/23-13:48:55.932009 7fa525a006c0 Level-0 table #237: 0 bytes OK
|
2026/01/05-22:39:51.094228 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/08/23-13:48:56.013452 7fa525a006c0 Delete type=0 #235
|
2026/01/05-22:39:51.100330 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/08/23-13:48:56.087810 7fa525a006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112546 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
2024/08/23-13:48:56.087879 7fa525a006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112583 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/22-14:01:55.409582 7f679be006c0 Recovering log #228
|
2025/11/21-21:17:11.100312 7f34ce7fc6c0 Recovering log #326
|
||||||
2024/08/22-14:01:55.420093 7f679be006c0 Delete type=3 #226
|
2025/11/21-21:17:11.117500 7f34ce7fc6c0 Delete type=3 #324
|
||||||
2024/08/22-14:01:55.420194 7f679be006c0 Delete type=0 #228
|
2025/11/21-21:17:11.117567 7f34ce7fc6c0 Delete type=0 #326
|
||||||
2024/08/22-14:20:19.408703 7f679a0006c0 Level-0 table #233: started
|
2025/11/21-21:20:34.069446 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/08/22-14:20:19.408725 7f679a0006c0 Level-0 table #233: 0 bytes OK
|
2025/11/21-21:20:34.069505 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/08/22-14:20:19.414674 7f679a0006c0 Delete type=0 #231
|
2025/11/21-21:20:34.075899 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/08/22-14:20:19.427416 7f679a0006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094892 7f322ffff6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
2024/08/22-14:20:19.427460 7f679a0006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094951 7f322ffff6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/historiques/MANIFEST-000332
Normal file
BIN
packs/historiques/MANIFEST-000332
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/mutations/000185.ldb
Normal file
BIN
packs/mutations/000185.ldb
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000144
|
MANIFEST-000242
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/23-13:47:38.579970 7fa526a006c0 Recovering log #142
|
2026/01/05-22:20:56.010250 7f93eaffd6c0 Recovering log #240
|
||||||
2024/08/23-13:47:38.590471 7fa526a006c0 Delete type=3 #140
|
2026/01/05-22:20:56.020208 7f93eaffd6c0 Delete type=3 #238
|
||||||
2024/08/23-13:47:38.590551 7fa526a006c0 Delete type=0 #142
|
2026/01/05-22:20:56.020270 7f93eaffd6c0 Delete type=0 #240
|
||||||
2024/08/23-13:48:55.783205 7fa525a006c0 Level-0 table #147: started
|
2026/01/05-22:39:51.106439 7f93e9ffb6c0 Level-0 table #245: started
|
||||||
2024/08/23-13:48:55.783244 7fa525a006c0 Level-0 table #147: 0 bytes OK
|
2026/01/05-22:39:51.106472 7f93e9ffb6c0 Level-0 table #245: 0 bytes OK
|
||||||
2024/08/23-13:48:55.863893 7fa525a006c0 Delete type=0 #145
|
2026/01/05-22:39:51.112404 7f93e9ffb6c0 Delete type=0 #243
|
||||||
2024/08/23-13:48:56.087764 7fa525a006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112570 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
2024/08/23-13:48:56.087846 7fa525a006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112598 7f93e9ffb6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/22-14:01:55.384667 7f67a10006c0 Recovering log #138
|
2025/11/21-21:17:11.062660 7f34cdffb6c0 Recovering log #236
|
||||||
2024/08/22-14:01:55.394800 7f67a10006c0 Delete type=3 #136
|
2025/11/21-21:17:11.079663 7f34cdffb6c0 Delete type=3 #234
|
||||||
2024/08/22-14:01:55.394860 7f67a10006c0 Delete type=0 #138
|
2025/11/21-21:17:11.079731 7f34cdffb6c0 Delete type=0 #236
|
||||||
2024/08/22-14:20:19.414840 7f679a0006c0 Level-0 table #143: started
|
2025/11/21-21:20:34.088817 7f322ffff6c0 Level-0 table #241: started
|
||||||
2024/08/22-14:20:19.414881 7f679a0006c0 Level-0 table #143: 0 bytes OK
|
2025/11/21-21:20:34.088856 7f322ffff6c0 Level-0 table #241: 0 bytes OK
|
||||||
2024/08/22-14:20:19.420821 7f679a0006c0 Delete type=0 #141
|
2025/11/21-21:20:34.094750 7f322ffff6c0 Delete type=0 #239
|
||||||
2024/08/22-14:20:19.427425 7f679a0006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094940 7f322ffff6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
2024/08/22-14:20:19.427475 7f679a0006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094980 7f322ffff6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/mutations/MANIFEST-000242
Normal file
BIN
packs/mutations/MANIFEST-000242
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/profils/000275.ldb
Normal file
BIN
packs/profils/000275.ldb
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000234
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/23-13:47:38.672577 7fa52ca006c0 Recovering log #232
|
2026/01/05-22:20:56.088422 7f93eaffd6c0 Recovering log #330
|
||||||
2024/08/23-13:47:38.682608 7fa52ca006c0 Delete type=3 #230
|
2026/01/05-22:20:56.098507 7f93eaffd6c0 Delete type=3 #328
|
||||||
2024/08/23-13:47:38.682699 7fa52ca006c0 Delete type=0 #232
|
2026/01/05-22:20:56.098565 7f93eaffd6c0 Delete type=0 #330
|
||||||
2024/08/23-13:48:56.241375 7fa525a006c0 Level-0 table #237: started
|
2026/01/05-22:39:51.119253 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/08/23-13:48:56.241399 7fa525a006c0 Level-0 table #237: 0 bytes OK
|
2026/01/05-22:39:51.119282 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/08/23-13:48:56.318582 7fa525a006c0 Delete type=0 #235
|
2026/01/05-22:39:51.125789 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/08/23-13:48:56.397935 7fa525a006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137875 7f93e9ffb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
2024/08/23-13:48:56.397976 7fa525a006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137911 7f93e9ffb6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/08/22-14:01:55.461352 7f679be006c0 Recovering log #228
|
2025/11/21-21:17:11.175622 7f34cd7fa6c0 Recovering log #326
|
||||||
2024/08/22-14:01:55.471080 7f679be006c0 Delete type=3 #226
|
2025/11/21-21:17:11.190667 7f34cd7fa6c0 Delete type=3 #324
|
||||||
2024/08/22-14:01:55.471143 7f679be006c0 Delete type=0 #228
|
2025/11/21-21:17:11.190757 7f34cd7fa6c0 Delete type=0 #326
|
||||||
2024/08/22-14:20:19.433763 7f679a0006c0 Level-0 table #233: started
|
2025/11/21-21:20:34.109081 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/08/22-14:20:19.433785 7f679a0006c0 Level-0 table #233: 0 bytes OK
|
2025/11/21-21:20:34.109106 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/08/22-14:20:19.439767 7f679a0006c0 Delete type=0 #231
|
2025/11/21-21:20:34.114933 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/08/22-14:20:19.453281 7f679a0006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121229 7f322ffff6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
2024/08/22-14:20:19.453364 7f679a0006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121264 7f322ffff6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/profils/MANIFEST-000332
Normal file
BIN
packs/profils/MANIFEST-000332
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/protections/000275.ldb
Normal file
BIN
packs/protections/000275.ldb
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user