Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 939cfb1e86 | |||
| 5f5e0e2a8c | |||
| c993a9a5b1 | |||
| cc7de0e53c | |||
| 4d41986c12 | |||
| d04731f475 | |||
| 44a641a0ca | |||
| 1ad022d193 | |||
| 1c7cf343b1 | |||
| d4b00e3508 | |||
| adc912e6cd | |||
| 51a457ebf6 | |||
| 2e9c558027 | |||
| bcd0758328 | |||
| 2b680a203f | |||
| e3d7874dce |
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.4 KiB |
+2
-1
@@ -17,7 +17,8 @@
|
|||||||
"fee": "Fée",
|
"fee": "Fée",
|
||||||
"pouvoir": "Pouvoir",
|
"pouvoir": "Pouvoir",
|
||||||
"profil": "Profil",
|
"profil": "Profil",
|
||||||
"protection": "Protection"
|
"protection": "Protection",
|
||||||
|
"sort": "Sort"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
import { HeritiersUtility } from "./heritiers-utility.js";
|
import { HeritiersUtility } from "./heritiers-utility.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class HeritiersActorSheet extends ActorSheet {
|
export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
@@ -24,7 +24,7 @@ export class HeritiersActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
const objectData = foundry.utils.duplicate(this.object)
|
const objectData = foundry.utils.duplicate(this.object)
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
@@ -38,31 +38,33 @@ export class HeritiersActorSheet 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(),
|
||||||
utileSkillsMental :this.actor.organizeUtileSkills("mental"),
|
utileSkillsMental: this.actor.organizeUtileSkills("mental"),
|
||||||
utileSkillsPhysical :this.actor.organizeUtileSkills("physical"),
|
utileSkillsPhysical: this.actor.organizeUtileSkills("physical"),
|
||||||
futileSkills :this.actor.organizeFutileSkills(),
|
competencesMagie: HeritiersUtility.getCompetencesMagie(),
|
||||||
|
futileSkills: this.actor.organizeFutileSkills(),
|
||||||
contacts: this.actor.organizeContacts(),
|
contacts: this.actor.organizeContacts(),
|
||||||
armes: foundry.utils.duplicate(this.actor.getWeapons()),
|
armes: foundry.utils.duplicate(this.actor.getWeapons()),
|
||||||
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
|
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
|
||||||
pouvoirs: foundry.utils.duplicate(this.actor.getPouvoirs()),
|
pouvoirs: foundry.utils.duplicate(this.actor.getPouvoirs()),
|
||||||
fee: foundry.utils.duplicate(this.actor.getFee() || {} ),
|
fee: foundry.utils.duplicate(this.actor.getFee() || {}),
|
||||||
protections: foundry.utils.duplicate(this.actor.getArmors()),
|
protections: foundry.utils.duplicate(this.actor.getArmors()),
|
||||||
combat: this.actor.getCombatValues(),
|
combat: this.actor.getCombatValues(),
|
||||||
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
|
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
|
||||||
avantages: foundry.utils.duplicate(this.actor.getAvantages()),
|
avantages: foundry.utils.duplicate(this.actor.getAvantages()),
|
||||||
atouts: foundry.utils.duplicate(this.actor.getAtouts()),
|
atouts: foundry.utils.duplicate(this.actor.getAtouts()),
|
||||||
capacites: foundry.utils.duplicate(this.actor.getCapacites()),
|
capacites: foundry.utils.duplicate(this.actor.getCapacites()),
|
||||||
desavantages: foundry.utils.duplicate(this.actor.getDesavantages()),
|
desavantages: foundry.utils.duplicate(this.actor.getDesavantages()),
|
||||||
profils: foundry.utils.duplicate(this.actor.getProfils()),
|
profils: foundry.utils.duplicate(this.actor.getProfils()),
|
||||||
pvMalus: this.actor.getPvMalus(),
|
pvMalus: this.actor.getPvMalus(),
|
||||||
heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"),
|
heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"),
|
||||||
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 }),
|
||||||
revesetranges: await TextEditor.enrichHTML(this.object.system.biodata.revesetranges, {async: true}),
|
revesetranges: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.revesetranges, { async: true }),
|
||||||
secretsdecouverts: await TextEditor.enrichHTML(this.object.system.biodata.secretsdecouverts, {async: true}),
|
secretsdecouverts: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.secretsdecouverts, { async: true }),
|
||||||
questions: await TextEditor.enrichHTML(this.object.system.biodata.questions, {async: true}),
|
questions: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.questions, { 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 }),
|
||||||
playernotes: await TextEditor.enrichHTML(this.object.system.biodata.playernotes, {async: true}),
|
playernotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.playernotes, { async: true }),
|
||||||
|
magieList: this.actor.prepareMagie(),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
@@ -120,14 +122,14 @@ export class HeritiersActorSheet 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");
|
||||||
@@ -135,8 +137,8 @@ export class HeritiersActorSheet extends ActorSheet {
|
|||||||
})
|
})
|
||||||
html.find('.edit-item-data').change(ev => {
|
html.find('.edit-item-data').change(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")
|
||||||
let itemType = li.data("item-type")
|
let itemType = li.data("item-type")
|
||||||
let itemField = $(ev.currentTarget).data("item-field")
|
let itemField = $(ev.currentTarget).data("item-field")
|
||||||
let dataType = $(ev.currentTarget).data("dtype")
|
let dataType = $(ev.currentTarget).data("dtype")
|
||||||
let value = ev.currentTarget.value
|
let value = ev.currentTarget.value
|
||||||
@@ -149,17 +151,17 @@ export class HeritiersActorSheet 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"))
|
||||||
this.actor.incDecQuantity( li.data("item-id"), value );
|
this.actor.incDecQuantity(li.data("item-id"), value);
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.roll-initiative').click((event) => {
|
html.find('.roll-initiative').click((event) => {
|
||||||
this.actor.rollInitiative()
|
this.actor.rollInitiative()
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.roll-carac').click((event) => {
|
html.find('.roll-carac').click((event) => {
|
||||||
const key = $(event.currentTarget).data("key")
|
const key = $(event.currentTarget).data("key")
|
||||||
this.actor.rollCarac(key, false)
|
this.actor.rollCarac(key, false)
|
||||||
@@ -167,37 +169,42 @@ export class HeritiersActorSheet extends ActorSheet {
|
|||||||
html.find('.roll-rang').click((event) => {
|
html.find('.roll-rang').click((event) => {
|
||||||
const key = $(event.currentTarget).data("rang-key")
|
const key = $(event.currentTarget).data("rang-key")
|
||||||
this.actor.rollRang(key, false)
|
this.actor.rollRang(key, false)
|
||||||
})
|
})
|
||||||
html.find('.roll-root-competence').click((event) => {
|
html.find('.roll-root-competence').click((event) => {
|
||||||
const compKey = $(event.currentTarget).data("attr-key")
|
const compKey = $(event.currentTarget).data("attr-key")
|
||||||
this.actor.rollRootCompetence(compKey)
|
this.actor.rollRootCompetence(compKey)
|
||||||
})
|
})
|
||||||
html.find('.roll-competence').click((event) => {
|
html.find('.roll-competence').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item")
|
const li = $(event.currentTarget).parents(".item")
|
||||||
let compId = li.data("item-id")
|
let compId = li.data("item-id")
|
||||||
this.actor.rollCompetence(compId)
|
this.actor.rollCompetence(compId)
|
||||||
})
|
})
|
||||||
|
html.find('.roll-sort').click((event) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item")
|
||||||
|
let sortId = li.data("item-id")
|
||||||
|
this.actor.rollSort(sortId)
|
||||||
|
})
|
||||||
html.find('.roll-attaque-arme').click((event) => {
|
html.find('.roll-attaque-arme').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.rollAttaqueArme(armeId)
|
this.actor.rollAttaqueArme(armeId)
|
||||||
})
|
})
|
||||||
html.find('.roll-attaque-brutale-arme').click((event) => {
|
html.find('.roll-attaque-brutale-arme').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.rollAttaqueBrutaleArme(armeId)
|
this.actor.rollAttaqueBrutaleArme(armeId)
|
||||||
})
|
})
|
||||||
html.find('.roll-attaque-charge-arme').click((event) => {
|
html.find('.roll-attaque-charge-arme').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.rollAttaqueChargeArme(armeId)
|
this.actor.rollAttaqueChargeArme(armeId)
|
||||||
})
|
})
|
||||||
html.find('.roll-assomer-arme').click((event) => {
|
html.find('.roll-assomer-arme').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.rollAssomerArme(armeId)
|
this.actor.rollAssomerArme(armeId)
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('.roll-pouvoir').click((event) => {
|
html.find('.roll-pouvoir').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item")
|
const li = $(event.currentTarget).parents(".item")
|
||||||
let pouvoirId = li.data("item-id")
|
let pouvoirId = li.data("item-id")
|
||||||
@@ -209,21 +216,29 @@ export class HeritiersActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
html.find('.item-add').click((event) => {
|
html.find('.item-add').click((event) => {
|
||||||
const itemType = $(event.currentTarget).data("type")
|
const itemType = $(event.currentTarget).data("type")
|
||||||
|
if (itemType == "sort") {
|
||||||
|
// Get data-sort-competence
|
||||||
|
let sortCompetence = $(event.currentTarget).data("sort-competence");
|
||||||
|
if (sortCompetence) {
|
||||||
|
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType} de ${sortCompetence}`, type: itemType, system: { competence: sortCompetence } }], { renderSheet: true })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
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 = {}) {
|
||||||
|
|||||||
+248
-20
@@ -17,8 +17,8 @@ export class HeritiersActor 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.
|
||||||
@@ -41,7 +41,7 @@ export class HeritiersActor extends Actor {
|
|||||||
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
|
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
|
||||||
data.items = []
|
data.items = []
|
||||||
for (let skill of skills) {
|
for (let skill of skills) {
|
||||||
if (skill.system.categorie == "utile") {
|
if (skill.system.categorie == "utile" && skill.system.profil != "magie") {
|
||||||
data.items.push(skill.toObject())
|
data.items.push(skill.toObject())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -146,6 +146,85 @@ export class HeritiersActor extends Actor {
|
|||||||
HeritiersUtility.sortArrayObjectsByName(pouvoirs)
|
HeritiersUtility.sortArrayObjectsByName(pouvoirs)
|
||||||
return pouvoirs
|
return pouvoirs
|
||||||
}
|
}
|
||||||
|
getSorts() {
|
||||||
|
return this.getItemSorted(["sort"])
|
||||||
|
}
|
||||||
|
getCompetencesMagie() {
|
||||||
|
let comp = []
|
||||||
|
for (let item of this.items) {
|
||||||
|
if (item.type == "competence" && item.system.profil == "magie") {
|
||||||
|
let itemObj = foundry.utils.duplicate(item)
|
||||||
|
comp.push(itemObj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
HeritiersUtility.sortArrayObjectsByName(comp)
|
||||||
|
return comp
|
||||||
|
}
|
||||||
|
|
||||||
|
prepareMagie() {
|
||||||
|
let magieList = []
|
||||||
|
for (let item of this.items) {
|
||||||
|
if (item.type == "competence" && item.system.profil == "magie") {
|
||||||
|
let magie = {}
|
||||||
|
magie.name = item.name
|
||||||
|
magie.competence = foundry.utils.duplicate(item)
|
||||||
|
magie.rang = Math.round(item.system.niveau / 2);
|
||||||
|
magie.rangGenericName = game.system.lesheritiers.config.rangName[magie.rang];
|
||||||
|
console.log("Magie", item.name, item.system.niveau, magie.rang, magie.rangGenericName)
|
||||||
|
//magie.rangSpecificName = game.system.lesheritiers.config.rangNameSpecific[item.name][magie.rangGenericName];
|
||||||
|
magie.sorts = {}
|
||||||
|
if (item.name == "Magie du Clan") {
|
||||||
|
magie.sorts = {
|
||||||
|
"soufflecombat": {
|
||||||
|
1: { nomNiveau: magie.competence.system.nomniveausouffle.soufflecombat["1"], sorts: [] },
|
||||||
|
2: { nomNiveau: magie.competence.system.nomniveausouffle.soufflecombat["2"], sorts: [] },
|
||||||
|
3: { nomNiveau: magie.competence.system.nomniveausouffle.soufflecombat["3"], sorts: [] },
|
||||||
|
4: { nomNiveau: magie.competence.system.nomniveausouffle.soufflecombat["4"], sorts: [] }
|
||||||
|
},
|
||||||
|
"soufflemouvement": {
|
||||||
|
1: { nomNiveau: magie.competence.system.nomniveausouffle.soufflemouvement["1"], sorts: [] },
|
||||||
|
2: { nomNiveau: magie.competence.system.nomniveausouffle.soufflemouvement["2"], sorts: [] },
|
||||||
|
3: { nomNiveau: magie.competence.system.nomniveausouffle.soufflemouvement["3"], sorts: [] },
|
||||||
|
4: { nomNiveau: magie.competence.system.nomniveausouffle.soufflemouvement["4"], sorts: [] }
|
||||||
|
},
|
||||||
|
"souffleesprit": {
|
||||||
|
1: { nomNiveau: magie.competence.system.nomniveausouffle.souffleesprit["1"], sorts: [] },
|
||||||
|
2: { nomNiveau: magie.competence.system.nomniveausouffle.souffleesprit["2"], sorts: [] },
|
||||||
|
3: { nomNiveau: magie.competence.system.nomniveausouffle.souffleesprit["3"], sorts: [] },
|
||||||
|
4: { nomNiveau: magie.competence.system.nomniveausouffle.souffleesprit["4"], sorts: [] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (let sort of this.items) {
|
||||||
|
if (sort.type == "sort" && sort.system.competence == item.name) {
|
||||||
|
let sortObj = foundry.utils.duplicate(sort)
|
||||||
|
sortObj.sdValue = HeritiersUtility.getSDSortValue(Number(sort.system.niveau))
|
||||||
|
if (!magie.sorts[sort.system?.souffle]) {
|
||||||
|
console.warn("Sort with unknown souffle ", sort.system.souffle, sort)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
magie.sorts[sort.system.souffle][Number(sort.system.niveau)].sorts.push(sortObj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
magie.sorts = {
|
||||||
|
1: { nomNiveau: magie.competence.system.nomniveau["1"], sorts: [] },
|
||||||
|
2: { nomNiveau: magie.competence.system.nomniveau["2"], sorts: [] },
|
||||||
|
3: { nomNiveau: magie.competence.system.nomniveau["3"], sorts: [] },
|
||||||
|
4: { nomNiveau: magie.competence.system.nomniveau["4"], sorts: [] }
|
||||||
|
}
|
||||||
|
for (let sort of this.items) {
|
||||||
|
if (sort.type == "sort" && sort.system.competence == item.name) {
|
||||||
|
let sortObj = foundry.utils.duplicate(sort)
|
||||||
|
sortObj.sdValue = HeritiersUtility.getSDSortValue(Number(sort.system.niveau))
|
||||||
|
magie.sorts[Number(sort.system.niveau)].sorts.push(sortObj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
magieList.push(magie)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return magieList
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getSkills() {
|
getSkills() {
|
||||||
@@ -171,6 +250,28 @@ export class HeritiersActor extends Actor {
|
|||||||
item.specList = specList.toString()
|
item.specList = specList.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
organizeMagicSkills() {
|
||||||
|
let comp = {}
|
||||||
|
for (let key in game.system.lesheritiers.config.competenceProfil) {
|
||||||
|
if (game.system.lesheritiers.config.competenceProfil[key].kind == "magical")
|
||||||
|
comp[key] = { skills: [], niveau: 0 }
|
||||||
|
}
|
||||||
|
for (let item of this.items) {
|
||||||
|
if (item.type == "competence") {
|
||||||
|
if (item.system.categorie == "utile" && comp[item.system.profil]) {
|
||||||
|
this.prepareUtileSkill(item)
|
||||||
|
comp[item.system.profil].skills.push(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let key in comp) {
|
||||||
|
HeritiersUtility.sortArrayObjectsByName(comp[key].skills)
|
||||||
|
}
|
||||||
|
return Object.fromEntries(Object.entries(comp).sort())
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
organizeUtileSkills(kind = "mental") {
|
organizeUtileSkills(kind = "mental") {
|
||||||
let comp = {}
|
let comp = {}
|
||||||
@@ -192,6 +293,7 @@ export class HeritiersActor extends Actor {
|
|||||||
}
|
}
|
||||||
return Object.fromEntries(Object.entries(comp).sort())
|
return Object.fromEntries(Object.entries(comp).sort())
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
organizeContacts() {
|
organizeContacts() {
|
||||||
let contactList = {}
|
let contactList = {}
|
||||||
@@ -258,12 +360,37 @@ export class HeritiersActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async prepareData() {
|
async prepareData() {
|
||||||
super.prepareData();
|
|
||||||
|
|
||||||
let pvMax = (this.system.caracteristiques.con.rang * 3) + 9 + this.system.pv.mod
|
let pvMax = (this.system.caracteristiques.con.rang * 3) + 9 + this.system.pv.mod
|
||||||
if (this.system.pv.max != pvMax) {
|
if (this.system.pv.max != pvMax) {
|
||||||
this.update({ 'system.pv.max': pvMax })
|
this.update({ 'system.pv.max': pvMax })
|
||||||
}
|
}
|
||||||
|
if (this.system.biodata.magie || this.type == "pnj") {
|
||||||
|
let pointsAmes = this.system.caracteristiques.esp.rang + this.system.caracteristiques.san.rang + this.getMaxRangMagie()
|
||||||
|
if (this.system.magie.pointsame.max != pointsAmes) {
|
||||||
|
this.update({ 'system.magie.pointsame.max': pointsAmes })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
super.prepareData();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getMaxRangMagie() {
|
||||||
|
let niv = 0
|
||||||
|
let bestMagie
|
||||||
|
for (let comp of this.items) {
|
||||||
|
if (comp.type == "competence" && comp.system.profil == "magie") {
|
||||||
|
if (comp.system.niveau > niv) {
|
||||||
|
bestMagie = comp
|
||||||
|
niv = comp.system.niveau
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bestMagie) {
|
||||||
|
return Math.round(bestMagie.system.niveau / 2)
|
||||||
|
}
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -397,6 +524,7 @@ export class HeritiersActor extends Actor {
|
|||||||
adversite[adv] = Math.max(adversite[adv], 0)
|
adversite[adv] = Math.max(adversite[adv], 0)
|
||||||
this.update({ 'system.adversite': adversite })
|
this.update({ 'system.adversite': adversite })
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async incDecQuantity(objetId, incDec = 0) {
|
async incDecQuantity(objetId, incDec = 0) {
|
||||||
let objetQ = this.items.get(objetId)
|
let objetQ = this.items.get(objetId)
|
||||||
@@ -627,6 +755,80 @@ export class HeritiersActor extends Actor {
|
|||||||
rollDialog.render(true)
|
rollDialog.render(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
inDecCarac(key, incDec) {
|
||||||
|
let carac = this.system.caracteristiques[key]
|
||||||
|
carac.value += incDec
|
||||||
|
if (carac.value < 0 || carac.value > carac.rang) {
|
||||||
|
ui.notifications.warn("Pas assez de points dans cette caractéristique ou rang max atteint !")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
carac.value = Math.max(carac.value, 0)
|
||||||
|
carac.value = Math.min(carac.value, carac.rang)
|
||||||
|
this.update({ [`system.caracteristiques.${key}`]: carac })
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollSort(sortId) {
|
||||||
|
let sort = this.items.get(sortId)
|
||||||
|
let comp = this.items.find(it => it.type == "competence" && it.name.toLowerCase() == sort.system.competence.toLowerCase())
|
||||||
|
if (!comp) {
|
||||||
|
ui.notifications.warn("Compétence de magie associée non trouvée !")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (sort.system.informatif) {
|
||||||
|
if (sort.system.texteinformatif) {
|
||||||
|
let chatData = { user: game.user.id, speaker: { actor: this, alias: this.name }, content: `<div class="heritiers-informatif-sort"><h4>Sort informatif !</h4>${sort.system.texteinformatif}</div>` }
|
||||||
|
ChatMessage.create(chatData)
|
||||||
|
} else {
|
||||||
|
ui.notifications.info("Ce sort est uniquement informatif et ne peut pas être lancé.")
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let rollData = this.getCommonRollData(comp.id)
|
||||||
|
rollData.mode = "sort"
|
||||||
|
rollData.sort = foundry.utils.duplicate(sort)
|
||||||
|
rollData.sdValue = HeritiersUtility.getSDSortValue(Number(sort.system.niveau))
|
||||||
|
if (Number(sort.system.sdspecial) && Number(sort.system.sdspecial) > 0) {
|
||||||
|
rollData.sdValue = Number(sort.system.sdspecial)
|
||||||
|
}
|
||||||
|
rollData.sortPointsAme = Number(sort.system.niveau)
|
||||||
|
rollData.totalEsprit = 1
|
||||||
|
if (sort.system.competence == "Grand Langage") {
|
||||||
|
rollData.sortPointsAme *= 2
|
||||||
|
rollData.totalEsprit = Math.floor((rollData.sortPointsAme) / 3)
|
||||||
|
}
|
||||||
|
if (rollData.sortPointsAme > this.system.magie.pointsame.value) {
|
||||||
|
// Vérifier si au moins 1 point d'Esprit est disponible
|
||||||
|
if (this.system.caracteristiques.esp.value <= rollData.totalEsprit) {
|
||||||
|
ui.notifications.warn(`Pas assez de Points d'Esprit ni de Points d'Ame pour lancer ce sort (requis: ${rollData.totalEsprit}, disponible: ${this.system.caracteristiques.esp.value})`)
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
rollData.spendEsprit = true
|
||||||
|
ui.notifications.warn(`Vous n'avez pas assez de Points d'Ame pour lancer ce sort (requis: ${rollData.sortPointsAme}, disponible: ${this.system.magie.pointsame.value}).`)
|
||||||
|
ui.notifications.warn(`${rollData.totalEsprit} Points d'Esprit seront utilisés à la place si vous effectuez le lancer.`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sort.system.carac2 != "none") {
|
||||||
|
// get the best carac between carac1 and carac2
|
||||||
|
if (this.system.caracteristiques[sort.system.carac1].value > this.system.caracteristiques[sort.system.carac2].value) {
|
||||||
|
rollData.caracKey = sort.system.carac1
|
||||||
|
} else {
|
||||||
|
rollData.caracKey = sort.system.carac2
|
||||||
|
}
|
||||||
|
rollData.caracMessage = "Ce sort peut être lancé avec " + game.system.lesheritiers.config.caracList[sort.system.carac1] + " ou " + game.system.lesheritiers.config.caracList[sort.system.carac2] + ". La meilleure caractéristique a été selectionnée."
|
||||||
|
} else {
|
||||||
|
rollData.caracKey = sort.system.carac1
|
||||||
|
}
|
||||||
|
console.log("RollData", rollData)
|
||||||
|
let rollDialog = await HeritiersRollDialog.create(this, rollData)
|
||||||
|
rollDialog.render(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollAttaqueArme(armeId) {
|
async rollAttaqueArme(armeId) {
|
||||||
let arme = this.items.get(armeId)
|
let arme = this.items.get(armeId)
|
||||||
@@ -727,7 +929,7 @@ export class HeritiersActor extends Actor {
|
|||||||
callback: () => {
|
callback: () => {
|
||||||
rollData.pouvoirPointsUsage = 1;
|
rollData.pouvoirPointsUsage = 1;
|
||||||
HeritiersUtility.rollHeritiers(rollData);
|
HeritiersUtility.rollHeritiers(rollData);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
two: {
|
two: {
|
||||||
icon: '<i class="fas fa-check"></i>',
|
icon: '<i class="fas fa-check"></i>',
|
||||||
@@ -735,7 +937,7 @@ export class HeritiersActor extends Actor {
|
|||||||
callback: () => {
|
callback: () => {
|
||||||
rollData.pouvoirPointsUsage = 2;
|
rollData.pouvoirPointsUsage = 2;
|
||||||
HeritiersUtility.rollHeritiers(rollData);
|
HeritiersUtility.rollHeritiers(rollData);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
three: {
|
three: {
|
||||||
icon: '<i class="fas fa-check"></i>',
|
icon: '<i class="fas fa-check"></i>',
|
||||||
@@ -743,7 +945,7 @@ export class HeritiersActor extends Actor {
|
|||||||
callback: () => {
|
callback: () => {
|
||||||
rollData.pouvoirPointsUsage = 3;
|
rollData.pouvoirPointsUsage = 3;
|
||||||
HeritiersUtility.rollHeritiers(rollData);
|
HeritiersUtility.rollHeritiers(rollData);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
four: {
|
four: {
|
||||||
icon: '<i class="fas fa-check"></i>',
|
icon: '<i class="fas fa-check"></i>',
|
||||||
@@ -751,13 +953,13 @@ export class HeritiersActor extends Actor {
|
|||||||
callback: () => {
|
callback: () => {
|
||||||
rollData.pouvoirPointsUsage = 4;
|
rollData.pouvoirPointsUsage = 4;
|
||||||
HeritiersUtility.rollHeritiers(rollData);
|
HeritiersUtility.rollHeritiers(rollData);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
close: {
|
close: {
|
||||||
icon: '<i class="fas fa-times"></i>',
|
icon: '<i class="fas fa-times"></i>',
|
||||||
label: "Annuler",
|
label: "Annuler",
|
||||||
callback: () => {
|
callback: () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
default: "one",
|
default: "one",
|
||||||
@@ -766,7 +968,7 @@ export class HeritiersActor extends Actor {
|
|||||||
});
|
});
|
||||||
d.render(true);
|
d.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollPouvoir(pouvoirId) {
|
async rollPouvoir(pouvoirId) {
|
||||||
let pouvoir = this.items.get(pouvoirId)
|
let pouvoir = this.items.get(pouvoirId)
|
||||||
@@ -777,24 +979,50 @@ export class HeritiersActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let rollData = this.getCommonRollData(undefined, undefined)
|
let rollData = this.getCommonRollData(undefined, undefined)
|
||||||
if (pouvoir.system.feeriemasque != "autre") {
|
|
||||||
rollData.pouvoirBase = foundry.utils.duplicate(this.system.rang[pouvoir.system.feeriemasque.toLowerCase()])
|
|
||||||
rollData.pouvoirBase.label = "Féerie"
|
|
||||||
if (!pouvoir.system.carac) {
|
|
||||||
ui.notifications.warn("Le pouvoir actif " + pouvoir.name + " n'a pas de caractéristique associée")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
rollData.carac = foundry.utils.duplicate(this.system.caracteristiques[pouvoir.system.carac])
|
|
||||||
rollData.caracKey = pouvoir.system.carac
|
|
||||||
}
|
|
||||||
rollData.pouvoirMaxUsage = this.getPouvoirUsageMax(pouvoir)
|
rollData.pouvoirMaxUsage = this.getPouvoirUsageMax(pouvoir)
|
||||||
rollData.pouvoir = foundry.utils.duplicate(pouvoir)
|
rollData.pouvoir = foundry.utils.duplicate(pouvoir)
|
||||||
rollData.mode = "pouvoir"
|
rollData.mode = "pouvoir"
|
||||||
|
|
||||||
|
if (pouvoir.system.feeriemasque != "autre") {
|
||||||
|
rollData.pouvoirBase = foundry.utils.duplicate(this.system.rang[pouvoir.system.feeriemasque.toLowerCase()])
|
||||||
|
rollData.pouvoirBase.label = "Féerie"
|
||||||
|
if (pouvoir.system.istest && !pouvoir.system.carac) {
|
||||||
|
ui.notifications.warn("Le pouvoir actif " + pouvoir.name + " n'a pas de caractéristique associée")
|
||||||
|
}
|
||||||
|
if (pouvoir.system.istest) {
|
||||||
|
rollData.carac = foundry.utils.duplicate(this.system.caracteristiques[pouvoir.system.carac])
|
||||||
|
rollData.caracKey = pouvoir.system.carac
|
||||||
|
} else {
|
||||||
|
rollData.noRoll = true
|
||||||
|
HeritiersUtility.rollHeritiers(rollData);
|
||||||
|
return;
|
||||||
|
//this.incDecPointsUsage(pouvoir.id, -rollData.pouvoirPointsUsage)
|
||||||
|
//ui.notifications.warn("Le pouvoir actif " + pouvoir.name + " a été utilisé, dépense de " + pouvoirPointsUsage + " points d'usage")
|
||||||
|
}
|
||||||
|
}
|
||||||
let rollDialog = await HeritiersRollDialog.create(this, rollData)
|
let rollDialog = await HeritiersRollDialog.create(this, rollData)
|
||||||
rollDialog.render(true)
|
rollDialog.render(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
incDecPointsAme(value) {
|
||||||
|
let newValue = this.system.magie.pointsame.value + value
|
||||||
|
newValue = Math.max(newValue, 0)
|
||||||
|
newValue = Math.min(newValue, this.system.magie.pointsame.max)
|
||||||
|
this.update({ 'system.magie.pointsame.value': newValue })
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
incDecPV(value) {
|
||||||
|
let newValue = this.system.pv.value + value
|
||||||
|
newValue = Math.max(newValue, 0)
|
||||||
|
newValue = Math.min(newValue, this.system.pv.max)
|
||||||
|
this.update({ 'system.pv.value': newValue })
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
incDecPointsUsage(pouvoirId, value) {
|
incDecPointsUsage(pouvoirId, value) {
|
||||||
let pouvoir = this.items.get(pouvoirId)
|
let pouvoir = this.items.get(pouvoirId)
|
||||||
|
|||||||
+108
-36
@@ -12,25 +12,26 @@ export const HERITIERS_CONFIG = {
|
|||||||
"san": "Sang-Froid"
|
"san": "Sang-Froid"
|
||||||
},
|
},
|
||||||
|
|
||||||
competenceCategorie : {
|
competenceCategorie: {
|
||||||
"utile": "Utile",
|
"utile": "Utile",
|
||||||
"futile": "Futile"
|
"futile": "Futile"
|
||||||
},
|
},
|
||||||
|
|
||||||
contactType: {
|
contactType: {
|
||||||
contact: "Contact",
|
contact: "Contact",
|
||||||
allie: "Allié",
|
allie: "Allié",
|
||||||
ennemi: "Ennemi",
|
ennemi: "Ennemi",
|
||||||
interet: "Personne d'interêt"
|
interet: "Personne d'interêt"
|
||||||
},
|
},
|
||||||
|
|
||||||
competenceProfil : {
|
competenceProfil: {
|
||||||
"aventurier": {kind: "physical", name: "Aventurier"},
|
"aventurier": { kind: "physical", name: "Aventurier" },
|
||||||
"roublard": {kind: "physical",name: "Roublard"},
|
"roublard": { kind: "physical", name: "Roublard" },
|
||||||
"combattant": {kind: "physical",name:"Combattant"},
|
"combattant": { kind: "physical", name: "Combattant" },
|
||||||
"erudit": {kind: "mental",name:"Erudit"},
|
"erudit": { kind: "mental", name: "Erudit" },
|
||||||
"savant": {kind: "mental",name:"Savant"},
|
"savant": { kind: "mental", name: "Savant" },
|
||||||
"gentleman": {kind: "mental",name:"Gentleman"}
|
"gentleman": { kind: "mental", name: "Gentleman" },
|
||||||
|
"magie": { kind: "magical", name: "Magie" },
|
||||||
},
|
},
|
||||||
baseTestPouvoir: {
|
baseTestPouvoir: {
|
||||||
"feerie": "Féerie",
|
"feerie": "Féerie",
|
||||||
@@ -52,7 +53,7 @@ export const HERITIERS_CONFIG = {
|
|||||||
},
|
},
|
||||||
statutMasque: {
|
statutMasque: {
|
||||||
"masque": "Masqué",
|
"masque": "Masqué",
|
||||||
"demasque":"Démasqué"
|
"demasque": "Démasqué"
|
||||||
},
|
},
|
||||||
niveauPouvoir: {
|
niveauPouvoir: {
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
@@ -99,8 +100,8 @@ export const HERITIERS_CONFIG = {
|
|||||||
"main": "Main",
|
"main": "Main",
|
||||||
"tete": "Tête/Coeur"
|
"tete": "Tête/Coeur"
|
||||||
},
|
},
|
||||||
|
|
||||||
categorieArme : {
|
categorieArme: {
|
||||||
"trait": "Arme de trait",
|
"trait": "Arme de trait",
|
||||||
"poing": "Arme de poing",
|
"poing": "Arme de poing",
|
||||||
"epaule": "Arme d'épaule",
|
"epaule": "Arme d'épaule",
|
||||||
@@ -108,7 +109,7 @@ export const HERITIERS_CONFIG = {
|
|||||||
"blanche": "Arme blanche",
|
"blanche": "Arme blanche",
|
||||||
"improvise": "Arme improvisée",
|
"improvise": "Arme improvisée",
|
||||||
"explosif": "Explosif"
|
"explosif": "Explosif"
|
||||||
},
|
},
|
||||||
typeArme: {
|
typeArme: {
|
||||||
"naturelle": "Arme naturelle",
|
"naturelle": "Arme naturelle",
|
||||||
"trait": "Trait",
|
"trait": "Trait",
|
||||||
@@ -130,13 +131,13 @@ export const HERITIERS_CONFIG = {
|
|||||||
"controlee": "Contrôlée (C)",
|
"controlee": "Contrôlée (C)",
|
||||||
"prohibee": "Prohibée (P)"
|
"prohibee": "Prohibée (P)"
|
||||||
},
|
},
|
||||||
armeDissimulation :{
|
armeDissimulation: {
|
||||||
"tresfacile": "Très facile (TF)",
|
"tresfacile": "Très facile (TF)",
|
||||||
"facile": "Facile (F)",
|
"facile": "Facile (F)",
|
||||||
"difficile": "Difficile (D)",
|
"difficile": "Difficile (D)",
|
||||||
"impossible": "Impossible (I)"
|
"impossible": "Impossible (I)"
|
||||||
},
|
},
|
||||||
typeProtection : {
|
typeProtection: {
|
||||||
"balle": "Protège ds balles",
|
"balle": "Protège ds balles",
|
||||||
"melee": "Protège en mélée",
|
"melee": "Protège en mélée",
|
||||||
"tout": "Tout type de dégats"
|
"tout": "Tout type de dégats"
|
||||||
@@ -145,7 +146,7 @@ export const HERITIERS_CONFIG = {
|
|||||||
"traditionnelle": "Traditionnelle",
|
"traditionnelle": "Traditionnelle",
|
||||||
"moderne": "Moderne",
|
"moderne": "Moderne",
|
||||||
"orientale": "Orientale"
|
"orientale": "Orientale"
|
||||||
},
|
},
|
||||||
typeContact: {
|
typeContact: {
|
||||||
"contact": "Contact",
|
"contact": "Contact",
|
||||||
"allie": "Allié",
|
"allie": "Allié",
|
||||||
@@ -163,36 +164,51 @@ export const HERITIERS_CONFIG = {
|
|||||||
"3": "3",
|
"3": "3",
|
||||||
"4": "4",
|
"4": "4",
|
||||||
},
|
},
|
||||||
attaquePlusieursList : {
|
attaquePlusieursList: {
|
||||||
"0": "0",
|
"0": "0",
|
||||||
"1": "+1",
|
"1": "+1",
|
||||||
"2": "+2",
|
"2": "+2",
|
||||||
},
|
},
|
||||||
attaque2ArmesListe: [
|
attaque2ArmesListe: [
|
||||||
{value: "0", label: "Aucun"},
|
{ value: "0", label: "Aucun" },
|
||||||
{value: "-4", label: "Deux armes à 1 main"},
|
{ value: "-4", label: "Deux armes à 1 main" },
|
||||||
{value: "-2", label: "Deux armes naturelles"},
|
{ value: "-2", label: "Deux armes naturelles" },
|
||||||
{value: "-2", label: "Avec spécialisation \"Mauvaise Main\""}
|
{ value: "-2", label: "Avec spécialisation \"Mauvaise Main\"" }
|
||||||
],
|
],
|
||||||
typeProfil: {
|
typeProfil: {
|
||||||
"mineur": "Mineur",
|
"mineur": "Mineur",
|
||||||
"majeur": "Majeur",
|
"majeur": "Majeur",
|
||||||
},
|
},
|
||||||
bonusMalusContext: [
|
bonusMalusContext: [
|
||||||
{value: "-6", label: "-6"},
|
{ value: "-6", label: "-6" },
|
||||||
{value: "-5", label: "-5"},
|
{ value: "-5", label: "-5" },
|
||||||
{value: "-4", label: "-4"},
|
{ value: "-4", label: "-4" },
|
||||||
{value: "-3", label: "-3"},
|
{ value: "-3", label: "-3" },
|
||||||
{value: "-2", label: "-2"},
|
{ value: "-2", label: "-2" },
|
||||||
{value: "-1", label: "-1"},
|
{ value: "-1", label: "-1" },
|
||||||
{value: "0", label: "0"},
|
{ value: "0", label: "0" },
|
||||||
{value: "1", label: "+1"},
|
{ value: "1", label: "+1" },
|
||||||
{value: "2", label: "+2"},
|
{ value: "2", label: "+2" },
|
||||||
{value: "3", label: "+3"},
|
{ value: "3", label: "+3" },
|
||||||
{value: "4", label: "+4"},
|
{ value: "4", label: "+4" },
|
||||||
{value: "5", label: "+5"},
|
{ value: "5", label: "+5" },
|
||||||
{value: "6", label: "+6"}
|
{ value: "6", label: "+6" }
|
||||||
],
|
],
|
||||||
|
listNiveauSort: {
|
||||||
|
"1": "1",
|
||||||
|
"2": "2",
|
||||||
|
"3": "3",
|
||||||
|
"4": "4"
|
||||||
|
},
|
||||||
|
listRangSort: {
|
||||||
|
"1": "1",
|
||||||
|
"2": "2",
|
||||||
|
"3": "3",
|
||||||
|
"4": "4",
|
||||||
|
"5": "5",
|
||||||
|
"6": "6",
|
||||||
|
"7": "7"
|
||||||
|
},
|
||||||
listNiveau: {
|
listNiveau: {
|
||||||
"0": "0",
|
"0": "0",
|
||||||
"1": "1",
|
"1": "1",
|
||||||
@@ -206,5 +222,61 @@ export const HERITIERS_CONFIG = {
|
|||||||
"9": "9",
|
"9": "9",
|
||||||
"10": "10"
|
"10": "10"
|
||||||
},
|
},
|
||||||
|
rangName: [
|
||||||
|
"Novice",
|
||||||
|
"Novice",
|
||||||
|
"Adepte",
|
||||||
|
"Maître",
|
||||||
|
"Grand Maître"
|
||||||
|
],
|
||||||
|
rangNameSpecific: {
|
||||||
|
"Druidisme": {
|
||||||
|
"Novice": "Eubage",
|
||||||
|
"Adepte": "Saronide",
|
||||||
|
"Maître": "Ovate",
|
||||||
|
"Grand Maître": "Archidruide"
|
||||||
|
},
|
||||||
|
"Faëomancie": {
|
||||||
|
"Novice": "Marmiton",
|
||||||
|
"Adepte": "Queux",
|
||||||
|
"Maître": "Chef",
|
||||||
|
"Grand Maître": "Maître-queux"
|
||||||
|
},
|
||||||
|
"Nécromancie": {
|
||||||
|
"Novice": "Inexpertus",
|
||||||
|
"Adepte": "Discipulus",
|
||||||
|
"Maître": "Dominus",
|
||||||
|
"Grand Maître": "Magister"
|
||||||
|
},
|
||||||
|
"Necromancie": {
|
||||||
|
"Novice": "Inexpertus",
|
||||||
|
"Adepte": "Discipulus",
|
||||||
|
"Maître": "Dominus",
|
||||||
|
"Grand Maître": "Magister"
|
||||||
|
},
|
||||||
|
"Magie du Clan": {
|
||||||
|
"Novice": "Apprenti",
|
||||||
|
"Adepte": "Disciple",
|
||||||
|
"Maître": "Maître",
|
||||||
|
"Grand Maître": "Éminence"
|
||||||
|
},
|
||||||
|
"Théurgie": {
|
||||||
|
"Novice": "Frère",
|
||||||
|
"Adepte": "Père",
|
||||||
|
"Maître": "Saint",
|
||||||
|
"Grand Maître": "Apôtre"
|
||||||
|
},
|
||||||
|
"Grand Langage": {
|
||||||
|
"Novice": "Éveillé",
|
||||||
|
"Adepte": "Initié",
|
||||||
|
"Maître": "Sage",
|
||||||
|
"Grand Maître": "Docteur"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
soufflesMagieDuClan: {
|
||||||
|
"soufflecombat": "Souffle du Combat",
|
||||||
|
"soufflemouvement": "Souffle du Mouvement",
|
||||||
|
"souffleesprit": "Souffle de l'Esprit"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,7 @@ import { HeritiersUtility } from "./heritiers-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 HeritiersItemSheet extends ItemSheet {
|
export class HeritiersItemSheet extends foundry.appv1.sheets.ItemSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
@@ -15,7 +15,7 @@ export class HeritiersItemSheet extends ItemSheet {
|
|||||||
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
||||||
width: 620,
|
width: 620,
|
||||||
height: 550,
|
height: 550,
|
||||||
tabs: [{navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description"}]
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,9 +61,9 @@ export class HeritiersItemSheet extends ItemSheet {
|
|||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
config: game.system.lesheritiers.config,
|
config: game.system.lesheritiers.config,
|
||||||
isArmeMelee: HeritiersUtility.isArmeMelee(this.object),
|
isArmeMelee: HeritiersUtility.isArmeMelee(this.object),
|
||||||
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
description: await foundry.applications.ux.TextEditor.implementation.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,
|
||||||
usageMax: -1
|
usageMax: -1
|
||||||
@@ -76,6 +76,10 @@ export class HeritiersItemSheet extends ItemSheet {
|
|||||||
this.object.system.pointsusagecourant = formData.usageMax
|
this.object.system.pointsusagecourant = formData.usageMax
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (this.object.type == 'sort') {
|
||||||
|
formData.competencesMagie = HeritiersUtility.getCompetencesMagie()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//this.options.editable = !(this.object.origin == "embeddedItem");
|
//this.options.editable = !(this.object.origin == "embeddedItem");
|
||||||
console.log("ITEM DATA", formData, this);
|
console.log("ITEM DATA", formData, this);
|
||||||
@@ -139,15 +143,15 @@ export class HeritiersItemSheet extends ItemSheet {
|
|||||||
|
|
||||||
html.find('#add-specialite').click(ev => {
|
html.find('#add-specialite').click(ev => {
|
||||||
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
||||||
spec.push( { name: "Nouvelle Spécialité", id: foundry.utils.randomID(16), used: false })
|
spec.push({ name: "Nouvelle Spécialité", id: foundry.utils.randomID(16), used: false })
|
||||||
this.object.update( { 'system.specialites': spec })
|
this.object.update({ 'system.specialites': spec })
|
||||||
})
|
})
|
||||||
html.find('.delete-specialite').click(ev => {
|
html.find('.delete-specialite').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".specialite-item")
|
const li = $(ev.currentTarget).parents(".specialite-item")
|
||||||
let index = li.data("specialite-index")
|
let index = li.data("specialite-index")
|
||||||
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
||||||
spec.splice(index,1)
|
spec.splice(index, 1)
|
||||||
this.object.update( { 'system.specialites': spec })
|
this.object.update({ 'system.specialites': spec })
|
||||||
})
|
})
|
||||||
html.find('.edit-specialite').change(ev => {
|
html.find('.edit-specialite').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".specialite-item")
|
const li = $(ev.currentTarget).parents(".specialite-item")
|
||||||
@@ -155,7 +159,7 @@ export class HeritiersItemSheet extends ItemSheet {
|
|||||||
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
||||||
spec[index].name = ev.currentTarget.value
|
spec[index].name = ev.currentTarget.value
|
||||||
spec[index].id = spec[index].id || foundry.utils.randomID(16)
|
spec[index].id = spec[index].id || foundry.utils.randomID(16)
|
||||||
this.object.update( { 'system.specialites': spec })
|
this.object.update({ 'system.specialites': spec })
|
||||||
})
|
})
|
||||||
html.find('.edit-specialite-description').change(ev => {
|
html.find('.edit-specialite-description').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".specialite-item")
|
const li = $(ev.currentTarget).parents(".specialite-item")
|
||||||
@@ -163,20 +167,20 @@ export class HeritiersItemSheet extends ItemSheet {
|
|||||||
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
||||||
spec[index].description = ev.currentTarget.value
|
spec[index].description = ev.currentTarget.value
|
||||||
spec[index].id = spec[index].id || foundry.utils.randomID(16)
|
spec[index].id = spec[index].id || foundry.utils.randomID(16)
|
||||||
this.object.update( { 'system.specialites': spec })
|
this.object.update({ 'system.specialites': spec })
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find('#add-automation').click(ev => {
|
html.find('#add-automation').click(ev => {
|
||||||
let autom = foundry.utils.duplicate(this.object.system.automations)
|
let autom = foundry.utils.duplicate(this.object.system.automations)
|
||||||
autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: foundry.utils.randomID(16) })
|
autom.push({ eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: foundry.utils.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 = foundry.utils.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")
|
||||||
@@ -184,9 +188,9 @@ export class HeritiersItemSheet extends ItemSheet {
|
|||||||
let auto = foundry.utils.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 || foundry.utils.randomID(16)
|
auto[index].id = auto[index].id || foundry.utils.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 @@ export const defaultItemImg = {
|
|||||||
fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp",
|
fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp",
|
||||||
profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp",
|
profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp",
|
||||||
equipement: "systems/fvtt-les-heritiers/assets/icons/equipement.webp",
|
equipement: "systems/fvtt-les-heritiers/assets/icons/equipement.webp",
|
||||||
|
sort: "systems/fvtt-les-heritiers/assets/icons/sort.webp",
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+10
-11
@@ -30,7 +30,7 @@ Hooks.once("init", async function () {
|
|||||||
HeritiersUtility.preloadHandlebarsTemplates()
|
HeritiersUtility.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
|
||||||
@@ -55,12 +55,12 @@ Hooks.once("init", async function () {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Register sheet application classes
|
// Register sheet application classes
|
||||||
Actors.unregisterSheet("core", ActorSheet);
|
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||||
Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
|
||||||
Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
|
||||||
|
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
||||||
Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
|
||||||
|
|
||||||
HeritiersUtility.init()
|
HeritiersUtility.init()
|
||||||
|
|
||||||
@@ -106,13 +106,13 @@ Hooks.once("ready", function () {
|
|||||||
user: game.user._id
|
user: game.user._id
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter => {
|
||||||
console.log("ClassCounter loaded", moduleCounter)
|
console.log("ClassCounter loaded", moduleCounter)
|
||||||
moduleCounter.ClassCounter.registerUsageCount()
|
moduleCounter.ClassCounter.registerUsageCount()
|
||||||
}).catch(err=>
|
}).catch(err =>
|
||||||
console.log("No stats available, giving up.")
|
console.log("No stats available, giving up.")
|
||||||
)
|
)
|
||||||
welcomeMessage();
|
welcomeMessage();
|
||||||
importDefaultScene();
|
importDefaultScene();
|
||||||
|
|
||||||
@@ -131,4 +131,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export class HeritiersRollDialog extends Dialog {
|
|||||||
static async create(actor, rollData) {
|
static async create(actor, rollData) {
|
||||||
|
|
||||||
let options = { classes: ["HeritiersDialog"], width: 420, height: 'fit-content', 'z-index': 99999 };
|
let options = { classes: ["HeritiersDialog"], width: 420, height: 'fit-content', 'z-index': 99999 };
|
||||||
let html = await renderTemplate('systems/fvtt-les-heritiers/templates/roll-dialog-generic.html', rollData);
|
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-les-heritiers/templates/roll-dialog-generic.html', rollData);
|
||||||
|
|
||||||
return new HeritiersRollDialog(actor, rollData, html, options);
|
return new HeritiersRollDialog(actor, rollData, html, options);
|
||||||
}
|
}
|
||||||
@@ -109,7 +109,6 @@ export class HeritiersRollDialog extends Dialog {
|
|||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
|
|
||||||
var dialog = this;
|
|
||||||
function onLoad() {
|
function onLoad() {
|
||||||
}
|
}
|
||||||
$(function () { onLoad(); });
|
$(function () { onLoad(); });
|
||||||
@@ -142,6 +141,6 @@ export class HeritiersRollDialog extends Dialog {
|
|||||||
html.find('#attaque-cible').change((event) => {
|
html.find('#attaque-cible').change((event) => {
|
||||||
this.rollData.attaqueCible = String(event.currentTarget.value)
|
this.rollData.attaqueCible = String(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+116
-41
@@ -26,7 +26,7 @@ const __facesAdjacentes = {
|
|||||||
10: [8, 4, 3, 7]
|
10: [8, 4, 3, 7]
|
||||||
},
|
},
|
||||||
"d12": {
|
"d12": {
|
||||||
1:[2, 3, 4, 5, 6],
|
1: [2, 3, 4, 5, 6],
|
||||||
2: [1, 6, 8, 12, 3],
|
2: [1, 6, 8, 12, 3],
|
||||||
3: [1, 4, 11, 12, 2],
|
3: [1, 4, 11, 12, 2],
|
||||||
4: [1, 5, 10, 11, 3],
|
4: [1, 5, 10, 11, 3],
|
||||||
@@ -48,7 +48,7 @@ export class HeritiersUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async init() {
|
static async init() {
|
||||||
Hooks.on('renderChatLog', (log, html, data) => HeritiersUtility.chatListeners(html))
|
Hooks.on('renderChatLog', (log, html, data) => HeritiersUtility.chatListeners(html))
|
||||||
Hooks.on("getChatLogEntryContext", (html, options) => HeritiersUtility.chatRollMenu(html, options))
|
/* Unused for Heitiers : Hooks.on("getChatMessageContextOptions", (html, options) => HeritiersUtility.chatRollMenu(html, options))*/
|
||||||
|
|
||||||
this.rollDataStore = {}
|
this.rollDataStore = {}
|
||||||
this.defenderStore = {}
|
this.defenderStore = {}
|
||||||
@@ -104,6 +104,8 @@ export class HeritiersUtility {
|
|||||||
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
|
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
|
||||||
this.skills = skills.map(i => i.toObject())
|
this.skills = skills.map(i => i.toObject())
|
||||||
|
|
||||||
|
this.competencesMagie = this.skills.filter(s => s.system.profil == "magie")
|
||||||
|
|
||||||
game.settings.register("fvtt-les-heritiers", "heritiers-heritage", {
|
game.settings.register("fvtt-les-heritiers", "heritiers-heritage", {
|
||||||
name: "Points d'héritage",
|
name: "Points d'héritage",
|
||||||
hint: "Points d'héritage du groupe",
|
hint: "Points d'héritage du groupe",
|
||||||
@@ -114,6 +116,32 @@ export class HeritiersUtility {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static getSDSortValue(niveau) {
|
||||||
|
if (niveau <= 1) return 12;
|
||||||
|
if (niveau == 2) return 14;
|
||||||
|
if (niveau == 3) return 16;
|
||||||
|
if (niveau > 3) return 18;
|
||||||
|
return 18;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static getCompetencesMagie() {
|
||||||
|
return this.competencesMagie
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static buildCompetencesMagie() {
|
||||||
|
let competences = foundry.utils.duplicate(this.getCompetencesMagie())
|
||||||
|
for (let comp of competences) {
|
||||||
|
// Calcul du rang
|
||||||
|
let rang = Math.round(comp.system.niveau / 2);
|
||||||
|
competences.system.rang = rang;
|
||||||
|
competences.system.rangGenericName = game.system.lesheritiers.config.rangName[rang];
|
||||||
|
competences.system.rangSpecificName = game.system.lesheritiers.config.rangNameSpecific[comp.Name][competences.system.rangGenericName];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async loadCompendiumData(compendium) {
|
static async loadCompendiumData(compendium) {
|
||||||
const pack = game.packs.get(compendium);
|
const pack = game.packs.get(compendium);
|
||||||
@@ -133,7 +161,7 @@ export class HeritiersUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
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 = HeritiersUtility.findChatMessageId(event.currentTarget)
|
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
@@ -143,19 +171,19 @@ export class HeritiersUtility {
|
|||||||
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
|
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
|
||||||
HeritiersUtility.rollHeritiers(rollData)
|
HeritiersUtility.rollHeritiers(rollData)
|
||||||
})
|
})
|
||||||
|
|
||||||
html.on("click", '.roll-tricherie-2', async event => {
|
$(html).on("click", '.roll-tricherie-2', async event => {
|
||||||
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
|
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
let rollData = message.getFlag("world", "heritiers-roll")
|
let rollData = message.getFlag("world", "heritiers-roll")
|
||||||
let actor = this.getActorFromRollData(rollData)
|
let actor = this.getActorFromRollData(rollData)
|
||||||
if ( await actor.incDecTricherie(-2) ) {
|
if (await actor.incDecTricherie(-2)) {
|
||||||
rollData.forcedValue = Number($(event.currentTarget).data("dice-value"))
|
rollData.forcedValue = Number($(event.currentTarget).data("dice-value"))
|
||||||
HeritiersUtility.rollHeritiers(rollData)
|
HeritiersUtility.rollHeritiers(rollData)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
html.on("click", '.roll-chat-degat', async event => {
|
$(html).on("click", '.roll-chat-degat', async event => {
|
||||||
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
|
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
let rollData = message.getFlag("world", "heritiers-roll")
|
let rollData = message.getFlag("world", "heritiers-roll")
|
||||||
@@ -174,7 +202,7 @@ export class HeritiersUtility {
|
|||||||
'systems/fvtt-les-heritiers/templates/partial-item-nav.html',
|
'systems/fvtt-les-heritiers/templates/partial-item-nav.html',
|
||||||
'systems/fvtt-les-heritiers/templates/partial-utile-skills.html'
|
'systems/fvtt-les-heritiers/templates/partial-utile-skills.html'
|
||||||
]
|
]
|
||||||
return loadTemplates(templatePaths);
|
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -258,7 +286,7 @@ export class HeritiersUtility {
|
|||||||
static saveRollData(rollData) {
|
static saveRollData(rollData) {
|
||||||
game.socket.emit("system.fvtt-les-heritiers", {
|
game.socket.emit("system.fvtt-les-heritiers", {
|
||||||
name: "msg_update_roll", data: rollData
|
name: "msg_update_roll", data: rollData
|
||||||
}); // Notify all other clients of the roll
|
}); // Notify all other clients of the roll
|
||||||
this.updateRollData(rollData);
|
this.updateRollData(rollData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -389,7 +417,7 @@ export class HeritiersUtility {
|
|||||||
rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already
|
rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !rollData.forcedValue) {
|
if (!rollData.forcedValue) {
|
||||||
rollData.adjacentFaces = foundry.utils.duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue])
|
rollData.adjacentFaces = foundry.utils.duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -450,7 +478,7 @@ export class HeritiersUtility {
|
|||||||
this.computeArmeDegats(rollData, actor)
|
this.computeArmeDegats(rollData, actor)
|
||||||
}
|
}
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-cc-result.html`, rollData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-cc-result.html`, rollData)
|
||||||
}, rollData, "selfroll")
|
}, rollData, "selfroll")
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -462,7 +490,7 @@ export class HeritiersUtility {
|
|||||||
this.computeMarge(rollData, valeurDefense)
|
this.computeMarge(rollData, valeurDefense)
|
||||||
rollData.dureeAssommer = (rollData.marge) ? rollData.marge * 2 : 1
|
rollData.dureeAssommer = (rollData.marge) ? rollData.marge * 2 : 1
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-assommer-result.html`, rollData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-assommer-result.html`, rollData)
|
||||||
}, rollData, "selfroll")
|
}, rollData, "selfroll")
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -470,12 +498,13 @@ export class HeritiersUtility {
|
|||||||
|
|
||||||
let actor = this.getActorFromRollData(rollData)
|
let actor = this.getActorFromRollData(rollData)
|
||||||
|
|
||||||
if ( rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
|
if (rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
|
||||||
ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.")
|
ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//rollData.actionImg = "systems/fvtt-les-heritiers/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
//rollData.actionImg = "systems/fvtt-les-heritiers/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
||||||
|
if (rollData.caracKey == "pre") rollData.caracKey = "pres"; // Patch tomanage wrong carac key
|
||||||
rollData.carac = foundry.utils.duplicate(actor.system.caracteristiques[rollData.caracKey])
|
rollData.carac = foundry.utils.duplicate(actor.system.caracteristiques[rollData.caracKey])
|
||||||
|
|
||||||
if (rollData.forcedValue) {
|
if (rollData.forcedValue) {
|
||||||
@@ -485,7 +514,7 @@ export class HeritiersUtility {
|
|||||||
rollData.diceFormula = "{1d8, 1d10, 1d12}"
|
rollData.diceFormula = "{1d8, 1d10, 1d12}"
|
||||||
} else {
|
} else {
|
||||||
rollData.diceFormula = "1" + rollData.mainDice + "kh1"
|
rollData.diceFormula = "1" + rollData.mainDice + "kh1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let rangValue = 0
|
let rangValue = 0
|
||||||
@@ -534,7 +563,7 @@ export class HeritiersUtility {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !rollData.noRoll) {
|
if (!rollData.noRoll) {
|
||||||
let myRoll = await new Roll(rollData.diceFormula).roll()
|
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 = foundry.utils.duplicate(myRoll)
|
rollData.roll = foundry.utils.duplicate(myRoll)
|
||||||
@@ -551,9 +580,20 @@ export class HeritiersUtility {
|
|||||||
if (rollData.mode == "pouvoir" || rollData.mode == "pouvoirpassif") {
|
if (rollData.mode == "pouvoir" || rollData.mode == "pouvoirpassif") {
|
||||||
actor.incDecPointsUsage(rollData.pouvoir._id, -rollData.pouvoirPointsUsage)
|
actor.incDecPointsUsage(rollData.pouvoir._id, -rollData.pouvoirPointsUsage)
|
||||||
}
|
}
|
||||||
|
// Gestion sort et points d'âme
|
||||||
|
if (rollData.mode == "sort") {
|
||||||
|
if (rollData.spendEsprit) {
|
||||||
|
actor.inDecCarac("esp", -rollData.totalEsprit)
|
||||||
|
} else {
|
||||||
|
actor.incDecPointsAme(-rollData.sortPointsAme)
|
||||||
|
if (rollData.sort.system.competence == "Magie du Clan") {
|
||||||
|
actor.incDecPV(-2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
|
||||||
}, rollData)
|
}, rollData)
|
||||||
|
|
||||||
// Gestion attaque standard
|
// Gestion attaque standard
|
||||||
@@ -591,7 +631,7 @@ export class HeritiersUtility {
|
|||||||
this.computeResult(rollData)
|
this.computeResult(rollData)
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
|
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
|
||||||
}, rollData)
|
}, rollData)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -764,13 +804,13 @@ export class HeritiersUtility {
|
|||||||
static chatRollMenu(html, options) {
|
static chatRollMenu(html, options) {
|
||||||
let canApply = li => canvas.tokens.controlled.length && li.find(".heritiers-roll").length
|
let canApply = li => canvas.tokens.controlled.length && li.find(".heritiers-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", "heritiers-roll")
|
let rollData = message.getFlag("world", "heritiers-roll")
|
||||||
let actor = this.getActorFromRollData(rollData)
|
let actor = this.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", "heritiers-roll")
|
let rollData = message.getFlag("world", "heritiers-roll")
|
||||||
let actor = this.getActorFromRollData(rollData)
|
let actor = this.getActorFromRollData(rollData)
|
||||||
return (!rollData.isReroll && actor.getEclat() > 0)
|
return (!rollData.isReroll && actor.getEclat() > 0)
|
||||||
@@ -805,11 +845,11 @@ export class HeritiersUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async confirmDelete(actorSheet, li) {
|
static async confirmDelete(actorSheet, li) {
|
||||||
let itemId = li.data("item-id");
|
let itemId = li.data("item-id");
|
||||||
let msgTxt = "<p>Are you sure to remove this Item ?";
|
let msgTxt = "<p>Certain de supprimer cet item ?";
|
||||||
let buttons = {
|
let buttons = {
|
||||||
delete: {
|
delete: {
|
||||||
icon: '<i class="fas fa-check"></i>',
|
icon: '<i class="fas fa-check"></i>',
|
||||||
label: "Yes, remove it",
|
label: "Oui !",
|
||||||
callback: () => {
|
callback: () => {
|
||||||
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
|
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
|
||||||
li.slideUp(200, () => actorSheet.render(false));
|
li.slideUp(200, () => actorSheet.render(false));
|
||||||
@@ -817,12 +857,12 @@ export class HeritiersUtility {
|
|||||||
},
|
},
|
||||||
cancel: {
|
cancel: {
|
||||||
icon: '<i class="fas fa-times"></i>',
|
icon: '<i class="fas fa-times"></i>',
|
||||||
label: "Cancel"
|
label: "Non !"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
msgTxt += "</p>";
|
msgTxt += "</p>";
|
||||||
let d = new Dialog({
|
let d = new Dialog({
|
||||||
title: "Confirm removal",
|
title: "Confirmer la suppression",
|
||||||
content: msgTxt,
|
content: msgTxt,
|
||||||
buttons: buttons,
|
buttons: buttons,
|
||||||
default: "cancel"
|
default: "cancel"
|
||||||
@@ -830,21 +870,56 @@ export class HeritiersUtility {
|
|||||||
d.render(true);
|
d.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************************/
|
static loadSort() {
|
||||||
static async __create_talents_table() {
|
// Create afolder in the item directory if it doesn't exist
|
||||||
let compName = "fvtt-les-heritiers.talents-cellule"
|
if (!game.folders.getName("Magie du Clan")) {
|
||||||
const compData = await HeritiersUtility.loadCompendium(compName)
|
Folder.create({
|
||||||
let talents = compData.map(i => i.toObject())
|
name: "Magie du Clan",
|
||||||
|
type: "Item",
|
||||||
let htmlTab = "<table border='1'><tbody>";
|
color: "#3b1361"
|
||||||
for (let entryData of talents) {
|
});
|
||||||
console.log(entryData)
|
|
||||||
htmlTab += `<tr><td>@UUID[Compendium.${compName}.${entryData._id}]{${entryData.name}}</td>`
|
|
||||||
htmlTab += `<td>${entryData.system.description}</td>`;
|
|
||||||
//htmlTab += `<td>${entryData.system.resumebonus}</td>`;
|
|
||||||
htmlTab += "</tr>\n";
|
|
||||||
}
|
}
|
||||||
htmlTab += "</table>";
|
|
||||||
await JournalEntry.create({ name: 'Liste des Talents de Cellule', content: htmlTab });
|
// Load the srcdata/sorts-druidisme.json file
|
||||||
|
return fetch("systems/fvtt-les-heritiers/srcdata/sort_magieduclan.json")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => {
|
||||||
|
console.log("Sorts Magie du Clan loaded:", data);
|
||||||
|
this.sortDruidisme = data;
|
||||||
|
// Loop through the spell and create the "sort "item based on the JSON content
|
||||||
|
data.forEach(spell => {
|
||||||
|
spell.name = spell.name;
|
||||||
|
spell.type = "sort";
|
||||||
|
spell.system = {
|
||||||
|
niveau: spell.niveau,
|
||||||
|
competence: spell.competence,
|
||||||
|
carac1: spell.carac1,
|
||||||
|
carac2: spell.carac2,
|
||||||
|
description: spell.description,
|
||||||
|
ingredients: spell.ingredients,
|
||||||
|
portee: spell.portee,
|
||||||
|
duree: spell.duree,
|
||||||
|
concentration: spell.concentration,
|
||||||
|
critique: spell.critique,
|
||||||
|
resistance: spell.resistance,
|
||||||
|
coutactivation: spell.coutactivation
|
||||||
|
};
|
||||||
|
spell.img = "systems/fvtt-les-heritiers/assets/icons/sort.webp";
|
||||||
|
spell.folder = game.folders.getName("Magie du Clan").id;
|
||||||
|
|
||||||
|
// Create the item in the world
|
||||||
|
Item.create(spell)
|
||||||
|
.then(item => {
|
||||||
|
console.log("Sort created:", item);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error("Error creating sort item:", error);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error("Error loading druidism spells:", error);
|
||||||
|
return [];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000119
|
MANIFEST-000300
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-11:50:06.038149 7fd1378006c0 Recovering log #117
|
2025/09/15-22:15:24.823326 7f307affd6c0 Recovering log #298
|
||||||
2024/07/13-11:50:06.049190 7fd1378006c0 Delete type=3 #115
|
2025/09/15-22:15:24.833041 7f307affd6c0 Delete type=3 #296
|
||||||
2024/07/13-11:50:06.049270 7fd1378006c0 Delete type=0 #117
|
2025/09/15-22:15:24.833115 7f307affd6c0 Delete type=0 #298
|
||||||
2024/07/13-12:04:34.890522 7fd1368006c0 Level-0 table #122: started
|
2025/09/15-22:23:01.584235 7f307a7fc6c0 Level-0 table #303: started
|
||||||
2024/07/13-12:04:34.890547 7fd1368006c0 Level-0 table #122: 0 bytes OK
|
2025/09/15-22:23:01.584266 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
|
||||||
2024/07/13-12:04:34.896578 7fd1368006c0 Delete type=0 #120
|
2025/09/15-22:23:01.590949 7f307a7fc6c0 Delete type=0 #301
|
||||||
2024/07/13-12:04:34.910319 7fd1368006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.597083 7f307a7fc6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-12:04:34.910358 7fd1368006c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.597126 7f307a7fc6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-10:02:15.244079 7f84774006c0 Recovering log #113
|
2025/09/15-21:06:27.325495 7f307affd6c0 Recovering log #294
|
||||||
2024/07/13-10:02:15.300941 7f84774006c0 Delete type=3 #111
|
2025/09/15-21:06:27.335836 7f307affd6c0 Delete type=3 #292
|
||||||
2024/07/13-10:02:15.301037 7f84774006c0 Delete type=0 #113
|
2025/09/15-21:06:27.335957 7f307affd6c0 Delete type=0 #294
|
||||||
2024/07/13-10:03:01.406237 7f846fe006c0 Level-0 table #118: started
|
2025/09/15-21:08:54.705256 7f307a7fc6c0 Level-0 table #299: started
|
||||||
2024/07/13-10:03:01.406297 7f846fe006c0 Level-0 table #118: 0 bytes OK
|
2025/09/15-21:08:54.705333 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
|
||||||
2024/07/13-10:03:01.413253 7f846fe006c0 Delete type=0 #116
|
2025/09/15-21:08:54.712270 7f307a7fc6c0 Delete type=0 #297
|
||||||
2024/07/13-10:03:01.413568 7f846fe006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.731675 7f307a7fc6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-10:03:01.413632 7f846fe006c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.731735 7f307a7fc6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000119
|
MANIFEST-000300
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-11:50:06.067232 7fd1382006c0 Recovering log #117
|
2025/09/15-22:15:24.848609 7f307b7fe6c0 Recovering log #298
|
||||||
2024/07/13-11:50:06.078188 7fd1382006c0 Delete type=3 #115
|
2025/09/15-22:15:24.859061 7f307b7fe6c0 Delete type=3 #296
|
||||||
2024/07/13-11:50:06.078300 7fd1382006c0 Delete type=0 #117
|
2025/09/15-22:15:24.859140 7f307b7fe6c0 Delete type=0 #298
|
||||||
2024/07/13-12:04:34.903770 7fd1368006c0 Level-0 table #122: started
|
2025/09/15-22:23:01.577999 7f307a7fc6c0 Level-0 table #303: started
|
||||||
2024/07/13-12:04:34.903799 7fd1368006c0 Level-0 table #122: 0 bytes OK
|
2025/09/15-22:23:01.578051 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
|
||||||
2024/07/13-12:04:34.910179 7fd1368006c0 Delete type=0 #120
|
2025/09/15-22:23:01.584148 7f307a7fc6c0 Delete type=0 #301
|
||||||
2024/07/13-12:04:34.910343 7fd1368006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.597073 7f307a7fc6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-12:04:34.910366 7fd1368006c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.597114 7f307a7fc6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-10:02:15.384479 7f84774006c0 Recovering log #113
|
2025/09/15-21:06:27.351420 7f307bfff6c0 Recovering log #294
|
||||||
2024/07/13-10:02:15.449901 7f84774006c0 Delete type=3 #111
|
2025/09/15-21:06:27.362201 7f307bfff6c0 Delete type=3 #292
|
||||||
2024/07/13-10:02:15.450029 7f84774006c0 Delete type=0 #113
|
2025/09/15-21:06:27.362258 7f307bfff6c0 Delete type=0 #294
|
||||||
2024/07/13-10:03:01.390066 7f846fe006c0 Level-0 table #118: started
|
2025/09/15-21:08:54.712395 7f307a7fc6c0 Level-0 table #299: started
|
||||||
2024/07/13-10:03:01.390114 7f846fe006c0 Level-0 table #118: 0 bytes OK
|
2025/09/15-21:08:54.712426 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
|
||||||
2024/07/13-10:03:01.398481 7f846fe006c0 Delete type=0 #116
|
2025/09/15-21:08:54.718406 7f307a7fc6c0 Delete type=0 #297
|
||||||
2024/07/13-10:03:01.413524 7f846fe006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.731696 7f307a7fc6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-10:03:01.413602 7f846fe006c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.731747 7f307a7fc6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000119
|
MANIFEST-000300
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-11:50:06.024005 7fd1396006c0 Recovering log #117
|
2025/09/15-22:15:24.798700 7f307bfff6c0 Recovering log #298
|
||||||
2024/07/13-11:50:06.034260 7fd1396006c0 Delete type=3 #115
|
2025/09/15-22:15:24.808066 7f307bfff6c0 Delete type=3 #296
|
||||||
2024/07/13-11:50:06.034359 7fd1396006c0 Delete type=0 #117
|
2025/09/15-22:15:24.808115 7f307bfff6c0 Delete type=0 #298
|
||||||
2024/07/13-12:04:34.884145 7fd1368006c0 Level-0 table #122: started
|
2025/09/15-22:23:01.541562 7f307a7fc6c0 Level-0 table #303: started
|
||||||
2024/07/13-12:04:34.884176 7fd1368006c0 Level-0 table #122: 0 bytes OK
|
2025/09/15-22:23:01.541615 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
|
||||||
2024/07/13-12:04:34.890417 7fd1368006c0 Delete type=0 #120
|
2025/09/15-22:23:01.547814 7f307a7fc6c0 Delete type=0 #301
|
||||||
2024/07/13-12:04:34.910307 7fd1368006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.565908 7f307a7fc6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-12:04:34.910351 7fd1368006c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.565949 7f307a7fc6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-10:02:15.177989 7f8476a006c0 Recovering log #113
|
2025/09/15-21:06:27.300488 7f307bfff6c0 Recovering log #294
|
||||||
2024/07/13-10:02:15.234044 7f8476a006c0 Delete type=3 #111
|
2025/09/15-21:06:27.310028 7f307bfff6c0 Delete type=3 #292
|
||||||
2024/07/13-10:02:15.234141 7f8476a006c0 Delete type=0 #113
|
2025/09/15-21:06:27.310094 7f307bfff6c0 Delete type=0 #294
|
||||||
2024/07/13-10:03:01.383420 7f846fe006c0 Level-0 table #118: started
|
2025/09/15-21:08:54.685417 7f307a7fc6c0 Level-0 table #299: started
|
||||||
2024/07/13-10:03:01.383474 7f846fe006c0 Level-0 table #118: 0 bytes OK
|
2025/09/15-21:08:54.685439 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
|
||||||
2024/07/13-10:03:01.389789 7f846fe006c0 Delete type=0 #116
|
2025/09/15-21:08:54.692723 7f307a7fc6c0 Delete type=0 #297
|
||||||
2024/07/13-10:03:01.413498 7f846fe006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.705096 7f307a7fc6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-10:03:01.413585 7f846fe006c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.705139 7f307a7fc6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000119
|
MANIFEST-000300
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-11:50:05.981429 7fd1378006c0 Recovering log #117
|
2025/09/15-22:15:24.760919 7f3080dfa6c0 Recovering log #298
|
||||||
2024/07/13-11:50:05.991790 7fd1378006c0 Delete type=3 #115
|
2025/09/15-22:15:24.770694 7f3080dfa6c0 Delete type=3 #296
|
||||||
2024/07/13-11:50:05.991881 7fd1378006c0 Delete type=0 #117
|
2025/09/15-22:15:24.770767 7f3080dfa6c0 Delete type=0 #298
|
||||||
2024/07/13-12:04:34.869904 7fd1368006c0 Level-0 table #122: started
|
2025/09/15-22:23:01.521581 7f307a7fc6c0 Level-0 table #303: started
|
||||||
2024/07/13-12:04:34.870077 7fd1368006c0 Level-0 table #122: 0 bytes OK
|
2025/09/15-22:23:01.521642 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
|
||||||
2024/07/13-12:04:34.876773 7fd1368006c0 Delete type=0 #120
|
2025/09/15-22:23:01.528012 7f307a7fc6c0 Delete type=0 #301
|
||||||
2024/07/13-12:04:34.883990 7fd1368006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.534278 7f307a7fc6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-12:04:34.884026 7fd1368006c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.534315 7f307a7fc6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-10:02:14.926786 7f84760006c0 Recovering log #113
|
2025/09/15-21:06:27.262631 7f307bfff6c0 Recovering log #294
|
||||||
2024/07/13-10:02:15.008375 7f84760006c0 Delete type=3 #111
|
2025/09/15-21:06:27.272396 7f307bfff6c0 Delete type=3 #292
|
||||||
2024/07/13-10:02:15.008515 7f84760006c0 Delete type=0 #113
|
2025/09/15-21:06:27.272468 7f307bfff6c0 Delete type=0 #294
|
||||||
2024/07/13-10:03:01.362746 7f846fe006c0 Level-0 table #118: started
|
2025/09/15-21:08:54.666847 7f307a7fc6c0 Level-0 table #299: started
|
||||||
2024/07/13-10:03:01.362786 7f846fe006c0 Level-0 table #118: 0 bytes OK
|
2025/09/15-21:08:54.666873 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
|
||||||
2024/07/13-10:03:01.369253 7f846fe006c0 Delete type=0 #116
|
2025/09/15-21:08:54.672959 7f307a7fc6c0 Delete type=0 #297
|
||||||
2024/07/13-10:03:01.383122 7f846fe006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.679358 7f307a7fc6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-10:03:01.383205 7f846fe006c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.679384 7f307a7fc6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000119
|
MANIFEST-000300
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-11:50:06.010574 7fd1382006c0 Recovering log #117
|
2025/09/15-22:15:24.786128 7f307affd6c0 Recovering log #298
|
||||||
2024/07/13-11:50:06.020267 7fd1382006c0 Delete type=3 #115
|
2025/09/15-22:15:24.796141 7f307affd6c0 Delete type=3 #296
|
||||||
2024/07/13-11:50:06.020329 7fd1382006c0 Delete type=0 #117
|
2025/09/15-22:15:24.796205 7f307affd6c0 Delete type=0 #298
|
||||||
2024/07/13-12:04:34.863241 7fd1368006c0 Level-0 table #122: started
|
2025/09/15-22:23:01.534415 7f307a7fc6c0 Level-0 table #303: started
|
||||||
2024/07/13-12:04:34.863266 7fd1368006c0 Level-0 table #122: 0 bytes OK
|
2025/09/15-22:23:01.534493 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
|
||||||
2024/07/13-12:04:34.869777 7fd1368006c0 Delete type=0 #120
|
2025/09/15-22:23:01.541334 7f307a7fc6c0 Delete type=0 #301
|
||||||
2024/07/13-12:04:34.883977 7fd1368006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.565894 7f307a7fc6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-12:04:34.884018 7fd1368006c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.565940 7f307a7fc6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-10:02:15.106775 7f84756006c0 Recovering log #113
|
2025/09/15-21:06:27.288049 7f307b7fe6c0 Recovering log #294
|
||||||
2024/07/13-10:02:15.167776 7f84756006c0 Delete type=3 #111
|
2025/09/15-21:06:27.298262 7f307b7fe6c0 Delete type=3 #292
|
||||||
2024/07/13-10:02:15.167882 7f84756006c0 Delete type=0 #113
|
2025/09/15-21:06:27.298356 7f307b7fe6c0 Delete type=0 #294
|
||||||
2024/07/13-10:03:01.375831 7f846fe006c0 Level-0 table #118: started
|
2025/09/15-21:08:54.692841 7f307a7fc6c0 Level-0 table #299: started
|
||||||
2024/07/13-10:03:01.375868 7f846fe006c0 Level-0 table #118: 0 bytes OK
|
2025/09/15-21:08:54.692870 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
|
||||||
2024/07/13-10:03:01.382829 7f846fe006c0 Delete type=0 #116
|
2025/09/15-21:08:54.698762 7f307a7fc6c0 Delete type=0 #297
|
||||||
2024/07/13-10:03:01.383157 7f846fe006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.705111 7f307a7fc6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-10:03:01.383221 7f846fe006c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.705145 7f307a7fc6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000119
|
MANIFEST-000306
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-11:50:05.968187 7fd1396006c0 Recovering log #117
|
2025/09/15-22:15:24.748857 7f307affd6c0 Recovering log #304
|
||||||
2024/07/13-11:50:05.978032 7fd1396006c0 Delete type=3 #115
|
2025/09/15-22:15:24.758566 7f307affd6c0 Delete type=3 #302
|
||||||
2024/07/13-11:50:05.978111 7fd1396006c0 Delete type=0 #117
|
2025/09/15-22:15:24.758631 7f307affd6c0 Delete type=0 #304
|
||||||
2024/07/13-12:04:34.876924 7fd1368006c0 Level-0 table #122: started
|
2025/09/15-22:23:01.528222 7f307a7fc6c0 Level-0 table #309: started
|
||||||
2024/07/13-12:04:34.876963 7fd1368006c0 Level-0 table #122: 0 bytes OK
|
2025/09/15-22:23:01.528266 7f307a7fc6c0 Level-0 table #309: 0 bytes OK
|
||||||
2024/07/13-12:04:34.883825 7fd1368006c0 Delete type=0 #120
|
2025/09/15-22:23:01.534172 7f307a7fc6c0 Delete type=0 #307
|
||||||
2024/07/13-12:04:34.884000 7fd1368006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.534287 7f307a7fc6c0 Manual compaction at level-0 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-12:04:34.884033 7fd1368006c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.534306 7f307a7fc6c0 Manual compaction at level-1 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-10:02:14.835994 7f8476a006c0 Recovering log #113
|
2025/09/15-21:06:27.249709 7f307b7fe6c0 Recovering log #300
|
||||||
2024/07/13-10:02:14.919817 7f8476a006c0 Delete type=3 #111
|
2025/09/15-21:06:27.260222 7f307b7fe6c0 Delete type=3 #298
|
||||||
2024/07/13-10:02:14.919919 7f8476a006c0 Delete type=0 #113
|
2025/09/15-21:06:27.260307 7f307b7fe6c0 Delete type=0 #300
|
||||||
2024/07/13-10:03:01.355643 7f846fe006c0 Level-0 table #118: started
|
2025/09/15-21:08:54.660355 7f307a7fc6c0 Level-0 table #305: started
|
||||||
2024/07/13-10:03:01.355729 7f846fe006c0 Level-0 table #118: 0 bytes OK
|
2025/09/15-21:08:54.660389 7f307a7fc6c0 Level-0 table #305: 0 bytes OK
|
||||||
2024/07/13-10:03:01.362563 7f846fe006c0 Delete type=0 #116
|
2025/09/15-21:08:54.666754 7f307a7fc6c0 Delete type=0 #303
|
||||||
2024/07/13-10:03:01.383100 7f846fe006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.679346 7f307a7fc6c0 Manual compaction at level-0 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-10:03:01.383176 7f846fe006c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.679378 7f307a7fc6c0 Manual compaction at level-1 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000119
|
MANIFEST-000300
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-11:50:05.995698 7fd138c006c0 Recovering log #117
|
2025/09/15-22:15:24.773117 7f307b7fe6c0 Recovering log #298
|
||||||
2024/07/13-11:50:06.006429 7fd138c006c0 Delete type=3 #115
|
2025/09/15-22:15:24.783458 7f307b7fe6c0 Delete type=3 #296
|
||||||
2024/07/13-11:50:06.006483 7fd138c006c0 Delete type=0 #117
|
2025/09/15-22:15:24.783520 7f307b7fe6c0 Delete type=0 #298
|
||||||
2024/07/13-12:04:34.856398 7fd1368006c0 Level-0 table #122: started
|
2025/09/15-22:23:01.559017 7f307a7fc6c0 Level-0 table #303: started
|
||||||
2024/07/13-12:04:34.856463 7fd1368006c0 Level-0 table #122: 0 bytes OK
|
2025/09/15-22:23:01.559048 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
|
||||||
2024/07/13-12:04:34.863115 7fd1368006c0 Delete type=0 #120
|
2025/09/15-22:23:01.565802 7f307a7fc6c0 Delete type=0 #301
|
||||||
2024/07/13-12:04:34.883960 7fd1368006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.565930 7f307a7fc6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-12:04:34.884009 7fd1368006c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.565957 7f307a7fc6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-10:02:15.016503 7f84774006c0 Recovering log #113
|
2025/09/15-21:06:27.274645 7f3080dfa6c0 Recovering log #294
|
||||||
2024/07/13-10:02:15.078712 7f84774006c0 Delete type=3 #111
|
2025/09/15-21:06:27.285405 7f3080dfa6c0 Delete type=3 #292
|
||||||
2024/07/13-10:02:15.078829 7f84774006c0 Delete type=0 #113
|
2025/09/15-21:06:27.285486 7f3080dfa6c0 Delete type=0 #294
|
||||||
2024/07/13-10:03:01.369422 7f846fe006c0 Level-0 table #118: started
|
2025/09/15-21:08:54.679508 7f307a7fc6c0 Level-0 table #299: started
|
||||||
2024/07/13-10:03:01.369459 7f846fe006c0 Level-0 table #118: 0 bytes OK
|
2025/09/15-21:08:54.679542 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
|
||||||
2024/07/13-10:03:01.375663 7f846fe006c0 Delete type=0 #116
|
2025/09/15-21:08:54.685322 7f307a7fc6c0 Delete type=0 #297
|
||||||
2024/07/13-10:03:01.383141 7f846fe006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.705080 7f307a7fc6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-10:03:01.383191 7f846fe006c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.705123 7f307a7fc6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000018
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2025/09/15-22:15:24.887393 7f3080dfa6c0 Recovering log #16
|
||||||
|
2025/09/15-22:15:24.897947 7f3080dfa6c0 Delete type=3 #14
|
||||||
|
2025/09/15-22:15:24.898013 7f3080dfa6c0 Delete type=0 #16
|
||||||
|
2025/09/15-22:23:01.610372 7f307a7fc6c0 Level-0 table #21: started
|
||||||
|
2025/09/15-22:23:01.610444 7f307a7fc6c0 Level-0 table #21: 0 bytes OK
|
||||||
|
2025/09/15-22:23:01.616579 7f307a7fc6c0 Delete type=0 #19
|
||||||
|
2025/09/15-22:23:01.623474 7f307a7fc6c0 Manual compaction at level-0 from '!journal!QZDy8zwSVh7t4meA' @ 72057594037927935 : 1 .. '!journal.pages!QZDy8zwSVh7t4meA.gdXBDBkPlBjfmTy7' @ 0 : 0; will stop at (end)
|
||||||
|
2025/09/15-22:23:01.623518 7f307a7fc6c0 Manual compaction at level-1 from '!journal!QZDy8zwSVh7t4meA' @ 72057594037927935 : 1 .. '!journal.pages!QZDy8zwSVh7t4meA.gdXBDBkPlBjfmTy7' @ 0 : 0; will stop at (end)
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2025/09/15-21:06:27.389764 7f307affd6c0 Recovering log #12
|
||||||
|
2025/09/15-21:06:27.400118 7f307affd6c0 Delete type=3 #10
|
||||||
|
2025/09/15-21:06:27.400175 7f307affd6c0 Delete type=0 #12
|
||||||
|
2025/09/15-21:08:54.731831 7f307a7fc6c0 Level-0 table #17: started
|
||||||
|
2025/09/15-21:08:54.731879 7f307a7fc6c0 Level-0 table #17: 0 bytes OK
|
||||||
|
2025/09/15-21:08:54.738151 7f307a7fc6c0 Delete type=0 #15
|
||||||
|
2025/09/15-21:08:54.758915 7f307a7fc6c0 Manual compaction at level-0 from '!journal!QZDy8zwSVh7t4meA' @ 72057594037927935 : 1 .. '!journal.pages!QZDy8zwSVh7t4meA.gdXBDBkPlBjfmTy7' @ 0 : 0; will stop at (end)
|
||||||
|
2025/09/15-21:08:54.758952 7f307a7fc6c0 Manual compaction at level-1 from '!journal!QZDy8zwSVh7t4meA' @ 72057594037927935 : 1 .. '!journal.pages!QZDy8zwSVh7t4meA.gdXBDBkPlBjfmTy7' @ 0 : 0; will stop at (end)
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000103
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
2025/09/15-22:15:24.810480 7f307b7fe6c0 Recovering log #101
|
||||||
|
2025/09/15-22:15:24.820390 7f307b7fe6c0 Delete type=3 #99
|
||||||
|
2025/09/15-22:15:24.820446 7f307b7fe6c0 Delete type=0 #101
|
||||||
|
2025/09/15-22:23:01.547894 7f307a7fc6c0 Level-0 table #106: started
|
||||||
|
2025/09/15-22:23:01.552623 7f307a7fc6c0 Level-0 table #106: 132165 bytes OK
|
||||||
|
2025/09/15-22:23:01.558854 7f307a7fc6c0 Delete type=0 #104
|
||||||
|
2025/09/15-22:23:01.565921 7f307a7fc6c0 Manual compaction at level-0 from '!folders!5pCYN0vTiCKOHrXM' @ 72057594037927935 : 1 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at (end)
|
||||||
|
2025/09/15-22:23:01.565970 7f307a7fc6c0 Manual compaction at level-1 from '!folders!5pCYN0vTiCKOHrXM' @ 72057594037927935 : 1 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at '!items!zbZ88BQkH9ZCYlDK' @ 457 : 0
|
||||||
|
2025/09/15-22:23:01.565979 7f307a7fc6c0 Compacting 1@1 + 1@2 files
|
||||||
|
2025/09/15-22:23:01.571458 7f307a7fc6c0 Generated table #107@1: 146 keys, 129863 bytes
|
||||||
|
2025/09/15-22:23:01.571503 7f307a7fc6c0 Compacted 1@1 + 1@2 files => 129863 bytes
|
||||||
|
2025/09/15-22:23:01.577463 7f307a7fc6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||||
|
2025/09/15-22:23:01.577659 7f307a7fc6c0 Delete type=2 #86
|
||||||
|
2025/09/15-22:23:01.577865 7f307a7fc6c0 Delete type=2 #106
|
||||||
|
2025/09/15-22:23:01.597062 7f307a7fc6c0 Manual compaction at level-1 from '!items!zbZ88BQkH9ZCYlDK' @ 457 : 0 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at (end)
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2025/09/15-21:06:27.312840 7f3080dfa6c0 Recovering log #97
|
||||||
|
2025/09/15-21:06:27.322814 7f3080dfa6c0 Delete type=3 #95
|
||||||
|
2025/09/15-21:06:27.322901 7f3080dfa6c0 Delete type=0 #97
|
||||||
|
2025/09/15-21:08:54.698842 7f307a7fc6c0 Level-0 table #102: started
|
||||||
|
2025/09/15-21:08:54.698870 7f307a7fc6c0 Level-0 table #102: 0 bytes OK
|
||||||
|
2025/09/15-21:08:54.704908 7f307a7fc6c0 Delete type=0 #100
|
||||||
|
2025/09/15-21:08:54.705132 7f307a7fc6c0 Manual compaction at level-0 from '!folders!1ENmqNfRLUTmKPc6' @ 72057594037927935 : 1 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at (end)
|
||||||
|
2025/09/15-21:08:54.705168 7f307a7fc6c0 Manual compaction at level-1 from '!folders!1ENmqNfRLUTmKPc6' @ 72057594037927935 : 1 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at (end)
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000119
|
MANIFEST-000301
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-11:50:06.053031 7fd138c006c0 Recovering log #117
|
2025/09/15-22:15:24.835820 7f307bfff6c0 Recovering log #299
|
||||||
2024/07/13-11:50:06.063288 7fd138c006c0 Delete type=3 #115
|
2025/09/15-22:15:24.845487 7f307bfff6c0 Delete type=3 #297
|
||||||
2024/07/13-11:50:06.063408 7fd138c006c0 Delete type=0 #117
|
2025/09/15-22:15:24.845568 7f307bfff6c0 Delete type=0 #299
|
||||||
2024/07/13-12:04:34.896698 7fd1368006c0 Level-0 table #122: started
|
2025/09/15-22:23:01.591108 7f307a7fc6c0 Level-0 table #304: started
|
||||||
2024/07/13-12:04:34.896722 7fd1368006c0 Level-0 table #122: 0 bytes OK
|
2025/09/15-22:23:01.591136 7f307a7fc6c0 Level-0 table #304: 0 bytes OK
|
||||||
2024/07/13-12:04:34.903568 7fd1368006c0 Delete type=0 #120
|
2025/09/15-22:23:01.596986 7f307a7fc6c0 Delete type=0 #302
|
||||||
2024/07/13-12:04:34.910332 7fd1368006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.597090 7f307a7fc6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-12:04:34.910373 7fd1368006c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.597120 7f307a7fc6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/07/13-10:02:15.310180 7f84756006c0 Recovering log #113
|
2025/09/15-21:06:27.338726 7f307b7fe6c0 Recovering log #295
|
||||||
2024/07/13-10:02:15.365762 7f84756006c0 Delete type=3 #111
|
2025/09/15-21:06:27.348432 7f307b7fe6c0 Delete type=3 #293
|
||||||
2024/07/13-10:02:15.365879 7f84756006c0 Delete type=0 #113
|
2025/09/15-21:06:27.348491 7f307b7fe6c0 Delete type=0 #295
|
||||||
2024/07/13-10:03:01.398667 7f846fe006c0 Level-0 table #118: started
|
2025/09/15-21:08:54.718495 7f307a7fc6c0 Level-0 table #300: started
|
||||||
2024/07/13-10:03:01.398709 7f846fe006c0 Level-0 table #118: 0 bytes OK
|
2025/09/15-21:08:54.718519 7f307a7fc6c0 Level-0 table #300: 0 bytes OK
|
||||||
2024/07/13-10:03:01.405946 7f846fe006c0 Delete type=0 #116
|
2025/09/15-21:08:54.724957 7f307a7fc6c0 Delete type=0 #298
|
||||||
2024/07/13-10:03:01.413546 7f846fe006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.731709 7f307a7fc6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
||||||
2024/07/13-10:03:01.413616 7f846fe006c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.731758 7f307a7fc6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000118
|
MANIFEST-000298
|
||||||
|
|||||||
+7
-7
@@ -1,7 +1,7 @@
|
|||||||
2024/07/13-11:50:06.080991 7fd1396006c0 Recovering log #116
|
2025/09/15-22:15:24.861471 7f3080dfa6c0 Recovering log #296
|
||||||
2024/07/13-11:50:06.091283 7fd1396006c0 Delete type=3 #114
|
2025/09/15-22:15:24.871507 7f3080dfa6c0 Delete type=3 #294
|
||||||
2024/07/13-11:50:06.091343 7fd1396006c0 Delete type=0 #116
|
2025/09/15-22:15:24.871573 7f3080dfa6c0 Delete type=0 #296
|
||||||
2024/07/13-12:04:34.916692 7fd1368006c0 Level-0 table #121: started
|
2025/09/15-22:23:01.597208 7f307a7fc6c0 Level-0 table #301: started
|
||||||
2024/07/13-12:04:34.916727 7fd1368006c0 Level-0 table #121: 0 bytes OK
|
2025/09/15-22:23:01.597240 7f307a7fc6c0 Level-0 table #301: 0 bytes OK
|
||||||
2024/07/13-12:04:34.922984 7fd1368006c0 Delete type=0 #119
|
2025/09/15-22:23:01.603183 7f307a7fc6c0 Delete type=0 #299
|
||||||
2024/07/13-12:04:34.936001 7fd1368006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2025/09/15-22:23:01.623429 7f307a7fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2024/07/13-10:02:15.459843 7f8476a006c0 Recovering log #112
|
2025/09/15-21:06:27.364429 7f3080dfa6c0 Recovering log #292
|
||||||
2024/07/13-10:02:15.528138 7f8476a006c0 Delete type=3 #110
|
2025/09/15-21:06:27.374643 7f3080dfa6c0 Delete type=3 #290
|
||||||
2024/07/13-10:02:15.528258 7f8476a006c0 Delete type=0 #112
|
2025/09/15-21:06:27.374720 7f3080dfa6c0 Delete type=0 #292
|
||||||
2024/07/13-10:03:01.433902 7f846fe006c0 Level-0 table #117: started
|
2025/09/15-21:08:54.725160 7f307a7fc6c0 Level-0 table #297: started
|
||||||
2024/07/13-10:03:01.433954 7f846fe006c0 Level-0 table #117: 0 bytes OK
|
2025/09/15-21:08:54.725200 7f307a7fc6c0 Level-0 table #297: 0 bytes OK
|
||||||
2024/07/13-10:03:01.441009 7f846fe006c0 Delete type=0 #115
|
2025/09/15-21:08:54.731505 7f307a7fc6c0 Delete type=0 #295
|
||||||
2024/07/13-10:03:01.453712 7f846fe006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2025/09/15-21:08:54.731723 7f307a7fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
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