Compare commits
28 Commits
69a2f81ede
...
fvtt-hawkm
| Author | SHA1 | Date | |
|---|---|---|---|
| 7a7398f8ca | |||
| 93600f7e13 | |||
| a6fa3afbee | |||
| 1051349dd0 | |||
| a245b0e87c | |||
| c9ce3367ed | |||
| e95e068112 | |||
| 6dd63a2c54 | |||
| 650e4b7449 | |||
| 3f27482ad9 | |||
| 436b282ff5 | |||
| 39f8cfdbcc | |||
| 24a57a906e | |||
| 667f3678fb | |||
| d5dd9e5bf7 | |||
| 3403b72d1f | |||
| 8a4487c833 | |||
| 4eece5aaf4 | |||
| b574ba76ef | |||
| 0b9e1a80af | |||
| 6505b1c969 | |||
| 280e90d7a6 | |||
| 4fa9a911a0 | |||
| b8c61f8f12 | |||
| b47b14a4b1 | |||
| 9391acf6ee | |||
| 8af9c582bf | |||
| fac158e0ad |
BIN
assets/scenes/hawkmoon_map_europe.webp
Normal file
BIN
assets/scenes/hawkmoon_map_europe.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 807 KiB |
BIN
assets/scenes/scenes-CXx90Qk7nXEd2uTh-thumb.webp
Normal file
BIN
assets/scenes/scenes-CXx90Qk7nXEd2uTh-thumb.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/scenes/scenes-j6RYn1X7KfhTioX5-thumb.webp
Normal file
BIN
assets/scenes/scenes-j6RYn1X7KfhTioX5-thumb.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
@@ -7,12 +7,12 @@ 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() {
|
||||||
|
|
||||||
return mergeObject(super.defaultOptions, {
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
|
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
|
||||||
template: "systems/fvtt-hawkmoon-cyd/templates/actor-sheet.html",
|
template: "systems/fvtt-hawkmoon-cyd/templates/actor-sheet.html",
|
||||||
width: 640,
|
width: 640,
|
||||||
@@ -25,7 +25,7 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
const objectData = duplicate(this.object)
|
const objectData = foundry.utils.duplicate(this.object)
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
@@ -39,29 +39,30 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
skills: this.actor.getSkills(),
|
skills: this.actor.getSkills(),
|
||||||
armes: duplicate(this.actor.getWeapons()),
|
armes: foundry.utils.duplicate(this.actor.getWeapons()),
|
||||||
monnaies: duplicate(this.actor.getMonnaies()),
|
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
|
||||||
protections: duplicate(this.actor.getArmors()),
|
protections: foundry.utils.duplicate(this.actor.getArmors()),
|
||||||
historiques: duplicate(this.actor.getHistoriques() || []),
|
historiques: foundry.utils.duplicate(this.actor.getHistoriques() || []),
|
||||||
talents: duplicate(this.actor.getTalents() || []),
|
talents: foundry.utils.duplicate(this.actor.getTalents() || []),
|
||||||
mutations: duplicate(this.actor.getMutations() || []),
|
mutations: foundry.utils.duplicate(this.actor.getMutations() || []),
|
||||||
talentsCell: this.getCelluleTalents(),
|
talentsCell: this.getCelluleTalents(),
|
||||||
profils: duplicate(this.actor.getProfils() || []),
|
profils: foundry.utils.duplicate(this.actor.getProfils() || []),
|
||||||
combat: this.actor.getCombatValues(),
|
combat: this.actor.getCombatValues(),
|
||||||
equipements: duplicate(this.actor.getEquipments()),
|
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
|
||||||
artefacts: duplicate(this.actor.getArtefacts()),
|
artefacts: foundry.utils.duplicate(this.actor.getArtefacts()),
|
||||||
richesse: this.actor.computeRichesse(),
|
richesse: this.actor.computeRichesse(),
|
||||||
coupDevastateur: this.actor.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup devastateur" && !it.system.used),
|
coupDevastateur: this.actor.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup devastateur" && !it.system.used),
|
||||||
valeurEquipement: this.actor.computeValeurEquipement(),
|
valeurEquipement: this.actor.computeValeurEquipement(),
|
||||||
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,
|
||||||
isGM: game.user.isGM
|
isGM: game.user.isGM,
|
||||||
|
config: game.system.hawkmoon.config
|
||||||
}
|
}
|
||||||
this.formData = formData;
|
this.formData = formData;
|
||||||
|
|
||||||
@@ -90,14 +91,14 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
|
|
||||||
// Update Inventory Item
|
// Update Inventory Item
|
||||||
html.find('.item-edit').click(ev => {
|
html.find('.item-edit').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item")
|
const li = $(ev.currentTarget).parents(".item")
|
||||||
let itemId = li.data("item-id")
|
let itemId = li.data("item-id")
|
||||||
const item = this.actor.items.get( itemId )
|
const item = this.actor.items.get( itemId )
|
||||||
item.sheet.render(true)
|
item.sheet.render(true)
|
||||||
})
|
})
|
||||||
// Delete Inventory Item
|
// Delete Inventory Item
|
||||||
html.find('.item-delete').click(ev => {
|
html.find('.item-delete').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
@@ -119,7 +120,7 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
let value = Number($(event.currentTarget).data("adversite-value"))
|
let value = Number($(event.currentTarget).data("adversite-value"))
|
||||||
this.actor.incDecAdversite(adv, value)
|
this.actor.incDecAdversite(adv, value)
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.quantity-modify').click(event => {
|
html.find('.quantity-modify').click(event => {
|
||||||
const li = $(event.currentTarget).parents(".item")
|
const li = $(event.currentTarget).parents(".item")
|
||||||
const value = Number($(event.currentTarget).data("quantite-value"))
|
const value = Number($(event.currentTarget).data("quantite-value"))
|
||||||
@@ -129,7 +130,7 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
html.find('.roll-initiative').click((event) => {
|
html.find('.roll-initiative').click((event) => {
|
||||||
this.actor.rollAttribut("adr", true)
|
this.actor.rollAttribut("adr", true)
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.roll-attribut').click((event) => {
|
html.find('.roll-attribut').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item")
|
const li = $(event.currentTarget).parents(".item")
|
||||||
let attrKey = li.data("attr-key")
|
let attrKey = li.data("attr-key")
|
||||||
@@ -146,9 +147,9 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
let armeId = li.data("item-id")
|
let armeId = li.data("item-id")
|
||||||
this.actor.rollArmeOffensif(armeId)
|
this.actor.rollArmeOffensif(armeId)
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.roll-assomer').click((event) => {
|
html.find('.roll-assommer').click((event) => {
|
||||||
this.actor.rollAssomer()
|
this.actor.rollAssommer()
|
||||||
})
|
})
|
||||||
html.find('.roll-coup-bas').click((event) => {
|
html.find('.roll-coup-bas').click((event) => {
|
||||||
this.actor.rollCoupBas()
|
this.actor.rollCoupBas()
|
||||||
@@ -162,30 +163,30 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
html.find('.roll-desengager').click((event) => {
|
html.find('.roll-desengager').click((event) => {
|
||||||
this.actor.rollDesengager()
|
this.actor.rollDesengager()
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.roll-arme-degats').click((event) => {
|
html.find('.roll-arme-degats').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item")
|
const li = $(event.currentTarget).parents(".item")
|
||||||
let armeId = li.data("item-id")
|
let armeId = li.data("item-id")
|
||||||
this.actor.rollArmeDegats(armeId)
|
this.actor.rollArmeDegats(armeId)
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.item-add').click((event) => {
|
html.find('.item-add').click((event) => {
|
||||||
const itemType = $(event.currentTarget).data("type")
|
const itemType = $(event.currentTarget).data("type")
|
||||||
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
|
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.lock-unlock-sheet').click((event) => {
|
html.find('.lock-unlock-sheet').click((event) => {
|
||||||
this.options.editScore = !this.options.editScore;
|
this.options.editScore = !this.options.editScore;
|
||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
html.find('.item-equip').click(ev => {
|
html.find('.item-equip').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
this.actor.equipItem( li.data("item-id") );
|
this.actor.equipItem( li.data("item-id") );
|
||||||
this.render(true);
|
this.render(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/** @override */
|
/** @override */
|
||||||
setPosition(options = {}) {
|
setPosition(options = {}) {
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ export class HawkmoonActor extends Actor {
|
|||||||
/**
|
/**
|
||||||
* Override the create() function to provide additional SoS functionality.
|
* Override the create() function to provide additional SoS functionality.
|
||||||
*
|
*
|
||||||
* This overrided create() function adds initial items
|
* This overrided create() function adds initial items
|
||||||
* Namely: Basic skills, money,
|
* Namely: Basic skills, money,
|
||||||
*
|
*
|
||||||
* @param {Object} data Barebones actor data which this function adds onto.
|
* @param {Object} data Barebones actor data which this function adds onto.
|
||||||
* @param {Object} options (Unused) Additional options which customize the creation workflow.
|
* @param {Object} options (Unused) Additional options which customize the creation workflow.
|
||||||
@@ -67,22 +67,26 @@ export class HawkmoonActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareArme(arme) {
|
prepareArme(arme) {
|
||||||
arme = duplicate(arme)
|
if (this.type == "cellule") {
|
||||||
|
return arme
|
||||||
|
}
|
||||||
|
|
||||||
|
arme = foundry.utils.duplicate(arme)
|
||||||
let combat = this.getCombatValues()
|
let combat = this.getCombatValues()
|
||||||
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
|
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
|
||||||
let bonusDefense = this.getBonusDefenseFromTalents()
|
let bonusDefense = this.getBonusDefenseFromTalents()
|
||||||
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
||||||
arme.system.attrKey = "pui"
|
arme.system.attrKey = "pui"
|
||||||
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
|
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
|
||||||
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0 )
|
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0)
|
||||||
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.seuildefense + bonusDefense + (this.system.combat.monte ? 3 : 0 )
|
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.seuildefense + bonusDefense + (this.system.combat.monte ? 3 : 0)
|
||||||
console.log("Arme", arme.system.totalDefensif, combat, arme.system.competence.system.niveau, arme.system.seuildefense, bonusDefense)
|
console.log("Arme", arme.system.totalDefensif, combat, arme.system.competence.system.niveau, arme.system.seuildefense, bonusDefense)
|
||||||
arme.system.isdefense = true
|
arme.system.isdefense = true
|
||||||
arme.system.isMelee = true
|
arme.system.isMelee = true
|
||||||
arme.system.isDistance = false
|
arme.system.isDistance = false
|
||||||
}
|
}
|
||||||
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
|
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
|
||||||
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
|
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
|
||||||
arme.system.attrKey = "adr"
|
arme.system.attrKey = "adr"
|
||||||
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
||||||
arme.system.totalDegats = arme.system.degats
|
arme.system.totalDegats = arme.system.degats
|
||||||
@@ -146,7 +150,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
getSkills() {
|
getSkills() {
|
||||||
let comp = []
|
let comp = []
|
||||||
for (let item of this.items) {
|
for (let item of this.items) {
|
||||||
item = duplicate(item)
|
item = foundry.utils.duplicate(item)
|
||||||
if (item.type == "competence") {
|
if (item.type == "competence") {
|
||||||
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0)
|
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0)
|
||||||
item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
|
item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
|
||||||
@@ -168,7 +172,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
|
|
||||||
/* ----------------------- --------------------- */
|
/* ----------------------- --------------------- */
|
||||||
addMember(actorId) {
|
addMember(actorId) {
|
||||||
let members = duplicate(this.system.members)
|
let members = foundry.utils.duplicate(this.system.members)
|
||||||
members.push({ id: actorId })
|
members.push({ id: actorId })
|
||||||
this.update({ 'system.members': members })
|
this.update({ 'system.members': members })
|
||||||
}
|
}
|
||||||
@@ -202,6 +206,20 @@ export class HawkmoonActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCombatValues() {
|
getCombatValues() {
|
||||||
|
if (this.type == "cellule") {
|
||||||
|
return {
|
||||||
|
initBase: 0,
|
||||||
|
initTotal: 0,
|
||||||
|
bonusDegats: 0,
|
||||||
|
bonusDegatsTotal: 0,
|
||||||
|
vitesseBase: 0,
|
||||||
|
vitesseTotal: 0,
|
||||||
|
defenseBase: 0,
|
||||||
|
protection: 0,
|
||||||
|
defenseTotal: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let combat = {
|
let combat = {
|
||||||
initBase: this.system.attributs.adr.value,
|
initBase: this.system.attributs.adr.value,
|
||||||
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
|
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
|
||||||
@@ -235,21 +253,28 @@ export class HawkmoonActor extends Actor {
|
|||||||
this.update({ 'system.sante.vigueur': vigueur })
|
this.update({ 'system.sante.vigueur': vigueur })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
super.prepareDerivedData()
|
super.prepareDerivedData()
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
_preUpdate(changed, options, user) {
|
_preUpdate(changed, options, user) {
|
||||||
|
if (changed?.system?.sante?.etat && changed?.system?.sante?.etat != this.system.sante.etat) {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.processCombativite(changed.system.sante)
|
||||||
|
}, 800)
|
||||||
|
}
|
||||||
super._preUpdate(changed, options, user);
|
super._preUpdate(changed, options, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
_onUpdate(data, options, user) {
|
||||||
|
super._onUpdate(data, options, user);
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getItemById(id) {
|
getItemById(id) {
|
||||||
let item = this.items.find(item => item.id == id);
|
let item = this.items.find(item => item.id == id);
|
||||||
if (item) {
|
if (item) {
|
||||||
item = duplicate(item)
|
item = foundry.utils.duplicate(item)
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@@ -282,7 +307,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
checkAttribut(attribut, minLevel) {
|
checkAttribut(attribut, minLevel) {
|
||||||
let attr = this.system.attributs.find(at => at.labelnorm == attribut.toLowerCase())
|
let attr = this.system.attributs.find(at => at.labelnorm == attribut.toLowerCase())
|
||||||
if (attr && attr.value >= minLevel) {
|
if (attr && attr.value >= minLevel) {
|
||||||
return { isValid: true, attr: duplicate(attr) }
|
return { isValid: true, attr: foundry.utils.duplicate(attr) }
|
||||||
}
|
}
|
||||||
return { isValid: false }
|
return { isValid: false }
|
||||||
}
|
}
|
||||||
@@ -290,11 +315,11 @@ export class HawkmoonActor extends Actor {
|
|||||||
checkAttributOrCompetenceLevel(compName, minLevel) {
|
checkAttributOrCompetenceLevel(compName, minLevel) {
|
||||||
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase() && i.system.niveau >= minLevel)
|
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase() && i.system.niveau >= minLevel)
|
||||||
if (comp) {
|
if (comp) {
|
||||||
return { isValid: true, item: duplicate(comp) }
|
return { isValid: true, item: foundry.utils.duplicate(comp) }
|
||||||
} else {
|
} else {
|
||||||
for (let attrKey in this.system.attributs) {
|
for (let attrKey in this.system.attributs) {
|
||||||
if (this.system.attributs[attrKey].label.toLowerCase() == compName.toLowerCase() && this.system.attributs[attrKey].value >= minLevel) {
|
if (this.system.attributs[attrKey].label.toLowerCase() == compName.toLowerCase() && this.system.attributs[attrKey].value >= minLevel) {
|
||||||
return { isValid: true, item: duplicate(this.system.attributs[attrKey]) }
|
return { isValid: true, item: foundry.utils.duplicate(this.system.attributs[attrKey]) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -304,7 +329,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
addCompetenceBonus(compName, bonus, baCost) {
|
addCompetenceBonus(compName, bonus, baCost) {
|
||||||
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase())
|
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase())
|
||||||
if (comp) {
|
if (comp) {
|
||||||
comp = duplicate(comp)
|
comp = foundry.utils.duplicate(comp)
|
||||||
comp.system.bonus = bonus
|
comp.system.bonus = bonus
|
||||||
comp.system.baCost = baCost
|
comp.system.baCost = baCost
|
||||||
return { isValid: true, item: comp }
|
return { isValid: true, item: comp }
|
||||||
@@ -388,22 +413,28 @@ export class HawkmoonActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
changeEtatCombativite(value) {
|
changeEtatCombativite(value) {
|
||||||
if ( value === "vaincu") {
|
if (value === "vaincu") {
|
||||||
value = 200
|
value = 200
|
||||||
}
|
}
|
||||||
let sante = duplicate(this.system.sante)
|
let sante = foundry.utils.duplicate(this.system.sante)
|
||||||
sante.etat += Number(value)
|
sante.etat += Number(value)
|
||||||
sante.etat = Math.max(sante.etat, 0)
|
sante.etat = Math.max(sante.etat, 0)
|
||||||
sante.etat = Math.min(sante.etat, 5)
|
sante.etat = Math.min(sante.etat, this.system.sante.nbcombativite)
|
||||||
this.update({ 'system.sante': sante })
|
this.update({ 'system.sante': sante })
|
||||||
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>` })
|
||||||
}
|
}
|
||||||
|
// Duplicated ! this.processCombativite(sante)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
processCombativite(sante) {
|
||||||
|
sante = sante || foundry.utils.duplicate(this.system.sante)
|
||||||
// Gestion des états affaibli et très affaibli
|
// Gestion des états affaibli et très affaibli
|
||||||
if (sante.etat == this.system.sante.nbcombativite-2 || sante.etat == this.system.sante.nbcombativite-1) {
|
if (sante.etat == this.system.sante.nbcombativite - 2 || sante.etat == this.system.sante.nbcombativite - 1) {
|
||||||
if (sante.etat == this.system.sante.nbcombativite-2 && this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "encaissement")) {
|
if (sante.etat == this.system.sante.nbcombativite - 2 && this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "encaissement")) {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge grâce à Encaissement. Pensez à les ajouter à la fin de la scène !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge grâce à Encaissement. Pensez à les ajouter à la fin de la scène !</strong>` })
|
||||||
} else if (sante.etat == this.system.sante.nbcombativite-1 && this.items.find(item => item.type == "talent" && item.name.toLowerCase().includes("vaillant"))) {
|
} else if (sante.etat == this.system.sante.nbcombativite - 1 && this.items.find(item => item.type == "talent" && item.name.toLowerCase().includes("vaillant"))) {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge grâce à Vaillant. Pensez à les ajouter à la fin de la scène !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge grâce à Vaillant. Pensez à les ajouter à la fin de la scène !</strong>` })
|
||||||
} else {
|
} else {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} subit 2 adversités rouge !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} subit 2 adversités rouge !</strong>` })
|
||||||
@@ -425,13 +456,13 @@ export class HawkmoonActor extends Actor {
|
|||||||
getSubActors() {
|
getSubActors() {
|
||||||
let subActors = [];
|
let subActors = [];
|
||||||
for (let id of this.system.subactors) {
|
for (let id of this.system.subactors) {
|
||||||
subActors.push(duplicate(game.actors.get(id)));
|
subActors.push(foundry.utils.duplicate(game.actors.get(id)));
|
||||||
}
|
}
|
||||||
return subActors;
|
return subActors;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async addSubActor(subActorId) {
|
async addSubActor(subActorId) {
|
||||||
let subActors = duplicate(this.system.subactors);
|
let subActors = foundry.utils.duplicate(this.system.subactors);
|
||||||
subActors.push(subActorId);
|
subActors.push(subActorId);
|
||||||
await this.update({ 'system.subactors': subActors });
|
await this.update({ 'system.subactors': subActors });
|
||||||
}
|
}
|
||||||
@@ -453,9 +484,10 @@ export class HawkmoonActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async incDecAdversite(adv, incDec = 0) {
|
async incDecAdversite(adv, incDec = 0) {
|
||||||
let adversite = duplicate(this.system.adversite)
|
let adversite = foundry.utils.duplicate(this.system.adversite)
|
||||||
adversite[adv] += Number(incDec)
|
adversite[adv] += Number(incDec)
|
||||||
adversite[adv] = Math.max(adversite[adv], 0)
|
adversite[adv] = Math.max(adversite[adv], 0)
|
||||||
|
adversite[adv] = Math.min(adversite[adv], 20)
|
||||||
this.update({ 'system.adversite': adversite })
|
this.update({ 'system.adversite': adversite })
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -500,7 +532,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async setPredilectionUsed(compId, predIdx) {
|
async setPredilectionUsed(compId, predIdx) {
|
||||||
let comp = this.items.get(compId)
|
let comp = this.items.get(compId)
|
||||||
let pred = duplicate(comp.system.predilections)
|
let pred = foundry.utils.duplicate(comp.system.predilections)
|
||||||
pred[predIdx].used = true
|
pred[predIdx].used = true
|
||||||
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
|
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
|
||||||
}
|
}
|
||||||
@@ -511,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)
|
||||||
@@ -522,7 +571,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
}
|
}
|
||||||
if (arme.system.totalDefensif > maxDef) {
|
if (arme.system.totalDefensif > maxDef) {
|
||||||
maxDef = arme.system.totalDefensif
|
maxDef = arme.system.totalDefensif
|
||||||
bestArme = duplicate(arme)
|
bestArme = foundry.utils.duplicate(arme)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return bestArme
|
return bestArme
|
||||||
@@ -537,7 +586,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
for (let auto of talent.system.automations) {
|
for (let auto of talent.system.automations) {
|
||||||
if (auto.eventtype === "prepare-roll") {
|
if (auto.eventtype === "prepare-roll") {
|
||||||
if (auto.competence.toLowerCase() == competence.name.toLowerCase()) {
|
if (auto.competence.toLowerCase() == competence.name.toLowerCase()) {
|
||||||
talent = duplicate(talent)
|
talent = foundry.utils.duplicate(talent)
|
||||||
talent.system.bonus = auto.bonus
|
talent.system.bonus = auto.bonus
|
||||||
talent.system.baCost = auto.baCost
|
talent.system.baCost = auto.baCost
|
||||||
talents.push(talent)
|
talents.push(talent)
|
||||||
@@ -569,26 +618,33 @@ export class HawkmoonActor extends Actor {
|
|||||||
rollData.nbAdversites = this.getTotalAdversite()
|
rollData.nbAdversites = this.getTotalAdversite()
|
||||||
rollData.talents = []
|
rollData.talents = []
|
||||||
rollData.attrKey2 = "none"
|
rollData.attrKey2 = "none"
|
||||||
rollData.coupDevastateur = this.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup dévastateur" && !it.system.used)
|
rollData.coupDevastateur = this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "coup dévastateur" && !it.system.used)
|
||||||
rollData.hasAmbidextre = this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "ambidextre")
|
rollData.hasAmbidextre = this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "ambidextre")
|
||||||
rollData.hasFeinte = this.system.bonneaventure.actuelle >0 && this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "feinte")
|
rollData.hasFeinte = this.system.bonneaventure.actuelle > 0 && this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "feinte")
|
||||||
rollData.isMonte = this.system.combat.monte
|
rollData.isMonte = this.system.combat.monte
|
||||||
|
rollData.config = game.system.hawkmoon.config
|
||||||
|
|
||||||
if (attrKey) {
|
if (attrKey) {
|
||||||
rollData.attrKey = attrKey
|
rollData.attrKey = attrKey
|
||||||
if (attrKey != "tochoose") {
|
if (attrKey != "tochoose") {
|
||||||
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp"
|
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp"
|
||||||
rollData.attr = duplicate(this.system.attributs[attrKey])
|
rollData.attr = foundry.utils.duplicate(this.system.attributs[attrKey])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (compId) {
|
if (compId) {
|
||||||
rollData.competence = duplicate(this.items.get(compId) || {})
|
rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
|
||||||
rollData.maitrises = rollData.competence.system.predilections.filter(p => p.maitrise)
|
let maitrises = [{ key: "none", label: "Aucune" }]
|
||||||
|
rollData.competence.system.predilections.forEach(function (item) {
|
||||||
|
if (item.maitrise) {
|
||||||
|
maitrises.push({ key: item.id, label: item.name });
|
||||||
|
}
|
||||||
|
})
|
||||||
|
rollData.maitrises = maitrises // rollData.competence.system.predilections.filter(p => p.maitrise)
|
||||||
rollData.actionImg = rollData.competence?.img
|
rollData.actionImg = rollData.competence?.img
|
||||||
rollData.talents = this.searchRelevantTalents(rollData.competence)
|
rollData.talents = this.searchRelevantTalents(rollData.competence)
|
||||||
}
|
}
|
||||||
if (compName) {
|
if (compName) {
|
||||||
rollData.competence = duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
|
rollData.competence = foundry.utils.duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
|
||||||
rollData.actionImg = rollData.competence?.img
|
rollData.actionImg = rollData.competence?.img
|
||||||
}
|
}
|
||||||
return rollData
|
return rollData
|
||||||
@@ -626,7 +682,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
rollDialog.render(true)
|
rollDialog.render(true)
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollAssomer() {
|
async rollAssommer() {
|
||||||
let rollData = this.getCommonRollData("pui", undefined, "Filouterie")
|
let rollData = this.getCommonRollData("pui", undefined, "Filouterie")
|
||||||
rollData.assomer = true
|
rollData.assomer = true
|
||||||
rollData.conditionsCommunes = true
|
rollData.conditionsCommunes = true
|
||||||
@@ -672,7 +728,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
|
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
|
||||||
rollDialog.render(true)
|
rollDialog.render(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) {
|
async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) {
|
||||||
let arme = this.items.get(armeId)
|
let arme = this.items.get(armeId)
|
||||||
@@ -687,7 +743,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
if (rollDataInput?.applyCoupDevastateur) {
|
if (rollDataInput?.applyCoupDevastateur) {
|
||||||
bonus2 = Math.floor(this.system.attributs.pui.value / 2)
|
bonus2 = Math.floor(this.system.attributs.pui.value / 2)
|
||||||
let talent = this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "coup dévastateur")
|
let talent = this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "coup dévastateur")
|
||||||
this.updateEmbeddedDocuments('Item', [{ _id: talent.id, 'system.used': true }])
|
this.updateEmbeddedDocuments('Item', [{ _id: talent.id, 'system.used': true }])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rollDataInput?.isHeroique) {
|
if (rollDataInput?.isHeroique) {
|
||||||
@@ -697,7 +753,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
if (rollDataInput?.chargeCavalerie) {
|
if (rollDataInput?.chargeCavalerie) {
|
||||||
bonus = 6
|
bonus = 6
|
||||||
}
|
}
|
||||||
roll = new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false })
|
roll = await new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
|
||||||
} else {
|
} else {
|
||||||
if (rollDataInput?.attaqueCharge) {
|
if (rollDataInput?.attaqueCharge) {
|
||||||
bonus = 3
|
bonus = 3
|
||||||
@@ -705,13 +761,13 @@ export class HawkmoonActor extends Actor {
|
|||||||
if (rollDataInput?.chargeCavalerie) {
|
if (rollDataInput?.chargeCavalerie) {
|
||||||
bonus = 4
|
bonus = 4
|
||||||
}
|
}
|
||||||
roll = new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false })
|
roll = await new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
|
||||||
}
|
}
|
||||||
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
|
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
|
||||||
let nbEtatPerdus = 0
|
let nbEtatPerdus = 0
|
||||||
if (targetVigueur) {
|
if (targetVigueur) {
|
||||||
nbEtatPerdus = Math.floor(roll.total / targetVigueur)
|
nbEtatPerdus = Math.floor(roll.total / targetVigueur)
|
||||||
}
|
}
|
||||||
//console.log(roll)
|
//console.log(roll)
|
||||||
let rollData = {
|
let rollData = {
|
||||||
arme: arme,
|
arme: arme,
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ export class HawkmoonAutomation {
|
|||||||
this.__objectTypes = { }
|
this.__objectTypes = { }
|
||||||
|
|
||||||
Object.entries(game.data.model.Actor).forEach(kv => {
|
Object.entries(game.data.model.Actor).forEach(kv => {
|
||||||
this.__objectTypes[kv[0]] = duplicate(kv[1])
|
this.__objectTypes[kv[0]] = foundry.utils.duplicate(kv[1])
|
||||||
})
|
})
|
||||||
Object.entries(game.data.model.Item).forEach(kv => {
|
Object.entries(game.data.model.Item).forEach(kv => {
|
||||||
this.__objectTypes[kv[0]] = duplicate(kv[1])
|
this.__objectTypes[kv[0]] = foundry.utils.duplicate(kv[1])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,15 @@ import { HawkmoonUtility } from "./hawkmoon-utility.js";
|
|||||||
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const __ALLOWED_ITEM_CELLULE = { "talent": 1, "ressource": 1, "contact": 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() {
|
||||||
|
|
||||||
return mergeObject(super.defaultOptions, {
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
|
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
|
||||||
template: "systems/fvtt-hawkmoon-cyd/templates/cellule-sheet.html",
|
template: "systems/fvtt-hawkmoon-cyd/templates/cellule-sheet.html",
|
||||||
width: 640,
|
width: 640,
|
||||||
@@ -28,7 +28,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
const objectData = duplicate(this.object)
|
const objectData = foundry.utils.duplicate(this.object)
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
@@ -41,15 +41,23 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
system: objectData.system,
|
system: objectData.system,
|
||||||
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
talents: duplicate(this.actor.getTalents() || {}),
|
talents: foundry.utils.duplicate(this.actor.getTalents() || {}),
|
||||||
ressources: duplicate(this.actor.getRessources()),
|
ressources: foundry.utils.duplicate(this.actor.getRessources()),
|
||||||
contacts: duplicate(this.actor.getContacts()),
|
contacts: foundry.utils.duplicate(this.actor.getContacts()),
|
||||||
members: this.getMembers(),
|
members: this.getMembers(),
|
||||||
|
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
|
||||||
|
artefacts: foundry.utils.duplicate(this.actor.getArtefacts()),
|
||||||
|
armes: foundry.utils.duplicate(this.actor.getWeapons()),
|
||||||
|
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
|
||||||
|
protections: foundry.utils.duplicate(this.actor.getArmors()),
|
||||||
|
richesse: this.actor.computeRichesse(),
|
||||||
|
valeurEquipement: this.actor.computeValeurEquipement(),
|
||||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
isGM: game.user.isGM
|
isGM: game.user.isGM,
|
||||||
|
config: game.system.hawkmoon.config
|
||||||
}
|
}
|
||||||
this.formData = formData;
|
this.formData = formData;
|
||||||
|
|
||||||
@@ -87,7 +95,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
let actorId = li.data("actor-id")
|
let actorId = li.data("actor-id")
|
||||||
this.actor.removeMember(actorId)
|
this.actor.removeMember(actorId)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Update Inventory Item
|
// Update Inventory Item
|
||||||
html.find('.item-edit').click(ev => {
|
html.find('.item-edit').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item")
|
const li = $(ev.currentTarget).parents(".item")
|
||||||
@@ -109,15 +117,15 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
let value = ev.currentTarget.value
|
let value = ev.currentTarget.value
|
||||||
this.actor.editItemField(itemId, itemType, itemField, dataType, value)
|
this.actor.editItemField(itemId, itemType, itemField, dataType, value)
|
||||||
})
|
})
|
||||||
|
html.find('.quantity-modify').click(event => {
|
||||||
html.find('.quantity-minus').click(event => {
|
const li = $(event.currentTarget).parents(".item")
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const value = Number($(event.currentTarget).data("quantite-value"))
|
||||||
this.actor.incDecQuantity(li.data("item-id"), -1);
|
this.actor.incDecQuantity( li.data("item-id"), value );
|
||||||
});
|
})
|
||||||
html.find('.quantity-plus').click(event => {
|
html.find('.item-add').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const itemType = $(event.currentTarget).data("type")
|
||||||
this.actor.incDecQuantity(li.data("item-id"), +1);
|
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
|
||||||
});
|
})
|
||||||
|
|
||||||
html.find('.lock-unlock-sheet').click((event) => {
|
html.find('.lock-unlock-sheet').click((event) => {
|
||||||
this.options.editScore = !this.options.editScore;
|
this.options.editScore = !this.options.editScore;
|
||||||
@@ -128,7 +136,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _onDropActor(event, dragData) {
|
async _onDropActor(event, dragData) {
|
||||||
const actor = fromUuidSync(dragData.uuid)
|
const actor = fromUuidSync(dragData.uuid)
|
||||||
if (actor) {
|
if (actor) {
|
||||||
this.actor.addMember(actor.id)
|
this.actor.addMember(actor.id)
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.warn("Cet acteur n'a pas été trouvé.")
|
ui.notifications.warn("Cet acteur n'a pas été trouvé.")
|
||||||
@@ -148,7 +156,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
super._onDropItem(event, dragData)
|
super._onDropItem(event, dragData)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ui.notifications("Ce type d'item n'est pas autorisé sur une Cellule.")
|
ui.notification.info("Ce type d'item n'est pas autorisé sur une Cellule.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ export class HawkmoonCombat extends Combat {
|
|||||||
async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
|
async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
|
||||||
ids = typeof ids === "string" ? [ids] : ids;
|
ids = typeof ids === "string" ? [ids] : ids;
|
||||||
for (let cId of ids) {
|
for (let cId of ids) {
|
||||||
const c = this.combatants.get(ids[cId]);
|
const c = this.combatants.get(cId);
|
||||||
//console.log("Init for combattant", c )
|
console.log("Init for combattant", c, ids)
|
||||||
let id = c._id || c.id
|
let id = c._id || c.id
|
||||||
let initValue = c.actor ? c.actor.getInitiativeScore() : 0
|
let initValue = c.actor ? c.actor.getInitiativeScore() : 0
|
||||||
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initValue } ]);
|
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initValue } ]);
|
||||||
|
|||||||
143
modules/hawkmoon-config.js
Normal file
143
modules/hawkmoon-config.js
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
export const HAWKMOON_CONFIG = {
|
||||||
|
|
||||||
|
optionsDifficulte: [
|
||||||
|
{ key: "0", label: "Aucune/Inconnue" },
|
||||||
|
{ key: "5", label: "Facile (5)" },
|
||||||
|
{ key: "6", label: "(6)" },
|
||||||
|
{ key: "7", label: "(7)" },
|
||||||
|
{ key: "8", label: "(8)" },
|
||||||
|
{ key: "9", label: "(9)" },
|
||||||
|
{ key: "10", label: "Moyenne (10)" },
|
||||||
|
{ key: "11", label: "(11)" },
|
||||||
|
{ key: "12", label: "(12)" },
|
||||||
|
{ key: "13", label: "(13)" },
|
||||||
|
{ key: "14", label: "(14)" },
|
||||||
|
{ key: "15", label: "Ardue (15)" },
|
||||||
|
{ key: "16", label: "(16)" },
|
||||||
|
{ key: "17", label: "(17)" },
|
||||||
|
{ key: "18", label: "(18)" },
|
||||||
|
{ key: "19", label: "(19)" },
|
||||||
|
{ key: "20", label: "Hasardeuse (20)" },
|
||||||
|
{ key: "21", label: "(21)" },
|
||||||
|
{ key: "22", label: "(22)" },
|
||||||
|
{ key: "23", label: "(23)" },
|
||||||
|
{ key: "24", label: "(24)" },
|
||||||
|
{ key: "25", label: "Insensée (25)" },
|
||||||
|
{ key: "26", label: "(26)" },
|
||||||
|
{ key: "27", label: "(27)" },
|
||||||
|
{ key: "28", label: "(28)" },
|
||||||
|
{ key: "29", label: "(29)" },
|
||||||
|
{ key: "30", label: "Pure Folie (30)" }
|
||||||
|
],
|
||||||
|
optionsDistanceTir: [
|
||||||
|
{ key: "porteecourte", label: "Courte ({protectionDefenseur}+5)" },
|
||||||
|
{ key: "porteemoyenne", label: "Moyenne ({protectionDefenseur}+9)" },
|
||||||
|
{ key: "porteelongue", label: "Longue ({protectionDefenseur}+14)" }
|
||||||
|
],
|
||||||
|
optionsBonusMalus: [
|
||||||
|
{ key: "-10", label: "-10" },
|
||||||
|
{ key: "-9", label: "-9" },
|
||||||
|
{ key: "-8", label: "-8" },
|
||||||
|
{ key: "-7", label: "-7" },
|
||||||
|
{ key: "-6", label: "-6" },
|
||||||
|
{ key: "-5", label: "-5" },
|
||||||
|
{ key: "-4", label: "-4" },
|
||||||
|
{ key: "-3", label: "-3" },
|
||||||
|
{ key: "-2", label: "-2" },
|
||||||
|
{ key: "-1", label: "-1" },
|
||||||
|
{ key: "0", label: "0" },
|
||||||
|
{ key: "1", label: "+1" },
|
||||||
|
{ key: "2", label: "+2" },
|
||||||
|
{ key: "3", label: "+3" },
|
||||||
|
{ key: "4", label: "+4" },
|
||||||
|
{ key: "5", label: "+5" },
|
||||||
|
{ key: "6", label: "+6" },
|
||||||
|
{ key: "7", label: "+7" },
|
||||||
|
{ key: "8", label: "+8" },
|
||||||
|
{ key: "9", label: "+9" },
|
||||||
|
{ key: "10", label: "+10" }
|
||||||
|
],
|
||||||
|
optionsTailleCible: [
|
||||||
|
{ key: "normal", label: "Normal (SD+0)" },
|
||||||
|
{ key: "main", label: "Main (SD+10)" },
|
||||||
|
{ key: "enfant", label: "Enfant (SD+3)" },
|
||||||
|
{ key: "maison", label: "Maison (SD-10)" }
|
||||||
|
],
|
||||||
|
optionsCouvert: [
|
||||||
|
{ key: "aucun", label: "Aucun" },
|
||||||
|
{ key: "leger", label: "Léger (SD+5)" },
|
||||||
|
{ key: "complet", label: "Quasi complet (SD+10)" }
|
||||||
|
],
|
||||||
|
optionsTireurDeplacement: [
|
||||||
|
{ key: "immobile", label: "Immobile (SD+0)" },
|
||||||
|
{ key: "lent", label: "Lent (SD+3)" },
|
||||||
|
{ key: "rapide", label: "Rapide (SD+5)" }
|
||||||
|
],
|
||||||
|
optionsSoutiens: [
|
||||||
|
{ key: "0", label: "Aucun" },
|
||||||
|
{ key: "1", label: "Un soutien (+3)" },
|
||||||
|
{ key: "2", label: "Deux soutiens (+4)" },
|
||||||
|
{ key: "3", label: "Trois soutiens (+5)" }
|
||||||
|
],
|
||||||
|
optionsStatutResistant: [
|
||||||
|
{ key: "commun", label: "Commun" },
|
||||||
|
{ key: "clandestin", label: "Clandestin" },
|
||||||
|
{ key: "insurge", label: "Insurgé" }
|
||||||
|
],
|
||||||
|
optionsTypeArme: [
|
||||||
|
{key: "contact", label: "Arme de contact"},
|
||||||
|
{key: "contactjet", label: "Arme de contact et de Jet"},
|
||||||
|
{key: "jet", label: "Arme de Jet"},
|
||||||
|
{key: "tir", label: "Arme de Tir"}
|
||||||
|
],
|
||||||
|
optionsArtefactBranche: [
|
||||||
|
{key: "alchimie", label: "Alchimie"},
|
||||||
|
{key: "biologie", label: "Biologie"},
|
||||||
|
{key: "electricite", label: "Electricité"},
|
||||||
|
{key: "mecanique", label: "Mécanique"},
|
||||||
|
{key: "scienceesprit", label: "Science de l'Esprit"}
|
||||||
|
],
|
||||||
|
optionsArtefactBranche2: [
|
||||||
|
{key: "none", label: "Aucune"},
|
||||||
|
{key: "alchimie", label: "Alchimie"},
|
||||||
|
{key: "biologie", label: "Biologie"},
|
||||||
|
{key: "electricite", label: "Electricité"},
|
||||||
|
{key: "mecanique", label: "Mécanique"},
|
||||||
|
{key: "scienceesprit", label: "Science de l'Esprit"}
|
||||||
|
],
|
||||||
|
optionsTypeContact: [
|
||||||
|
{key: "contact", label: "Contact"},
|
||||||
|
{key: "allie", label: "Allié"}
|
||||||
|
],
|
||||||
|
optionsTypeMutation: [
|
||||||
|
{key: "tares_communes", label: "Tares et Malformations communes"},
|
||||||
|
{key: "evolutions_communes", label: "Evolutions communes"},
|
||||||
|
{key: "tares_rares", label: "Tares et Malformations rares"},
|
||||||
|
{key: "evolutions_rares", label: "Evolutions rares"},
|
||||||
|
{key: "tares_majeures", label: "Tares et Maformations majeures"},
|
||||||
|
{key: "evolutions_majeures", label: "Evolutions majeures"},
|
||||||
|
{key: "tares_except", label: "Tares et Malformations exceptionnelles"},
|
||||||
|
{key: "evolutions_except", label: "Evolutions exceptionnelles"}
|
||||||
|
],
|
||||||
|
optionsTypeTalent: [
|
||||||
|
{key: "personnage", label: "Personnage"},
|
||||||
|
{key: "cellule", label: "Cellule"},
|
||||||
|
{key: "traitespece", label: "Trait d'espèce"}
|
||||||
|
],
|
||||||
|
optionsUseTalent: [
|
||||||
|
{key: "permanent", label: "Permanent"},
|
||||||
|
{key: "sceance", label: "Une fois par scéance"},
|
||||||
|
{key: "scenario", label: "Une fois par scénario"},
|
||||||
|
{key: "jour", label: "Une fois par jour"},
|
||||||
|
{key: "unique", label: "Unique"}
|
||||||
|
],
|
||||||
|
optionsAutomationEvent: [
|
||||||
|
{key: "on-drop", label: "Drop sur l'acteur"},
|
||||||
|
{key: "prepare-roll", label: "Préparation d'un jet"},
|
||||||
|
{key: "bonus-permanent", label: "Bonus permanent"}
|
||||||
|
],
|
||||||
|
optionsBonusPermanent: [
|
||||||
|
{key: "vigueur", label: "Vigueur"},
|
||||||
|
{key: "bonus-defensif", label: "Bonus au Seuil de Défense"}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ export class HawkmoonCreatureSheet extends HawkmoonActorSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
|
|
||||||
return mergeObject(super.defaultOptions, {
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
|
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
|
||||||
template: "systems/fvtt-hawkmoon-cyd/templates/creature-sheet.html",
|
template: "systems/fvtt-hawkmoon-cyd/templates/creature-sheet.html",
|
||||||
width: 640,
|
width: 640,
|
||||||
|
|||||||
@@ -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,11 +42,11 @@ 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);
|
||||||
|
|
||||||
hud.find('img.hawkmoon-hud-togglebutton').click(event => HawkmoonTokenHud._toggleHudListActive(hud, list));
|
hud.find('img.hawkmoon-hud-togglebutton').click(event => HawkmoonTokenHud._toggleHudListActive(hud, list));
|
||||||
list.find('.hawkmoon-hud-adversite').click(onMenuItem);
|
list.find('.hawkmoon-hud-adversite').click(onMenuItem);
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ 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() {
|
||||||
|
|
||||||
return mergeObject(super.defaultOptions, {
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
classes: ["fvtt-hawkmoon-cyd", "sheet", "item"],
|
classes: ["fvtt-hawkmoon-cyd", "sheet", "item"],
|
||||||
template: "systems/fvtt-hawkmoon-cyd/templates/item-sheet.html",
|
template: "systems/fvtt-hawkmoon-cyd/templates/item-sheet.html",
|
||||||
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
||||||
@@ -48,7 +48,7 @@ export class HawkmoonItemSheet extends ItemSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
const objectData = duplicate(this.object)
|
const objectData = foundry.utils.duplicate(this.object)
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
id: this.id,
|
id: this.id,
|
||||||
@@ -64,7 +64,8 @@ export class HawkmoonItemSheet extends ItemSheet {
|
|||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||||
mr: (this.object.type == 'specialisation'),
|
mr: (this.object.type == 'specialisation'),
|
||||||
isGM: game.user.isGM
|
isGM: game.user.isGM,
|
||||||
|
config: game.system.hawkmoon.config
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( objectData.type == "don") {
|
if ( objectData.type == "don") {
|
||||||
@@ -89,7 +90,7 @@ export class HawkmoonItemSheet extends ItemSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
postItem() {
|
postItem() {
|
||||||
let chatData = duplicate(HawkmoonUtility.data(this.item));
|
let chatData = foundry.utils.duplicate(HawkmoonUtility.data(this.item));
|
||||||
if (this.actor) {
|
if (this.actor) {
|
||||||
chatData.actor = { id: this.actor.id };
|
chatData.actor = { id: this.actor.id };
|
||||||
}
|
}
|
||||||
@@ -132,7 +133,7 @@ export class HawkmoonItemSheet extends ItemSheet {
|
|||||||
html.find('.edit-predilection').change(ev => {
|
html.find('.edit-predilection').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred[index].name = ev.currentTarget.value
|
pred[index].name = ev.currentTarget.value
|
||||||
pred[index].id = pred[index].id || randomID(16)
|
pred[index].id = pred[index].id || randomID(16)
|
||||||
this.object.update( { 'system.predilections': pred })
|
this.object.update( { 'system.predilections': pred })
|
||||||
@@ -140,70 +141,70 @@ export class HawkmoonItemSheet extends ItemSheet {
|
|||||||
html.find('.edit-predilection-description').change(ev => {
|
html.find('.edit-predilection-description').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred[index].description = ev.currentTarget.value
|
pred[index].description = ev.currentTarget.value
|
||||||
pred[index].id = pred[index].id || randomID(16)
|
pred[index].id = pred[index].id || randomID(16)
|
||||||
this.object.update( { 'system.predilections': pred })
|
this.object.update( { 'system.predilections': pred })
|
||||||
})
|
})
|
||||||
html.find('.predilection-acquise').change(ev => {
|
html.find('.predilection-acquise').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred[index].acquise = ev.currentTarget.checked
|
pred[index].acquise = ev.currentTarget.checked
|
||||||
pred[index].id = pred[index].id || randomID(16)
|
pred[index].id = pred[index].id || randomID(16)
|
||||||
this.object.update( { 'system.predilections': pred })
|
this.object.update( { 'system.predilections': pred })
|
||||||
})
|
})
|
||||||
html.find('.predilection-maitrise').change(ev => {
|
html.find('.predilection-maitrise').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred[index].maitrise = ev.currentTarget.checked
|
pred[index].maitrise = ev.currentTarget.checked
|
||||||
pred[index].id = pred[index].id || randomID(16)
|
pred[index].id = pred[index].id || randomID(16)
|
||||||
this.object.update( { 'system.predilections': pred })
|
this.object.update( { 'system.predilections': pred })
|
||||||
})
|
})
|
||||||
html.find('.predilection-used').change(ev => {
|
html.find('.predilection-used').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred[index].used = ev.currentTarget.checked
|
pred[index].used = ev.currentTarget.checked
|
||||||
pred[index].id = pred[index].id || randomID(16)
|
pred[index].id = pred[index].id || randomID(16)
|
||||||
this.object.update( { 'system.predilections': pred })
|
this.object.update( { 'system.predilections': pred })
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('#add-predilection').click(ev => {
|
html.find('#add-predilection').click(ev => {
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred.push( { name: "Nouvelle prédilection", id: randomID(16), used: false })
|
pred.push( { name: "Nouvelle prédilection", id: randomID(16), used: false })
|
||||||
this.object.update( { 'system.predilections': pred })
|
this.object.update( { 'system.predilections': pred })
|
||||||
})
|
})
|
||||||
html.find('.delete-prediction').click(ev => {
|
html.find('.delete-prediction').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred.splice(index,1)
|
pred.splice(index,1)
|
||||||
this.object.update( { 'system.predilections': pred })
|
this.object.update( { 'system.predilections': pred })
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('#add-automation').click(ev => {
|
html.find('#add-automation').click(ev => {
|
||||||
let autom = duplicate(this.object.system.automations)
|
let autom = foundry.utils.duplicate(this.object.system.automations)
|
||||||
autom.push( { eventtype: "on-drop", name: "Automatisation 1", bonusname: "vigueur", bonus: 0, competence: "", minLevel: 0, baCost: 0, id: randomID(16) })
|
autom.push( { eventtype: "on-drop", name: "Automatisation 1", bonusname: "vigueur", bonus: 0, competence: "", minLevel: 0, baCost: 0, id: randomID(16) })
|
||||||
this.object.update( { 'system.automations': autom })
|
this.object.update( { 'system.automations': autom })
|
||||||
})
|
})
|
||||||
html.find('.delete-automation').click(ev => {
|
html.find('.delete-automation').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".automation-item")
|
const li = $(ev.currentTarget).parents(".automation-item")
|
||||||
let index = li.data("automation-index")
|
let index = li.data("automation-index")
|
||||||
let autom = duplicate(this.object.system.automations)
|
let autom = foundry.utils.duplicate(this.object.system.automations)
|
||||||
autom.splice(index,1)
|
autom.splice(index,1)
|
||||||
this.object.update( { 'system.automations': autom })
|
this.object.update( { 'system.automations': autom })
|
||||||
})
|
})
|
||||||
html.find('.automation-edit-field').change(ev => {
|
html.find('.automation-edit-field').change(ev => {
|
||||||
let index = $(ev.currentTarget).data("automation-index")
|
let index = $(ev.currentTarget).data("automation-index")
|
||||||
let field = $(ev.currentTarget).data("automation-field")
|
let field = $(ev.currentTarget).data("automation-field")
|
||||||
let auto = duplicate(this.object.system.automations)
|
let auto = foundry.utils.duplicate(this.object.system.automations)
|
||||||
auto[index][field] = ev.currentTarget.value
|
auto[index][field] = ev.currentTarget.value
|
||||||
auto[index].id = auto[index].id || randomID(16)
|
auto[index].id = auto[index].id || randomID(16)
|
||||||
this.object.update( { 'system.automations': auto })
|
this.object.update( { 'system.automations': auto })
|
||||||
})
|
})
|
||||||
|
|
||||||
// Update Inventory Item
|
// Update Inventory Item
|
||||||
html.find('.item-delete').click(ev => {
|
html.find('.item-delete').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import { HawkmoonCombat } from "./hawkmoon-combat.js";
|
|||||||
import { HawkmoonItem } from "./hawkmoon-item.js";
|
import { HawkmoonItem } from "./hawkmoon-item.js";
|
||||||
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
||||||
import { HawkmoonTokenHud } from "./hawkmoon-hud.js";
|
import { HawkmoonTokenHud } from "./hawkmoon-hud.js";
|
||||||
|
import { HAWKMOON_CONFIG } from "./hawkmoon-config.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/* Foundry VTT Initialization */
|
/* Foundry VTT Initialization */
|
||||||
@@ -32,7 +33,7 @@ Hooks.once("init", async function () {
|
|||||||
HawkmoonUtility.preloadHandlebarsTemplates()
|
HawkmoonUtility.preloadHandlebarsTemplates()
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Set an initiative formula for the system
|
// Set an initiative formula for the system
|
||||||
CONFIG.Combat.initiative = {
|
CONFIG.Combat.initiative = {
|
||||||
formula: "1d10",
|
formula: "1d10",
|
||||||
decimals: 1
|
decimals: 1
|
||||||
@@ -50,18 +51,19 @@ Hooks.once("init", async function () {
|
|||||||
CONFIG.Item.documentClass = HawkmoonItem
|
CONFIG.Item.documentClass = HawkmoonItem
|
||||||
game.system.hawkmoon = {
|
game.system.hawkmoon = {
|
||||||
HawkmoonUtility,
|
HawkmoonUtility,
|
||||||
HawkmoonAutomation
|
HawkmoonAutomation,
|
||||||
|
config : HAWKMOON_CONFIG
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// 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()
|
||||||
@@ -82,6 +84,19 @@ function welcomeMessage() {
|
|||||||
` });
|
` });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async function importDefaultScene() {
|
||||||
|
let exists = game.scenes.find(j => j.name == "Accueil");
|
||||||
|
if (!exists) {
|
||||||
|
const scenes = await HawkmoonUtility.loadCompendium("fvtt-hawkmoon-cyd.scenes")
|
||||||
|
let newDocuments = scenes.filter(i => i.name == "Accueil");
|
||||||
|
if (newDocuments) {
|
||||||
|
await game.scenes.documentClass.create(newDocuments);
|
||||||
|
game.scenes.find(i => i.name == "Accueil").activate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/* Foundry VTT Initialization */
|
/* Foundry VTT Initialization */
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -105,6 +120,7 @@ Hooks.once("ready", function () {
|
|||||||
console.log("No stats available, giving up.")
|
console.log("No stats available, giving up.")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
importDefaultScene()
|
||||||
welcomeMessage()
|
welcomeMessage()
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -122,4 +138,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ 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: 320, 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 );
|
||||||
}
|
}
|
||||||
@@ -16,16 +16,16 @@ export class HawkmoonRollDialog extends Dialog {
|
|||||||
let conf = {
|
let conf = {
|
||||||
title: "Test de Capacité",
|
title: "Test de Capacité",
|
||||||
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>',
|
||||||
@@ -56,86 +56,87 @@ export class HawkmoonRollDialog extends Dialog {
|
|||||||
function onLoad() {
|
function onLoad() {
|
||||||
}
|
}
|
||||||
$(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(async (event) => {
|
html.find('#difficulte').change( (event) => {
|
||||||
|
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) => {
|
||||||
this.rollData.selectedTalents = $('#competence-talents').val()
|
this.rollData.selectedTalents = $('#competence-talents').val()
|
||||||
})
|
})
|
||||||
html.find('#taille-cible').change((event) => {
|
html.find('#taille-cible').change((event) => {
|
||||||
this.rollData.tailleCible = String(event.currentTarget.value)
|
this.rollData.tailleCible = String(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#tireur-deplacement').change((event) => {
|
html.find('#tireur-deplacement').change((event) => {
|
||||||
this.rollData.tireurDeplacement = String(event.currentTarget.value)
|
this.rollData.tireurDeplacement = String(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#cible-couvert').change((event) => {
|
html.find('#cible-couvert').change((event) => {
|
||||||
this.rollData.cibleCouvert = String(event.currentTarget.value)
|
this.rollData.cibleCouvert = String(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#distance-tir').change((event) => {
|
html.find('#distance-tir').change((event) => {
|
||||||
this.rollData.distanceTir = String(event.currentTarget.value)
|
this.rollData.distanceTir = String(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#bonus-malus-context').change((event) => {
|
html.find('#bonus-malus-context').change((event) => {
|
||||||
this.rollData.bonusMalusContext = Number(event.currentTarget.value)
|
this.rollData.bonusMalusContext = Number(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#defenseur-au-sol').change((event) => {
|
html.find('#defenseur-au-sol').change((event) => {
|
||||||
this.rollData.defenseurAuSol = event.currentTarget.checked
|
this.rollData.defenseurAuSol = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#ambidextre-1').change((event) => {
|
html.find('#ambidextre-1').change((event) => {
|
||||||
this.rollData.ambidextre1 = event.currentTarget.checked
|
this.rollData.ambidextre1 = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#ambidextre-2').change((event) => {
|
html.find('#ambidextre-2').change((event) => {
|
||||||
this.rollData.ambidextre2 = event.currentTarget.checked
|
this.rollData.ambidextre2 = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#attaque-monte').change((event) => {
|
html.find('#attaque-monte').change((event) => {
|
||||||
this.rollData.attqueMonte = event.currentTarget.checked
|
this.rollData.attqueMonte = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#defenseur-aveugle').change((event) => {
|
html.find('#defenseur-aveugle').change((event) => {
|
||||||
this.rollData.defenseurAveugle = event.currentTarget.checked
|
this.rollData.defenseurAveugle = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#defenseur-de-dos').change((event) => {
|
html.find('#defenseur-de-dos').change((event) => {
|
||||||
this.rollData.defenseurDeDos = event.currentTarget.checked
|
this.rollData.defenseurDeDos = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#defenseur-restreint').change((event) => {
|
html.find('#defenseur-restreint').change((event) => {
|
||||||
this.rollData.defenseurRestreint = event.currentTarget.checked
|
this.rollData.defenseurRestreint = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#defenseur-immobilise').change((event) => {
|
html.find('#defenseur-immobilise').change((event) => {
|
||||||
this.rollData.defenseurImmobilise = event.currentTarget.checked
|
this.rollData.defenseurImmobilise = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#attaque-charge').change((event) => {
|
html.find('#attaque-charge').change((event) => {
|
||||||
this.rollData.attaqueCharge = event.currentTarget.checked
|
this.rollData.attaqueCharge = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#charge-cavalerie').change((event) => {
|
html.find('#charge-cavalerie').change((event) => {
|
||||||
this.rollData.chargeCavalerie = event.currentTarget.checked
|
this.rollData.chargeCavalerie = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#attaquants-multiple').change((event) => {
|
html.find('#attaquants-multiple').change((event) => {
|
||||||
this.rollData.attaquantsMultiples = event.currentTarget.checked
|
this.rollData.attaquantsMultiples = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#soutiens').change((event) => {
|
html.find('#soutiens').change((event) => {
|
||||||
this.rollData.soutiens = Number(event.currentTarget.value)
|
this.rollData.soutiens = Number(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
html.find('#feinte').change((event) => {
|
html.find('#feinte').change((event) => {
|
||||||
this.rollData.feinte = event.currentTarget.checked
|
this.rollData.feinte = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#contenir').change((event) => {
|
html.find('#contenir').change((event) => {
|
||||||
this.rollData.contenir = event.currentTarget.checked
|
this.rollData.contenir = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
html.find('#attaque-desarme').change((event) => {
|
html.find('#attaque-desarme').change((event) => {
|
||||||
this.rollData.attaqueDesarme = event.currentTarget.checked
|
this.rollData.attaqueDesarme = event.currentTarget.checked
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
})
|
})
|
||||||
@@ -114,6 +113,26 @@ export class HawkmoonUtility {
|
|||||||
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
|
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
|
||||||
let logoImg = document.querySelector('#pause').children[0]
|
let logoImg = document.querySelector('#pause').children[0]
|
||||||
logoImg.setAttribute('style', `content: url(${logoPause})`)
|
logoImg.setAttribute('style', `content: url(${logoPause})`)
|
||||||
|
|
||||||
|
game.system.hawkmoon.config.listeNiveauSkill = this.createDirectOptionList(0, 10)
|
||||||
|
game.system.hawkmoon.config.listeNiveauCreature = this.createDirectOptionList(0, 35)
|
||||||
|
game.system.hawkmoon.config.listeNiveauContact = this.createDirectOptionList(1, 3)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static createDirectOptionList(min, max) {
|
||||||
|
let options = {};
|
||||||
|
for (let i = min; i <= max; i++) {
|
||||||
|
options[`${i}`] = `${i}`;
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
static createArrayOptionList(min, max) {
|
||||||
|
let options = [];
|
||||||
|
for (let i = min; i <= max; i++) {
|
||||||
|
options.push({ key: `${i}`, label: `${i}` });
|
||||||
|
}
|
||||||
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -135,25 +154,25 @@ 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)
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
||||||
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
|
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
|
||||||
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
|
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
|
||||||
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")
|
||||||
@@ -161,7 +180,7 @@ export class HawkmoonUtility {
|
|||||||
rollData.applyCoupDevastateur = true
|
rollData.applyCoupDevastateur = true
|
||||||
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
|
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -172,14 +191,11 @@ export class HawkmoonUtility {
|
|||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-header.html',
|
'systems/fvtt-hawkmoon-cyd/templates/partial-item-header.html',
|
||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-description.html',
|
'systems/fvtt-hawkmoon-cyd/templates/partial-item-description.html',
|
||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-nav.html',
|
'systems/fvtt-hawkmoon-cyd/templates/partial-item-nav.html',
|
||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-list-niveau.html',
|
|
||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-list-niveau-creature.html',
|
|
||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-item-prix.html',
|
'systems/fvtt-hawkmoon-cyd/templates/partial-item-prix.html',
|
||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-sante-etat.html',
|
|
||||||
'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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -256,15 +272,19 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
let id = rollData.rollId;
|
let id = rollData.rollId;
|
||||||
let oldRollData = this.rollDataStore[id] || {};
|
let oldRollData = this.rollDataStore[id] || {};
|
||||||
let newRollData = mergeObject(oldRollData, rollData);
|
let newRollData = foundry.utils.mergeObject(oldRollData, rollData);
|
||||||
this.rollDataStore[id] = newRollData;
|
this.rollDataStore[id] = newRollData;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,10 +318,10 @@ export class HawkmoonUtility {
|
|||||||
switch (rollMode) {
|
switch (rollMode) {
|
||||||
case "blindroll": //GM only
|
case "blindroll": //GM only
|
||||||
blind = true;
|
blind = true;
|
||||||
case "gmroll": //GM + rolling player
|
case "gmroll": // GM + rolling player
|
||||||
whisper = this.getUsers(user => user.isGM);
|
whisper = this.getUsers(user => user.isGM);
|
||||||
break;
|
break;
|
||||||
case "roll": //everybody
|
case "roll": // everybody
|
||||||
whisper = this.getUsers(user => user.active);
|
whisper = this.getUsers(user => user.active);
|
||||||
break;
|
break;
|
||||||
case "selfroll":
|
case "selfroll":
|
||||||
@@ -338,17 +358,22 @@ 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) {
|
||||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
||||||
defender.changeEtatCombativite(value)
|
defender.changeEtatCombativite(value)
|
||||||
} else {
|
} else {
|
||||||
@@ -364,10 +389,10 @@ export class HawkmoonUtility {
|
|||||||
}
|
}
|
||||||
if (!rollData.attr) {
|
if (!rollData.attr) {
|
||||||
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
||||||
rollData.attr = duplicate(actor.system.attributs[rollData.attrKey])
|
rollData.attr = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey])
|
||||||
}
|
}
|
||||||
if (rollData.attrKey2 != "none") {
|
if (rollData.attrKey2 != "none") {
|
||||||
rollData.attr2 = duplicate(actor.system.attributs[rollData.attrKey2])
|
rollData.attr2 = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey2])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rollData.maitriseId != "none") {
|
if (rollData.maitriseId != "none") {
|
||||||
@@ -379,10 +404,10 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
//console.log("BEFORE COMP", rollData)
|
//console.log("BEFORE COMP", rollData)
|
||||||
if (rollData.competence) {
|
if (rollData.competence) {
|
||||||
rollData.predilections = duplicate(rollData.competence.system.predilections || [])
|
rollData.predilections = foundry.utils.duplicate(rollData.competence.system.predilections || [])
|
||||||
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
|
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
|
||||||
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
|
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
|
||||||
|
|
||||||
if (rollData.selectedTalents && rollData.selectedTalents.length > 0) {
|
if (rollData.selectedTalents && rollData.selectedTalents.length > 0) {
|
||||||
for (let id of rollData.selectedTalents) {
|
for (let id of rollData.selectedTalents) {
|
||||||
let talent = rollData.talents.find(t => t._id == id)
|
let talent = rollData.talents.find(t => t._id == id)
|
||||||
@@ -406,7 +431,7 @@ export class HawkmoonUtility {
|
|||||||
} else {
|
} else {
|
||||||
rollData.diceFormula += `+${rollData.attr.value}*${rollData.multiplier}+${rollData.modificateur}+${rollData.bonusMalusContext}`
|
rollData.diceFormula += `+${rollData.attr.value}*${rollData.multiplier}+${rollData.modificateur}+${rollData.bonusMalusContext}`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bonus arme naturelle en défense
|
// Bonus arme naturelle en défense
|
||||||
if (rollData.bonusArmeNaturelle) {
|
if (rollData.bonusArmeNaturelle) {
|
||||||
rollData.diceFormula += `+${rollData.bonusArmeNaturelle}`
|
rollData.diceFormula += `+${rollData.bonusArmeNaturelle}`
|
||||||
@@ -415,10 +440,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) {
|
||||||
@@ -437,7 +462,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) {
|
||||||
@@ -452,20 +477,20 @@ export class HawkmoonUtility {
|
|||||||
if (rollData.attaqueDesarme) {
|
if (rollData.attaqueDesarme) {
|
||||||
rollData.difficulte += 10
|
rollData.difficulte += 10
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajout adversités
|
// Ajout adversités
|
||||||
rollData.diceFormula += `-${rollData.nbAdversites}`
|
rollData.diceFormula += `-${rollData.nbAdversites}`
|
||||||
|
|
||||||
if (rollData.arme && rollData.arme.type == "arme") {
|
if (rollData.arme && rollData.arme.type == "arme") {
|
||||||
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
|
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gestion de la feinte éventuelle
|
|
||||||
rollData.nbCombativitePerdu = 1
|
|
||||||
|
|
||||||
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
|
// Gestion de la feinte éventuelle
|
||||||
|
rollData.nbCombativitePerdu = 1
|
||||||
|
|
||||||
|
let myRoll = await new Roll(rollData.diceFormula).roll()
|
||||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||||
rollData.roll = duplicate(myRoll)
|
rollData.roll = foundry.utils.duplicate(myRoll)
|
||||||
console.log(">>>> ", myRoll)
|
console.log(">>>> ", myRoll)
|
||||||
|
|
||||||
rollData.finalResult = myRoll.total
|
rollData.finalResult = myRoll.total
|
||||||
@@ -475,18 +500,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) {
|
||||||
@@ -497,30 +522,35 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getCombativiteList(nbActivite) {
|
static getCombativiteList(nbActivite) {
|
||||||
let list = [ { value: 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: i, label:"Eprouvé " + i} )
|
list.push({ value: String(i), label: "Eprouvé " + i })
|
||||||
}
|
}
|
||||||
list[nbActivite-2] = { value: nbActivite-2, label:"Affaibli"}
|
list[nbActivite - 2] = { value: String(nbActivite - 2), label: "Affaibli" }
|
||||||
list[nbActivite-1] = { value: nbActivite-1, label:"Très Affaibli"}
|
list[nbActivite - 1] = { value: String(nbActivite - 1), label: "Très Affaibli" }
|
||||||
list[nbActivite] = { value: 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 = new Roll(rollData.bonusFormula).roll({ async: false })
|
if (!Number(rollData.bonusFormula)) {
|
||||||
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
||||||
rollData.bonusRoll = 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)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -547,7 +577,7 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static blindMessageToGM(chatOptions) {
|
static blindMessageToGM(chatOptions) {
|
||||||
let chatGM = duplicate(chatOptions);
|
let chatGM = foundry.utils.duplicate(chatOptions);
|
||||||
chatGM.whisper = this.getUsers(user => user.isGM);
|
chatGM.whisper = this.getUsers(user => user.isGM);
|
||||||
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
||||||
console.log("blindMessageToGM", chatGM);
|
console.log("blindMessageToGM", chatGM);
|
||||||
@@ -611,7 +641,7 @@ export class HawkmoonUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getBasicRollData() {
|
static getBasicRollData() {
|
||||||
let rollData = {
|
let rollData = {
|
||||||
rollId: randomID(16),
|
rollId: foundry.utils.randomID(16),
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
modificateursOptions: this.getModificateurOptions(),
|
modificateursOptions: this.getModificateurOptions(),
|
||||||
pointAmeOptions: this.getPointAmeOptions(),
|
pointAmeOptions: this.getPointAmeOptions(),
|
||||||
@@ -630,11 +660,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
|
||||||
}
|
}
|
||||||
@@ -646,6 +676,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) {
|
||||||
@@ -654,11 +685,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
|
||||||
}
|
}
|
||||||
@@ -676,7 +709,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")
|
||||||
@@ -695,7 +728,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")
|
||||||
@@ -716,13 +749,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)
|
||||||
@@ -748,7 +781,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
|
||||||
|
|||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000152
|
MANIFEST-000317
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:44.588303 7fcc654006c0 Recovering log #150
|
2025/10/17-20:49:09.898677 7f7b753f96c0 Recovering log #315
|
||||||
2024/04/24-19:19:45.046737 7fcc654006c0 Delete type=3 #148
|
2025/10/17-20:49:09.909170 7f7b753f96c0 Delete type=3 #313
|
||||||
2024/04/24-19:19:45.047257 7fcc654006c0 Delete type=0 #150
|
2025/10/17-20:49:09.909239 7f7b753f96c0 Delete type=0 #315
|
||||||
2024/04/24-20:38:33.674583 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.581106 7f7b6f3ff6c0 Level-0 table #320: started
|
||||||
2024/04/24-20:38:33.674627 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.581135 7f7b6f3ff6c0 Level-0 table #320: 0 bytes OK
|
||||||
2024/04/24-20:38:33.681197 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.587115 7f7b6f3ff6c0 Delete type=0 #318
|
||||||
2024/04/24-20:38:33.681325 7fcc5e4006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.603825 7f7b6f3ff6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.681347 7fcc5e4006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.603883 7f7b6f3ff6c0 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/04/07-18:44:43.940864 7f38a3e006c0 Recovering log #146
|
2025/10/17-20:28:53.005538 7f7b6ffff6c0 Recovering log #311
|
||||||
2024/04/07-18:44:43.951368 7f38a3e006c0 Delete type=3 #144
|
2025/10/17-20:28:53.015248 7f7b6ffff6c0 Delete type=3 #309
|
||||||
2024/04/07-18:44:43.951425 7f38a3e006c0 Delete type=0 #146
|
2025/10/17-20:28:53.015310 7f7b6ffff6c0 Delete type=0 #311
|
||||||
2024/04/07-18:53:15.757658 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.987430 7f7b6f3ff6c0 Level-0 table #316: started
|
||||||
2024/04/07-18:53:15.757696 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.987468 7f7b6f3ff6c0 Level-0 table #316: 0 bytes OK
|
||||||
2024/04/07-18:53:15.765139 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.993944 7f7b6f3ff6c0 Delete type=0 #314
|
||||||
2024/04/07-18:53:15.765299 7f38a10006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:10.021275 7f7b6f3ff6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.765326 7f38a10006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:10.021333 7f7b6f3ff6c0 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-000317
Normal file
BIN
packs/aides-de-jeu/MANIFEST-000317
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-000152
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:43.144098 7fcc5fe006c0 Recovering log #150
|
2025/10/17-20:49:09.793672 7f7b753f96c0 Recovering log #314
|
||||||
2024/04/24-19:19:43.367448 7fcc5fe006c0 Delete type=3 #148
|
2025/10/17-20:49:09.803546 7f7b753f96c0 Delete type=3 #312
|
||||||
2024/04/24-19:19:43.367549 7fcc5fe006c0 Delete type=0 #150
|
2025/10/17-20:49:09.803615 7f7b753f96c0 Delete type=0 #314
|
||||||
2024/04/24-20:38:33.619450 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.536969 7f7b6f3ff6c0 Level-0 table #319: started
|
||||||
2024/04/24-20:38:33.619488 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.537001 7f7b6f3ff6c0 Level-0 table #319: 0 bytes OK
|
||||||
2024/04/24-20:38:33.626512 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.542920 7f7b6f3ff6c0 Delete type=0 #317
|
||||||
2024/04/24-20:38:33.632878 7fcc5e4006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.548820 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.639837 7fcc5e4006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.548874 7f7b6f3ff6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/07-18:44:43.841800 7f38a2a006c0 Recovering log #146
|
2025/10/17-20:28:52.891518 7f7b74bf86c0 Recovering log #310
|
||||||
2024/04/07-18:44:43.851587 7f38a2a006c0 Delete type=3 #144
|
2025/10/17-20:28:52.901457 7f7b74bf86c0 Delete type=3 #308
|
||||||
2024/04/07-18:44:43.851700 7f38a2a006c0 Delete type=0 #146
|
2025/10/17-20:28:52.901513 7f7b74bf86c0 Delete type=0 #310
|
||||||
2024/04/07-18:53:15.687706 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.934499 7f7b6f3ff6c0 Level-0 table #315: started
|
||||||
2024/04/07-18:53:15.687751 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.934522 7f7b6f3ff6c0 Level-0 table #315: 0 bytes OK
|
||||||
2024/04/07-18:53:15.694223 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.940458 7f7b6f3ff6c0 Delete type=0 #313
|
||||||
2024/04/07-18:53:15.709272 7f38a10006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.960521 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.709352 7f38a10006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.960598 7f7b6f3ff6c0 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-000316
Normal file
BIN
packs/armes/MANIFEST-000316
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-000152
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:43.017708 7fcc64a006c0 Recovering log #150
|
2025/10/17-20:49:09.768629 7f7b6ffff6c0 Recovering log #314
|
||||||
2024/04/24-19:19:43.076452 7fcc64a006c0 Delete type=3 #148
|
2025/10/17-20:49:09.779130 7f7b6ffff6c0 Delete type=3 #312
|
||||||
2024/04/24-19:19:43.076601 7fcc64a006c0 Delete type=0 #150
|
2025/10/17-20:49:09.779215 7f7b6ffff6c0 Delete type=0 #314
|
||||||
2024/04/24-20:38:33.605428 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.498148 7f7b6f3ff6c0 Level-0 table #319: started
|
||||||
2024/04/24-20:38:33.605456 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.498192 7f7b6f3ff6c0 Level-0 table #319: 0 bytes OK
|
||||||
2024/04/24-20:38:33.612661 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.504185 7f7b6f3ff6c0 Delete type=0 #317
|
||||||
2024/04/24-20:38:33.619414 7fcc5e4006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.523654 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.626638 7fcc5e4006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.523691 7f7b6f3ff6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/07-18:44:43.814328 7f38a2a006c0 Recovering log #146
|
2025/10/17-20:28:52.864581 7f7b6ffff6c0 Recovering log #310
|
||||||
2024/04/07-18:44:43.824924 7f38a2a006c0 Delete type=3 #144
|
2025/10/17-20:28:52.874388 7f7b6ffff6c0 Delete type=3 #308
|
||||||
2024/04/07-18:44:43.825056 7f38a2a006c0 Delete type=0 #146
|
2025/10/17-20:28:52.874444 7f7b6ffff6c0 Delete type=0 #310
|
||||||
2024/04/07-18:53:15.694330 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.921911 7f7b6f3ff6c0 Level-0 table #315: started
|
||||||
2024/04/07-18:53:15.694352 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.921935 7f7b6f3ff6c0 Level-0 table #315: 0 bytes OK
|
||||||
2024/04/07-18:53:15.702258 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.928010 7f7b6f3ff6c0 Delete type=0 #313
|
||||||
2024/04/07-18:53:15.709293 7f38a10006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.934388 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.709368 7f38a10006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.934420 7f7b6f3ff6c0 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-000316
Normal file
BIN
packs/competences-creatures/MANIFEST-000316
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-000152
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:42.882823 7fcc64a006c0 Recovering log #150
|
2025/10/17-20:49:09.744321 7f7b75bfa6c0 Recovering log #314
|
||||||
2024/04/24-19:19:42.947075 7fcc64a006c0 Delete type=3 #148
|
2025/10/17-20:49:09.753860 7f7b75bfa6c0 Delete type=3 #312
|
||||||
2024/04/24-19:19:42.947209 7fcc64a006c0 Delete type=0 #150
|
2025/10/17-20:49:09.753934 7f7b75bfa6c0 Delete type=0 #314
|
||||||
2024/04/24-20:38:33.592157 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.511424 7f7b6f3ff6c0 Level-0 table #319: started
|
||||||
2024/04/24-20:38:33.592206 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.511449 7f7b6f3ff6c0 Level-0 table #319: 0 bytes OK
|
||||||
2024/04/24-20:38:33.598509 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.517304 7f7b6f3ff6c0 Delete type=0 #317
|
||||||
2024/04/24-20:38:33.605418 7fcc5e4006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.523675 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.612914 7fcc5e4006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.523698 7f7b6f3ff6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/07-18:44:43.786249 7f38a2a006c0 Recovering log #146
|
2025/10/17-20:28:52.833282 7f7b75bfa6c0 Recovering log #310
|
||||||
2024/04/07-18:44:43.797379 7f38a2a006c0 Delete type=3 #144
|
2025/10/17-20:28:52.844042 7f7b75bfa6c0 Delete type=3 #308
|
||||||
2024/04/07-18:44:43.797432 7f38a2a006c0 Delete type=0 #146
|
2025/10/17-20:28:52.844117 7f7b75bfa6c0 Delete type=0 #310
|
||||||
2024/04/07-18:53:15.681177 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.915408 7f7b6f3ff6c0 Level-0 table #315: started
|
||||||
2024/04/07-18:53:15.681197 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.915432 7f7b6f3ff6c0 Level-0 table #315: 0 bytes OK
|
||||||
2024/04/07-18:53:15.687480 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.921802 7f7b6f3ff6c0 Delete type=0 #313
|
||||||
2024/04/07-18:53:15.709243 7f38a10006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.934379 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.709312 7f38a10006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.934414 7f7b6f3ff6c0 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-000316
Normal file
BIN
packs/competences/MANIFEST-000316
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-000152
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:43.562687 7fcc5fe006c0 Recovering log #150
|
2025/10/17-20:49:09.817906 7f7b75bfa6c0 Recovering log #314
|
||||||
2024/04/24-19:19:43.720740 7fcc5fe006c0 Delete type=3 #148
|
2025/10/17-20:49:09.828670 7f7b75bfa6c0 Delete type=3 #312
|
||||||
2024/04/24-19:19:43.720811 7fcc5fe006c0 Delete type=0 #150
|
2025/10/17-20:49:09.828748 7f7b75bfa6c0 Delete type=0 #314
|
||||||
2024/04/24-20:38:33.632917 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.543003 7f7b6f3ff6c0 Level-0 table #319: started
|
||||||
2024/04/24-20:38:33.632957 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.543024 7f7b6f3ff6c0 Level-0 table #319: 0 bytes OK
|
||||||
2024/04/24-20:38:33.639646 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.548737 7f7b6f3ff6c0 Delete type=0 #317
|
||||||
2024/04/24-20:38:33.647315 7fcc5e4006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.548828 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.653621 7fcc5e4006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.548865 7f7b6f3ff6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/07-18:44:43.869311 7f38a2a006c0 Recovering log #146
|
2025/10/17-20:28:52.917702 7f7b753f96c0 Recovering log #310
|
||||||
2024/04/07-18:44:43.880871 7f38a2a006c0 Delete type=3 #144
|
2025/10/17-20:28:52.927558 7f7b753f96c0 Delete type=3 #308
|
||||||
2024/04/07-18:44:43.880923 7f38a2a006c0 Delete type=0 #146
|
2025/10/17-20:28:52.927613 7f7b753f96c0 Delete type=0 #310
|
||||||
2024/04/07-18:53:15.709571 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.940553 7f7b6f3ff6c0 Level-0 table #315: started
|
||||||
2024/04/07-18:53:15.709616 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.940581 7f7b6f3ff6c0 Level-0 table #315: 0 bytes OK
|
||||||
2024/04/07-18:53:15.716550 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.947637 7f7b6f3ff6c0 Delete type=0 #313
|
||||||
2024/04/07-18:53:15.736946 7f38a10006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.960552 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.736993 7f38a10006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.960608 7f7b6f3ff6c0 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-000316
Normal file
BIN
packs/equipement/MANIFEST-000316
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-000152
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:43.080280 7fcc5fe006c0 Recovering log #150
|
2025/10/17-20:49:09.780990 7f7b74bf86c0 Recovering log #314
|
||||||
2024/04/24-19:19:43.137577 7fcc5fe006c0 Delete type=3 #148
|
2025/10/17-20:49:09.790922 7f7b74bf86c0 Delete type=3 #312
|
||||||
2024/04/24-19:19:43.137905 7fcc5fe006c0 Delete type=0 #150
|
2025/10/17-20:49:09.791046 7f7b74bf86c0 Delete type=0 #314
|
||||||
2024/04/24-20:38:33.612932 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.504312 7f7b6f3ff6c0 Level-0 table #319: started
|
||||||
2024/04/24-20:38:33.613011 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.504337 7f7b6f3ff6c0 Level-0 table #319: 0 bytes OK
|
||||||
2024/04/24-20:38:33.619236 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.511317 7f7b6f3ff6c0 Delete type=0 #317
|
||||||
2024/04/24-20:38:33.626625 7fcc5e4006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.523666 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.632899 7fcc5e4006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.523704 7f7b6f3ff6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/07-18:44:43.827816 7f38a3e006c0 Recovering log #146
|
2025/10/17-20:28:52.876807 7f7b75bfa6c0 Recovering log #310
|
||||||
2024/04/07-18:44:43.838730 7f38a3e006c0 Delete type=3 #144
|
2025/10/17-20:28:52.886763 7f7b75bfa6c0 Delete type=3 #308
|
||||||
2024/04/07-18:44:43.838786 7f38a3e006c0 Delete type=0 #146
|
2025/10/17-20:28:52.886882 7f7b75bfa6c0 Delete type=0 #310
|
||||||
2024/04/07-18:53:15.702497 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.909233 7f7b6f3ff6c0 Level-0 table #315: started
|
||||||
2024/04/07-18:53:15.702540 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.909293 7f7b6f3ff6c0 Level-0 table #315: 0 bytes OK
|
||||||
2024/04/07-18:53:15.708964 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.915307 7f7b6f3ff6c0 Delete type=0 #313
|
||||||
2024/04/07-18:53:15.709333 7f38a10006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.934366 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.709410 7f38a10006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.934408 7f7b6f3ff6c0 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-000316
Normal file
BIN
packs/historiques/MANIFEST-000316
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-000062
|
MANIFEST-000226
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:42.952046 7fcc5fe006c0 Recovering log #60
|
2025/10/17-20:49:09.755935 7f7b753f96c0 Recovering log #224
|
||||||
2024/04/24-19:19:43.001963 7fcc5fe006c0 Delete type=3 #58
|
2025/10/17-20:49:09.766032 7f7b753f96c0 Delete type=3 #222
|
||||||
2024/04/24-19:19:43.002046 7fcc5fe006c0 Delete type=0 #60
|
2025/10/17-20:49:09.766080 7f7b753f96c0 Delete type=0 #224
|
||||||
2024/04/24-20:38:33.598679 7fcc5e4006c0 Level-0 table #65: started
|
2025/10/17-22:35:10.517436 7f7b6f3ff6c0 Level-0 table #229: started
|
||||||
2024/04/24-20:38:33.598713 7fcc5e4006c0 Level-0 table #65: 0 bytes OK
|
2025/10/17-22:35:10.517471 7f7b6f3ff6c0 Level-0 table #229: 0 bytes OK
|
||||||
2024/04/24-20:38:33.605307 7fcc5e4006c0 Delete type=0 #63
|
2025/10/17-22:35:10.523546 7f7b6f3ff6c0 Delete type=0 #227
|
||||||
2024/04/24-20:38:33.612894 7fcc5e4006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.523683 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.619433 7fcc5e4006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.523709 7f7b6f3ff6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/07-18:44:43.800976 7f38a3e006c0 Recovering log #56
|
2025/10/17-20:28:52.850444 7f7b753f96c0 Recovering log #220
|
||||||
2024/04/07-18:44:43.810946 7f38a3e006c0 Delete type=3 #54
|
2025/10/17-20:28:52.860559 7f7b753f96c0 Delete type=3 #218
|
||||||
2024/04/07-18:44:43.811011 7f38a3e006c0 Delete type=0 #56
|
2025/10/17-20:28:52.860629 7f7b753f96c0 Delete type=0 #220
|
||||||
2024/04/07-18:53:15.674292 7f38a10006c0 Level-0 table #61: started
|
2025/10/17-20:41:09.928209 7f7b6f3ff6c0 Level-0 table #225: started
|
||||||
2024/04/07-18:53:15.674318 7f38a10006c0 Level-0 table #61: 0 bytes OK
|
2025/10/17-20:41:09.928246 7f7b6f3ff6c0 Level-0 table #225: 0 bytes OK
|
||||||
2024/04/07-18:53:15.680930 7f38a10006c0 Delete type=0 #59
|
2025/10/17-20:41:09.934269 7f7b6f3ff6c0 Delete type=0 #223
|
||||||
2024/04/07-18:53:15.681066 7f38a10006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.934398 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.681085 7f38a10006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.934428 7f7b6f3ff6c0 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-000226
Normal file
BIN
packs/mutations/MANIFEST-000226
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-000152
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:43.730272 7fcc654006c0 Recovering log #150
|
2025/10/17-20:49:09.830796 7f7b753f96c0 Recovering log #314
|
||||||
2024/04/24-19:19:43.889184 7fcc654006c0 Delete type=3 #148
|
2025/10/17-20:49:09.842331 7f7b753f96c0 Delete type=3 #312
|
||||||
2024/04/24-19:19:43.889335 7fcc654006c0 Delete type=0 #150
|
2025/10/17-20:49:09.842423 7f7b753f96c0 Delete type=0 #314
|
||||||
2024/04/24-20:38:33.639856 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.523783 7f7b6f3ff6c0 Level-0 table #319: started
|
||||||
2024/04/24-20:38:33.639921 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.523803 7f7b6f3ff6c0 Level-0 table #319: 0 bytes OK
|
||||||
2024/04/24-20:38:33.647189 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.529922 7f7b6f3ff6c0 Delete type=0 #317
|
||||||
2024/04/24-20:38:33.653608 7fcc5e4006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.548803 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.660740 7fcc5e4006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.548837 7f7b6f3ff6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/07-18:44:43.885807 7f38a3e006c0 Recovering log #146
|
2025/10/17-20:28:52.931574 7f7b74bf86c0 Recovering log #310
|
||||||
2024/04/07-18:44:43.895718 7f38a3e006c0 Delete type=3 #144
|
2025/10/17-20:28:52.941330 7f7b74bf86c0 Delete type=3 #308
|
||||||
2024/04/07-18:44:43.895858 7f38a3e006c0 Delete type=0 #146
|
2025/10/17-20:28:52.941393 7f7b74bf86c0 Delete type=0 #310
|
||||||
2024/04/07-18:53:15.716770 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.947757 7f7b6f3ff6c0 Level-0 table #315: started
|
||||||
2024/04/07-18:53:15.716808 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.947779 7f7b6f3ff6c0 Level-0 table #315: 0 bytes OK
|
||||||
2024/04/07-18:53:15.723524 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.953770 7f7b6f3ff6c0 Delete type=0 #313
|
||||||
2024/04/07-18:53:15.736955 7f38a10006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.960567 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.737004 7f38a10006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.960660 7f7b6f3ff6c0 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-000316
Normal file
BIN
packs/profils/MANIFEST-000316
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.
@@ -1 +1 @@
|
|||||||
MANIFEST-000152
|
MANIFEST-000316
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/24-19:19:43.378670 7fcc654006c0 Recovering log #150
|
2025/10/17-20:49:09.806029 7f7b6ffff6c0 Recovering log #314
|
||||||
2024/04/24-19:19:43.554194 7fcc654006c0 Delete type=3 #148
|
2025/10/17-20:49:09.815854 7f7b6ffff6c0 Delete type=3 #312
|
||||||
2024/04/24-19:19:43.554281 7fcc654006c0 Delete type=0 #150
|
2025/10/17-20:49:09.815927 7f7b6ffff6c0 Delete type=0 #314
|
||||||
2024/04/24-20:38:33.626647 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.530010 7f7b6f3ff6c0 Level-0 table #319: started
|
||||||
2024/04/24-20:38:33.626669 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.530036 7f7b6f3ff6c0 Level-0 table #319: 0 bytes OK
|
||||||
2024/04/24-20:38:33.632751 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.536861 7f7b6f3ff6c0 Delete type=0 #317
|
||||||
2024/04/24-20:38:33.639816 7fcc5e4006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.548812 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||||
2024/04/24-20:38:33.647329 7fcc5e4006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.548856 7f7b6f3ff6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/04/07-18:44:43.856327 7f38a3e006c0 Recovering log #146
|
2025/10/17-20:28:52.904993 7f7b6ffff6c0 Recovering log #310
|
||||||
2024/04/07-18:44:43.867226 7f38a3e006c0 Delete type=3 #144
|
2025/10/17-20:28:52.915402 7f7b6ffff6c0 Delete type=3 #308
|
||||||
2024/04/07-18:44:43.867361 7f38a3e006c0 Delete type=0 #146
|
2025/10/17-20:28:52.915473 7f7b6ffff6c0 Delete type=0 #310
|
||||||
2024/04/07-18:53:15.723744 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.953909 7f7b6f3ff6c0 Level-0 table #315: started
|
||||||
2024/04/07-18:53:15.723796 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.953941 7f7b6f3ff6c0 Level-0 table #315: 0 bytes OK
|
||||||
2024/04/07-18:53:15.730185 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.960253 7f7b6f3ff6c0 Delete type=0 #313
|
||||||
2024/04/07-18:53:15.736963 7f38a10006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.960585 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||||
2024/04/07-18:53:15.736999 7f38a10006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.960625 7f7b6f3ff6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/protections/MANIFEST-000316
Normal file
BIN
packs/protections/MANIFEST-000316
Normal file
Binary file not shown.
BIN
packs/scenes/000114.ldb
Normal file
BIN
packs/scenes/000114.ldb
Normal file
Binary file not shown.
1
packs/scenes/CURRENT
Normal file
1
packs/scenes/CURRENT
Normal file
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000155
|
||||||
8
packs/scenes/LOG
Normal file
8
packs/scenes/LOG
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
2025/10/17-20:49:09.884880 7f7b74bf86c0 Recovering log #153
|
||||||
|
2025/10/17-20:49:09.895049 7f7b74bf86c0 Delete type=3 #151
|
||||||
|
2025/10/17-20:49:09.895170 7f7b74bf86c0 Delete type=0 #153
|
||||||
|
2025/10/17-22:35:10.567862 7f7b6f3ff6c0 Level-0 table #158: started
|
||||||
|
2025/10/17-22:35:10.567895 7f7b6f3ff6c0 Level-0 table #158: 0 bytes OK
|
||||||
|
2025/10/17-22:35:10.573834 7f7b6f3ff6c0 Delete type=0 #156
|
||||||
|
2025/10/17-22:35:10.573961 7f7b6f3ff6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||||
|
2025/10/17-22:35:10.573984 7f7b6f3ff6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||||
8
packs/scenes/LOG.old
Normal file
8
packs/scenes/LOG.old
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
2025/10/17-20:28:52.991738 7f7b75bfa6c0 Recovering log #149
|
||||||
|
2025/10/17-20:28:53.001988 7f7b75bfa6c0 Delete type=3 #147
|
||||||
|
2025/10/17-20:28:53.002043 7f7b75bfa6c0 Delete type=0 #149
|
||||||
|
2025/10/17-20:41:09.981079 7f7b6f3ff6c0 Level-0 table #154: started
|
||||||
|
2025/10/17-20:41:09.981106 7f7b6f3ff6c0 Level-0 table #154: 0 bytes OK
|
||||||
|
2025/10/17-20:41:09.987177 7f7b6f3ff6c0 Delete type=0 #152
|
||||||
|
2025/10/17-20:41:09.987342 7f7b6f3ff6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||||
|
2025/10/17-20:41:09.987364 7f7b6f3ff6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
|
||||||
BIN
packs/scenes/MANIFEST-000155
Normal file
BIN
packs/scenes/MANIFEST-000155
Normal file
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000152
|
MANIFEST-000312
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2024/04/24-19:19:44.361715 7fcc5fe006c0 Recovering log #150
|
2025/10/17-20:49:09.870941 7f7b6ffff6c0 Recovering log #310
|
||||||
2024/04/24-19:19:44.586287 7fcc5fe006c0 Delete type=3 #148
|
2025/10/17-20:49:09.882449 7f7b6ffff6c0 Delete type=3 #308
|
||||||
2024/04/24-19:19:44.586391 7fcc5fe006c0 Delete type=0 #150
|
2025/10/17-20:49:09.882502 7f7b6ffff6c0 Delete type=0 #310
|
||||||
2024/04/24-20:38:33.660752 7fcc5e4006c0 Level-0 table #155: started
|
2025/10/17-22:35:10.555404 7f7b6f3ff6c0 Level-0 table #315: started
|
||||||
2024/04/24-20:38:33.660779 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
|
2025/10/17-22:35:10.555439 7f7b6f3ff6c0 Level-0 table #315: 0 bytes OK
|
||||||
2024/04/24-20:38:33.667170 7fcc5e4006c0 Delete type=0 #153
|
2025/10/17-22:35:10.561830 7f7b6f3ff6c0 Delete type=0 #313
|
||||||
2024/04/24-20:38:33.674538 7fcc5e4006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2025/10/17-22:35:10.573943 7f7b6f3ff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2024/04/07-18:44:43.927559 7f38a2a006c0 Recovering log #146
|
2025/10/17-20:28:52.979092 7f7b74bf86c0 Recovering log #306
|
||||||
2024/04/07-18:44:43.937525 7f38a2a006c0 Delete type=3 #144
|
2025/10/17-20:28:52.988936 7f7b74bf86c0 Delete type=3 #304
|
||||||
2024/04/07-18:44:43.937610 7f38a2a006c0 Delete type=0 #146
|
2025/10/17-20:28:52.988991 7f7b74bf86c0 Delete type=0 #306
|
||||||
2024/04/07-18:53:15.737130 7f38a10006c0 Level-0 table #151: started
|
2025/10/17-20:41:09.967934 7f7b6f3ff6c0 Level-0 table #311: started
|
||||||
2024/04/07-18:53:15.737157 7f38a10006c0 Level-0 table #151: 0 bytes OK
|
2025/10/17-20:41:09.967969 7f7b6f3ff6c0 Level-0 table #311: 0 bytes OK
|
||||||
2024/04/07-18:53:15.743304 7f38a10006c0 Delete type=0 #149
|
2025/10/17-20:41:09.973951 7f7b6f3ff6c0 Delete type=0 #309
|
||||||
2024/04/07-18:53:15.765257 7f38a10006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2025/10/17-20:41:09.987325 7f7b6f3ff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
BIN
packs/tables/MANIFEST-000312
Normal file
BIN
packs/tables/MANIFEST-000312
Normal file
Binary file not shown.
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