Compare commits

...

12 Commits

155 changed files with 2555 additions and 2069 deletions

View File

@ -1,3 +1,20 @@
{ {
"TYPES": {
"Actor": {
"character": "Character"
},
"Item": {
"armor": "Armor",
"weapon": "Weapon",
"equipment": "Equipment",
"skill": "Skill",
"perk": "Perk",
"ability": "Ability",
"cumulativetask": "Cumulative Task",
"genetic": "Genetic",
"money": "Money",
"cyber": "Cyber",
"ammo": "Ammo"
}
}
} }

View File

@ -11,7 +11,7 @@ export class DarkStarsActorSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-dark-stars", "sheet", "actor"], classes: ["fvtt-dark-stars", "sheet", "actor"],
template: "systems/fvtt-dark-stars/templates/actors/actor-sheet.hbs", template: "systems/fvtt-dark-stars/templates/actors/actor-sheet.hbs",
width: 960, width: 960,
@ -25,7 +25,7 @@ export class DarkStarsActorSheet extends ActorSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
const objectData = this.object.system const objectData = this.object.system
let actorData = duplicate(objectData) let actorData = foundry.utils.duplicate(objectData)
let formData = { let formData = {
title: this.title, title: this.title,
@ -39,21 +39,23 @@ export class DarkStarsActorSheet extends ActorSheet {
limited: this.object.limited, limited: this.object.limited,
skills: this.actor.getSkills( ), skills: this.actor.getSkills( ),
perks: this.actor.getPerks( ), perks: this.actor.getPerks( ),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ), weapons: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getWeapons()) ),
ammos: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getAmmos()) ), ammos: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getAmmos()) ),
spells: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getSpells()) ), spells: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getSpells()) ),
powers: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getPowers()) ), powers: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getPowers()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())), armors: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())), shields: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getShields())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ), equipments: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquipmentsOnly()) ),
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ), equippedWeapons: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquippedWeapons()) ),
cybers: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getCybers()) ), cybers: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getCybers()) ),
genetics: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getGenetics()) ), genetics: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getGenetics()) ),
equippedArmor: this.actor.getEquippedArmor(), equippedArmor: this.actor.getEquippedArmor(),
equippedShield: this.actor.getEquippedShield(), equippedShield: this.actor.getEquippedShield(),
subActors: duplicate(this.actor.getSubActors()), subActors: foundry.utils.duplicate(this.actor.getSubActors()),
encCapacity: this.actor.getEncumbranceCapacity(), encCapacity: this.actor.getEncumbranceCapacity(),
conditions: this.actor.getConditions(), conditions: this.actor.getConditions(),
extendedTests: this.actor.getExtendedTests(),
config: game.system.darkstars.config,
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}), description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}), notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}),
containersTree: this.actor.containersTree, containersTree: this.actor.containersTree,
@ -145,6 +147,20 @@ export class DarkStarsActorSheet extends ActorSheet {
const skillId = li.data("item-id") const skillId = li.data("item-id")
this.actor.rollSkill(skillId) this.actor.rollSkill(skillId)
}); });
html.find('.roll-attribute').click((event) => {
const attrKey = $(event.currentTarget).data("attr-key")
this.actor.rollAttribute(attrKey)
})
html.find('.start-extended-test').click((event) => {
const li = $(event.currentTarget).parents(".item")
const skillId = li.data("item-id")
this.actor.rollSkill(skillId, true)
})
html.find('.roll-extended-test').click((event) => {
const li = $(event.currentTarget).parents(".item")
const testId = li.data("item-id")
this.actor.continueExtendedTest(testId)
})
html.find('.roll-weapon').click((event) => { html.find('.roll-weapon').click((event) => {
const li = $(event.currentTarget).parents(".item"); const li = $(event.currentTarget).parents(".item");

View File

@ -43,8 +43,6 @@ export class DarkStarsActor extends Actor {
} }
if (data.type == 'character') { if (data.type == 'character') {
const skills = await DarkStarsUtility.loadCompendium("fvtt-dark-stars.skills");
data.items = skills.map(i => i.toObject())
} }
if (data.type == 'npc') { if (data.type == 'npc') {
} }
@ -120,54 +118,59 @@ export class DarkStarsActor extends Actor {
} }
getEquippedWeapons() { getEquippedWeapons() {
let comp = duplicate(this.items.filter(item => item.type == 'weapon' && item.system.equipped) || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'weapon' && item.system.equipped) || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getArmors() { getArmors() {
let comp = duplicate(this.items.filter(item => item.type == 'armor') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'armor') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
getSpells() { getSpells() {
let comp = duplicate(this.items.filter(item => item.type == 'spell') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'spell') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
getPowers() { getPowers() {
let comp = duplicate(this.items.filter(item => item.type == 'psychic') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'psychic') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
getExtendedTests() {
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'extendedtest') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
getEquippedArmor() { getEquippedArmor() {
let comp = this.items.find(item => item.type == 'armor' && item.system.equipped) let comp = this.items.find(item => item.type == 'armor' && item.system.equipped)
if (comp) { if (comp) {
return duplicate(comp) return foundry.utils.duplicate(comp)
} }
return undefined return undefined
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getCybers() { getCybers() {
let comp = duplicate(this.items.filter(item => item.type == 'cyber') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'cyber') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
getGenetics() { getGenetics() {
let comp = duplicate(this.items.filter(item => item.type == 'genetic') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'genetic') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getShields() { getShields() {
let comp = duplicate(this.items.filter(item => item.type == 'shield') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'shield') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
getEquippedShield() { getEquippedShield() {
let comp = this.items.find(item => item.type == 'shield' && item.system.equipped) let comp = this.items.find(item => item.type == 'shield' && item.system.equipped)
if (comp) { if (comp) {
return duplicate(comp) return foundry.utils.duplicate(comp)
} }
return undefined return undefined
} }
@ -177,7 +180,7 @@ export class DarkStarsActor extends Actor {
if (item.type == "weapon" && item.system.needammo) { if (item.type == "weapon" && item.system.needammo) {
let ammo = this.items.find(ammo => ammo.type == "ammo" && item.system.ammoid == ammo.id) let ammo = this.items.find(ammo => ammo.type == "ammo" && item.system.ammoid == ammo.id)
if (ammo) { if (ammo) {
item.ammo = duplicate(ammo) item.ammo = foundry.utils.duplicate(ammo)
} }
} }
} }
@ -192,29 +195,34 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getConditions() { getConditions() {
let comp = duplicate(this.items.filter(item => item.type == 'condition') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'condition') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getWeapons() { getWeapons() {
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'weapon') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getAmmos() { getAmmos() {
let comp = duplicate(this.items.filter(item => item.type == 'ammo') || []); let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'ammo') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getItemById(id) { getItemById(id, duplicate = true) {
let item = this.items.find(item => item.id == id); let item = this.items.find(it => it.id == id)
if (item) { if (item && duplicate) {
item = duplicate(item) item = foundry.utils.duplicate(item)
} }
return item; return item
}
/* -------------------------------------------- */
getItem(id) {
let item = this.items.get(id)
return item
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
setWeaponAmmo(weaponId, ammoId) { setWeaponAmmo(weaponId, ammoId) {
@ -233,14 +241,14 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
updateSkill(skill) { updateSkill(skill) {
skill.derivated = duplicate(this.system.derivated[skill.system.base]) skill.derivated = foundry.utils.duplicate(this.system.derivated[skill.system.base])
skill.total = skill.system.value + skill.derivated.value + skill.system.bonus skill.total = skill.system.value + skill.derivated.value + skill.system.bonus
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getSkills() { getSkills() {
this.computeDerivated() this.computeDerivated()
let comp = duplicate(this.items.filter(item => item.type == 'skill') || []) let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'skill') || [])
for (let skill of comp) { for (let skill of comp) {
this.updateSkill(skill) this.updateSkill(skill)
} }
@ -250,7 +258,7 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getPerks() { getPerks() {
let comp = duplicate(this.items.filter(item => item.type == 'perk') || []) let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'perk') || [])
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
return comp return comp
} }
@ -258,7 +266,7 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async equipItem(itemId) { async equipItem(itemId) {
let item = this.items.find(item => item.id == itemId) let item = this.items.find(item => item.id == itemId)
if (item && item.system) { if (item?.system) {
if (item.type == "armor") { if (item.type == "armor") {
let armor = this.items.find(item => item.id != itemId && item.type == "armor" && item.system.equipped) let armor = this.items.find(item => item.id != itemId && item.type == "armor" && item.system.equipped)
if (armor) { if (armor) {
@ -295,7 +303,7 @@ export class DarkStarsActor extends Actor {
} }
/* ------------------------------------------- */ /* ------------------------------------------- */
getEquipmentsOnly() { getEquipmentsOnly() {
return duplicate(this.items.filter(item => item.type == "equipment") || []) return foundry.utils.duplicate(this.items.filter(item => item.type == "equipment") || [])
} }
/* ------------------------------------------- */ /* ------------------------------------------- */
@ -321,7 +329,7 @@ export class DarkStarsActor extends Actor {
/* ------------------------------------------- */ /* ------------------------------------------- */
async buildContainerTree() { async buildContainerTree() {
let equipments = duplicate(this.items.filter(item => item.type == "equipment") || []) let equipments = foundry.utils.duplicate(this.items.filter(item => item.type == "equipment") || [])
for (let equip1 of equipments) { for (let equip1 of equipments) {
if (equip1.system.iscontainer) { if (equip1.system.iscontainer) {
equip1.system.contents = [] equip1.system.contents = []
@ -375,7 +383,7 @@ export class DarkStarsActor extends Actor {
async incDecHP(formula) { async incDecHP(formula) {
let dmgRoll = new Roll(formula + "[dark-starsorange]").roll({ async: false }) let dmgRoll = new Roll(formula + "[dark-starsorange]").roll({ async: false })
await DarkStarsUtility.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode")) await DarkStarsUtility.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode"))
let hp = duplicate(this.system.secondary.hp) let hp = foundry.utils.duplicate(this.system.secondary.hp)
hp.value = Number(hp.value) + Number(dmgRoll.total) hp.value = Number(hp.value) + Number(dmgRoll.total)
this.update({ 'system.secondary.hp': hp }) this.update({ 'system.secondary.hp': hp })
return Number(dmgRoll.total) return Number(dmgRoll.total)
@ -429,9 +437,10 @@ export class DarkStarsActor extends Actor {
return this.items.find(i => i.type == "perk" && i.name.toLowerCase() === "last word") return this.items.find(i => i.type == "perk" && i.name.toLowerCase() === "last word")
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getInitiativeScore() { async getInitiativeScore() {
let initFormula = (this.system.derivated.si.value + this.system.derivated.si.bonus) + "d6" let initFormula = (this.system.derivated.si.value + this.system.derivated.si.bonus) + "d6"
let initRoll = new Roll(initFormula).roll({ async: false }) let initRoll = await new Roll(initFormula).roll()
await DarkStarsUtility.showDiceSoNice(initRoll, game.settings.get("core", "rollMode"))
return initRoll.total return initRoll.total
} }
@ -439,13 +448,13 @@ export class DarkStarsActor extends Actor {
getSubActors() { getSubActors() {
let subActors = []; let subActors = [];
for (let id of this.system.subactors) { for (let id of this.system.subactors) {
subActors.push(duplicate(game.actors.get(id))) subActors.push(foundry.utils.duplicate(game.actors.get(id)))
} }
return subActors; return subActors;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async addSubActor(subActorId) { async addSubActor(subActorId) {
let subActors = duplicate(this.system.subactors); let subActors = foundry.utils.duplicate(this.system.subactors);
subActors.push(subActorId); subActors.push(subActorId);
await this.update({ 'system.subactors': subActors }); await this.update({ 'system.subactors': subActors });
} }
@ -464,7 +473,7 @@ export class DarkStarsActor extends Actor {
getOneSkill(skillId) { getOneSkill(skillId) {
let skill = this.items.find(item => item.type == 'skill' && item.id == skillId) let skill = this.items.find(item => item.type == 'skill' && item.id == skillId)
if (skill) { if (skill) {
skill = duplicate(skill); skill = foundry.utils.duplicate(skill);
} }
return skill; return skill;
} }
@ -560,7 +569,7 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
modifyRerolls( value) { modifyRerolls( value) {
let rerolls = duplicate(this.system.various.rerolls) let rerolls = foundry.utils.duplicate(this.system.various.rerolls)
rerolls.value += value rerolls.value += value
this.update({ 'system.various.rerolls': rerolls }) this.update({ 'system.various.rerolls': rerolls })
} }
@ -576,6 +585,8 @@ export class DarkStarsActor extends Actor {
let rollData = DarkStarsUtility.getBasicRollData() let rollData = DarkStarsUtility.getBasicRollData()
rollData.alias = this.name rollData.alias = this.name
rollData.actorImg = this.img rollData.actorImg = this.img
console.log("Prepare common roll data for actor", this)
rollData.tokenId = this.token?.id
rollData.actorId = this.id rollData.actorId = this.id
rollData.img = this.img rollData.img = this.img
rollData.armors = this.getArmors() rollData.armors = this.getArmors()
@ -616,24 +627,51 @@ export class DarkStarsActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
rollAbility(abilityKey) { rollAttribute(attrKey) {
let rollData = this.getCommonRollData(abilityKey) let rollData = this.getCommonRollData()
rollData.mode = "ability" rollData.attr = foundry.utils.duplicate(this.system.attributes[attrKey])
rollData.mode = "attribute"
rollData.title = "Attribute " + rollData.attr.label
this.startRoll(rollData)
}
/* -------------------------------------------- */
continueExtendedTest(testId) {
let test = this.items.get(testId)
if (test) {
let skill = this.items.find(it => it.type == "skill" && it.name.toLowerCase() == test.system.skill.toLowerCase())
if (skill) {
skill = foundry.utils.duplicate(skill)
this.updateSkill(skill)
let rollData = this.getCommonRollData()
rollData.mode = "extendedtest"
rollData.isExtended = true
rollData.extendedTest = test
rollData.title = "Extended test " + skill.name
rollData.skill = skill
rollData.img = skill.img
rollData.taskId = test.id
if (rollData.target) { if (rollData.target) {
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.") ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
return return
} }
DarkStarsUtility.rollDarkStars(rollData) this.startRoll(rollData)
} else {
console.log("Unable to find the relevant skill for extended test " + test.system.skill)
}
} else {
console.log("Unable to find the extended test")
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
rollSkill(skillId) { async rollSkill(skillId, isExtended = false, taskId = undefined) {
let skill = this.items.get(skillId) let skill = this.items.get(skillId)
if (skill) { if (skill) {
skill = duplicate(skill) skill = foundry.utils.duplicate(skill)
this.updateSkill(skill) this.updateSkill(skill)
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.mode = "skill" rollData.mode = "skill"
rollData.isExtended = isExtended
rollData.title = "Skill " + skill.name rollData.title = "Skill " + skill.name
rollData.skill = skill rollData.skill = skill
rollData.img = skill.img rollData.img = skill.img
@ -641,6 +679,17 @@ export class DarkStarsActor extends Actor {
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.") ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
return return
} }
if (isExtended) {
rollData.title = "Extended Test " + skill.name
if (!taskId) {
let extendedTest = await this.createEmbeddedDocuments("Item", [{name: "Extended test " + skill.name, type: "extendedtest",
'system.skill': skill.name}])
//console.log("Task", cumulativeTask)
rollData.taskId = extendedTest[0].id
}else {
rollData.taskId = extendedTest[0].id
}
}
this.startRoll(rollData) this.startRoll(rollData)
} }
} }
@ -649,10 +698,10 @@ export class DarkStarsActor extends Actor {
rollWeapon(weaponId) { rollWeapon(weaponId) {
let weapon = this.items.get(weaponId) let weapon = this.items.get(weaponId)
if (weapon) { if (weapon) {
weapon = duplicate(weapon) weapon = foundry.utils.duplicate(weapon)
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase()) let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase())
if (skill) { if (skill) {
skill = duplicate(skill) skill = foundry.utils.duplicate(skill)
this.updateSkill(skill) this.updateSkill(skill)
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.mode = "weapon" rollData.mode = "weapon"

View File

@ -21,7 +21,7 @@ export class DarkStarsCombat extends Combat {
for (let cId of ids) { for (let cId of ids) {
const c = this.combatants.get(cId); const c = this.combatants.get(cId);
let id = c._id || c.id; let id = c._id || c.id;
let initScore = c.actor ? c.actor.getInitiativeScore(this.id, id) : -1; let initScore = c.actor ? await c.actor.getInitiativeScore(this.id, id) : -1;
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: initScore }]); await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: initScore }]);
setTimeout(() => this.processOtherTurns(c, initScore), 400) setTimeout(() => this.processOtherTurns(c, initScore), 400)
} }

View File

@ -1,6 +1,72 @@
export const DARKSTARS_CONFIG = { export const DARKSTARS_CONFIG = {
sizeOptions: {
"1": "Tiny",
"2": "Small",
"3": "Medium",
"4": "Large",
"5": "Huge",
"6": "Gargantuan"
},
classNPC: {
"none": "None",
"chaplain": "Chaplain",
"magus": "Magus",
"martial": "Martial",
"skalawag": "Skalawag",
"warden": "Warden"
},
synergyBonus: {
"0": "0",
"5": "+5%",
"+6": "+6%",
"+7": "+7%",
"+8": "+8%",
"+9": "+9%",
"+10": "+10%"
},
attributeModifier: [
{value: "0", label: "None"},
{value: "-1", label: "Difficult (-1)"},
{value: "-3", label: "Hard (-3)"},
{value: "-6", label: "Very Hard (-6)"},
{value: "-9", label: "Impossible (-9)"}
],
weaponAiming: {
"none": "None",
" arm": "Arm (-50)",
"head": "Head (-50)",
"torso": "Torso(-30)",
"leg": "Leg (-30)",
"hand": "Hand/Weapon (-70)"
},
rollModifiers: [
{ "value": "-80", "label": "-80%" },
{ "value": "-70", "label": "-70%" },
{ "value": "-60", "label": "-60%" },
{ "value": "-50", "label": "-50%" },
{ "value": "-40", "label": "-40%" },
{ "value": "-30", "label": "-30%" },
{ "value": "-20", "label": "-20%" },
{ "value": "-10", "label": "-10%" },
{ "value": "0", "label": "0%" },
{ "value": "+10", "label": "+10%" },
{ "value": "+20", "label": "+20%" },
{ "value": "+30", "label": "+30%" },
{ "value": "+40", "label": "+40%" }
],
abilityValues: {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8"
},
basebonus : { basebonus : {
"csb": "CSB", "csb": "CSB",
"ssb": "SSB", "ssb": "SSB",
@ -32,7 +98,8 @@ export const DARKSTARS_CONFIG = {
perktypes: { perktypes: {
"normal": "Normal", "normal": "Normal",
"advanced": "Advanced", "advanced": "Advanced",
"role": "Role" "role": "Role",
"job": "Job"
}, },
magicTypes: { magicTypes: {
"lemurian": "Lemurian", "lemurian": "Lemurian",

View File

@ -9,7 +9,7 @@ export class DarkStarsItemSheet extends ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-dark-stars", "sheet", "item"], classes: ["fvtt-dark-stars", "sheet", "item"],
template: "systems/fvtt-dark-stars/templates/items/item-sheet.hbs", template: "systems/fvtt-dark-stars/templates/items/item-sheet.hbs",
dragDrop: [{ dragSelector: null, dropSelector: null }], dragDrop: [{ dragSelector: null, dropSelector: null }],
@ -49,7 +49,7 @@ export class DarkStarsItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
let objectData = duplicate(this.object.system) let objectData = foundry.utils.duplicate(this.object.system)
let formData = { let formData = {
title: this.title, title: this.title,
@ -87,7 +87,7 @@ export class DarkStarsItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
postItem() { postItem() {
let chatData = duplicate(DarkStarsUtility.data(this.item)); let chatData = foundry.utils.duplicate(DarkStarsUtility.data(this.item));
if (this.actor) { if (this.actor) {
chatData.actor = { id: this.actor.id }; chatData.actor = { id: this.actor.id };
} }

View File

@ -18,6 +18,7 @@ import { DarkStarsItem } from "./dark-stars-item.js";
import { DarkStarsHotbar } from "./dark-stars-hotbar.js" import { DarkStarsHotbar } from "./dark-stars-hotbar.js"
import { DarkStarsCommands } from "./dark-stars-commands.js" import { DarkStarsCommands } from "./dark-stars-commands.js"
import { DARKSTARS_CONFIG } from "./dark-stars-config.js"; import { DARKSTARS_CONFIG } from "./dark-stars-config.js";
import { ClassCounter} from "https://www.uberwald.me/fvtt_appcount/count-class-ready.js"
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Foundry VTT Initialization */ /* Foundry VTT Initialization */
@ -91,15 +92,11 @@ Hooks.once("ready", function () {
}); });
} }
// CSS patch for v9
if (game.version) {
let sidebar = document.getElementById("sidebar");
sidebar.style.width = "min-content";
}
welcomeMessage(); welcomeMessage();
DarkStarsUtility.ready() DarkStarsUtility.ready()
DarkStarsCommands.init() DarkStarsCommands.init()
ClassCounter.registerUsageCount()
}) })
/* -------------------------------------------- */ /* -------------------------------------------- */

View File

@ -11,7 +11,7 @@ export class DarkStarsNPCSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["dark-stars-rpg", "sheet", "actor"], classes: ["dark-stars-rpg", "sheet", "actor"],
template: "systems/fvtt-dark-stars/templates/npc-sheet.hbs", template: "systems/fvtt-dark-stars/templates/npc-sheet.hbs",
width: 640, width: 640,
@ -25,7 +25,7 @@ export class DarkStarsNPCSheet extends ActorSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
const objectData = this.object.system const objectData = this.object.system
let actorData = duplicate(objectData) let actorData = foundry.utils.duplicate(objectData)
let formData = { let formData = {
title: this.title, title: this.title,
@ -38,21 +38,22 @@ export class DarkStarsNPCSheet extends ActorSheet {
data: actorData, data: actorData,
limited: this.object.limited, limited: this.object.limited,
skills: this.actor.getSkills( ), skills: this.actor.getSkills( ),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ), weapons: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getWeapons()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())), armors: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())), shields: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getShields())),
spells: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getLore())), spells: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getLore())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ), equipments: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquipmentsOnly()) ),
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ), equippedWeapons: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquippedWeapons()) ),
equippedArmor: this.actor.getEquippedArmor(), equippedArmor: this.actor.getEquippedArmor(),
equippedShield: this.actor.getEquippedShield(), equippedShield: this.actor.getEquippedShield(),
feats: duplicate(this.actor.getFeats()), feats: foundry.utils.duplicate(this.actor.getFeats()),
subActors: duplicate(this.actor.getSubActors()), subActors: foundry.utils.duplicate(this.actor.getSubActors()),
race: duplicate(this.actor.getRace()), race: foundry.utils.duplicate(this.actor.getRace()),
moneys: duplicate(this.actor.getMoneys()), moneys: foundry.utils.duplicate(this.actor.getMoneys()),
encCapacity: this.actor.getEncumbranceCapacity(), encCapacity: this.actor.getEncumbranceCapacity(),
saveRolls: this.actor.getSaveRoll(), saveRolls: this.actor.getSaveRoll(),
conditions: this.actor.getConditions(), conditions: this.actor.getConditions(),
config: game.system.darkstars.config,
containersTree: this.actor.containersTree, containersTree: this.actor.containersTree,
encCurrent: this.actor.encCurrent, encCurrent: this.actor.encCurrent,
options: this.options, options: this.options,

View File

@ -67,8 +67,14 @@ export class DarkStarsRollDialog extends Dialog {
html.find('#weapon-aiming').change((event) => { html.find('#weapon-aiming').change((event) => {
this.rollData.weaponAiming = String(event.currentTarget.value) this.rollData.weaponAiming = String(event.currentTarget.value)
}) })
html.find('#synergy-bonus').change((event) => {
this.rollData.synergyBonus = Number(event.currentTarget.value)
})
html.find('#extra-time').change((event) => {
this.rollData.extraTime = event.currentTarget.checked
})
html.find('#attribute-modifier').change((event) => {
this.rollData.attributeModifier = Number(event.currentTarget.value)
})
} }
} }

View File

@ -11,9 +11,7 @@ export class DarkStarsUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async init() { static async init() {
Hooks.on('renderChatLog', (log, html, data) => DarkStarsUtility.chatListeners(html)); Hooks.on('renderChatLog', (log, html, data) => DarkStarsUtility.chatListeners(html));
/*Hooks.on("dropCanvasData", (canvas, data) => { Hooks.on('renderChatMessage', (message, html, data) => DarkStarsUtility.chatMessageHandler(message, html, data))
DarkStarsUtility.dropItemOnToken(canvas, data)
});*/
DarkStarsCommands.init(); DarkStarsCommands.init();
@ -43,13 +41,28 @@ export class DarkStarsUtility {
return __locationNames[key] return __locationNames[key]
}) })
this.gameSettings()
} }
/*-------------------------------------------- */ /*-------------------------------------------- */
static gameSettings() { static async processOpposed(rollData) {
if (this.currentOpposition) {
let opposed = {
winner: this.currentOpposition,
looser: rollData,
isOpposed : true
}
if (rollData.degrees > this.currentOpposition.degrees ) {
opposed.winner = rollData
opposed.looser = this.currentOpposition
}
let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-dark-stars/templates/chat/chat-opposition-result.hbs`, opposed)
})
await msg.setFlag("world", "darkstars-roll-data", opposed)
} else {
this.currentOpposition = rollData
ui.notifications.info("Opposed rolls started with " + rollData.alias );
}
} }
/*-------------------------------------------- */ /*-------------------------------------------- */
@ -60,14 +73,13 @@ export class DarkStarsUtility {
/*-------------------------------------------- */ /*-------------------------------------------- */
static getSkills() { static getSkills() {
return duplicate(this.skills) return foundry.utils.duplicate(this.skills)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static async ready() { static async ready() {
const skills = await DarkStarsUtility.loadCompendium("fvtt-dark-stars.skills") const skills = await DarkStarsUtility.loadCompendium("fvtt-dark-stars.sprawl");
this.skills = skills.map(i => i.toObject()) this.skills = skills.filter(i => i.type == "skill").map(i => i.toObject());
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -97,6 +109,13 @@ export class DarkStarsUtility {
rollData.roll = undefined rollData.roll = undefined
this.rollDarkStars(rollData) this.rollDarkStars(rollData)
}) })
html.on("click", '.chat-roll-opposed', event => {
let messageId = this.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "darkstars-roll-data")
this.processOpposed(rollData)
})
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -104,10 +123,8 @@ export class DarkStarsUtility {
const templatePaths = [ const templatePaths = [
'systems/fvtt-dark-stars/templates/partials/editor-notes-gm.hbs', 'systems/fvtt-dark-stars/templates/partials/editor-notes-gm.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-roll-select.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-actor-ability-block.hbs', 'systems/fvtt-dark-stars/templates/partials/partial-actor-ability-block.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-actor-status.hbs', 'systems/fvtt-dark-stars/templates/partials/partial-actor-status.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-options-abilities.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-item-nav.hbs', 'systems/fvtt-dark-stars/templates/partials/partial-item-nav.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-item-description.hbs', 'systems/fvtt-dark-stars/templates/partials/partial-item-description.hbs',
'systems/fvtt-dark-stars/templates/partials/partial-actor-equipment.hbs' 'systems/fvtt-dark-stars/templates/partials/partial-actor-equipment.hbs'
@ -276,12 +293,41 @@ export class DarkStarsUtility {
static async rollDarkStars(rollData) { static async rollDarkStars(rollData) {
let actor = game.actors.get(rollData.actorId) let actor = game.actors.get(rollData.actorId)
if (rollData.tokenId) {
actor = game.canvas.tokens.get(rollData.tokenId).actor
}
// Specific attribute
if (rollData.attr) {
rollData.isSuccess = false
rollData.isFailure = false
rollData.targetNumber = Math.max( rollData.attr.value + rollData.attributeModifier, 0)
let myRoll = await new Roll("1d10").roll()
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
if (myRoll.total <= rollData.targetNumber) {
rollData.isSuccess = true
rollData.isFailure = false
}
rollData.roll = foundry.utils.duplicate(myRoll)
rollData.diceResult = myRoll.total
let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-dark-stars/templates/chat/chat-attribute-result.hbs`, rollData)
})
msg.setFlag("world", "darkstars-roll-data", rollData)
return
}
// ability/save/size => 0 // ability/save/size => 0
rollData.percentValue = 0 rollData.percentValue = 0
if (rollData.skill) { if (rollData.skill) {
rollData.percentValue = rollData.skill.total rollData.percentValue = rollData.skill.total
} }
if (rollData.synergyBonus) {
rollData.percentValue += rollData.synergyBonus
}
if (rollData.extraTime) {
rollData.percentValue += 30
}
rollData.percentValue += rollData.bonusMalus rollData.percentValue += rollData.bonusMalus
rollData.diceFormula = "1d100" rollData.diceFormula = "1d100"
@ -294,20 +340,21 @@ export class DarkStarsUtility {
rollData.locationMalus = this.getAimingMalus(rollData.weaponAiming) rollData.locationMalus = this.getAimingMalus(rollData.weaponAiming)
rollData.percentValue += rollData.locationMalus rollData.percentValue += rollData.locationMalus
} }
rollData.percentValue = Math.max(rollData.percentValue, 0)
// Performs roll // Performs roll
console.log("Roll formula", rollData.diceFormula)
let myRoll = rollData.roll let myRoll = rollData.roll
if (!myRoll) { // New rolls only of no rerolls if (!myRoll) { // New rolls only of no rerolls
myRoll = new Roll(rollData.diceFormula).roll({ async: false }) myRoll = await new Roll(rollData.diceFormula).roll()
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
} }
rollData.roll = duplicate(myRoll) rollData.roll = foundry.utils.duplicate(myRoll)
rollData.diceResult = myRoll.total rollData.diceResult = myRoll.total
rollData.isCriticalSuccess = rollData.diceResult <= rollData.skill.derivated.value rollData.isCriticalSuccess = rollData.diceResult <= rollData.skill.derivated.value
rollData.isCriticalFailure = rollData.diceResult == 100 rollData.isCriticalFailure = rollData.diceResult == 100
rollData.isSuccess = rollData.diceResult == 1 || rollData.diceResult <= rollData.percentValue rollData.isSuccess = rollData.diceResult == 1 || rollData.diceResult <= rollData.percentValue
rollData.isFailure = rollData.diceResult == 100 || rollData.diceResult > rollData.percentValue rollData.isFailure = rollData.diceResult == 100 || rollData.diceResult > rollData.percentValue
rollData.degrees = Math.floor(rollData.percentValue / 10) - Math.floor(rollData.diceResult / 10) rollData.degrees = Math.floor((rollData.percentValue - rollData.diceResult) / 10)
rollData.damageMultiplier = rollData.isCriticalSuccess ? 2 : 1 rollData.damageMultiplier = rollData.isCriticalSuccess ? 2 : 1
if (rollData.reroll) { if (rollData.reroll) {
@ -324,6 +371,20 @@ export class DarkStarsUtility {
rollData.locationMultiplier = this.locationMultiplier(rollData.weaponAiming) rollData.locationMultiplier = this.locationMultiplier(rollData.weaponAiming)
} }
// Task management
if (rollData.taskId) {
let task = actor.getItem(rollData.taskId)
console.log(" Task", task, rollData.taskId)
if (task) {
let newCumulated = rollData.degrees + task.system.cumulated
let nbrolls = task.system.nbrolls + 1
task.update({ 'system.cumulated': newCumulated, 'system.nbrolls': nbrolls })
rollData.taskName = task.name
rollData.taskCumulated = newCumulated
rollData.taskNbrolls = nbrolls
}
}
let msg = await this.createChatWithRollMode(rollData.alias, { let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-dark-stars/templates/chat/chat-generic-result.hbs`, rollData) content: await renderTemplate(`systems/fvtt-dark-stars/templates/chat/chat-generic-result.hbs`, rollData)
}) })
@ -351,6 +412,19 @@ export class DarkStarsUtility {
static getUsers(filter) { static getUsers(filter) {
return game.users.filter(filter).map(user => user.id); return game.users.filter(filter).map(user => user.id);
} }
/* -------------------------------------------- */
static async chatMessageHandler(message, html, data) {
const chatCard = html.find('.gm-actions')
if (chatCard.length > 0) {
// If the user is the message author or the actor owner, proceed
const actor = game.actors.get(data.message.speaker.actor)
if (actor?.isOwner) return
else if (game.user.isGM || data.author.id === game.user.id) return
const divButtons = chatCard.find('.gm-actions')
divButtons.hide()
}
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static getWhisperRecipients(rollMode, name) { static getWhisperRecipients(rollMode, name) {
switch (rollMode) { switch (rollMode) {
@ -368,7 +442,7 @@ export class DarkStarsUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static blindMessageToGM(chatOptions) { static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions); let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM); chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content; chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM); console.log("blindMessageToGM", chatGM);
@ -429,11 +503,15 @@ export class DarkStarsUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static getBasicRollData() { static getBasicRollData() {
let rollData = { let rollData = {
rollId: randomID(16), rollId: foundry.utils.randomID(16),
rollMode: game.settings.get("core", "rollMode"), rollMode: game.settings.get("core", "rollMode"),
bonusMalus: 0, bonusMalus: 0,
isAboveEffectiveRange: false, isAboveEffectiveRange: false,
weaponAiming: "none" weaponAiming: "none",
synergyBonus: 0,
extraTime: false,
attributeModifier: 0,
config: game.system.darkstars.config,
} }
DarkStarsUtility.updateWithTarget(rollData) DarkStarsUtility.updateWithTarget(rollData)
return rollData return rollData

6
packs/.directory Normal file
View File

@ -0,0 +1,6 @@
[Dolphin]
HeaderColumnWidths=301,118,148,122
Timestamp=2024,1,26,8,35,29.906
Version=4
ViewMode=1
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails

BIN
packs/aldebaran/000119.ldb Normal file

Binary file not shown.

1
packs/aldebaran/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000208

7
packs/aldebaran/LOG Normal file
View File

@ -0,0 +1,7 @@
2024/06/12-11:13:40.413261 7f3f0d6006c0 Recovering log #206
2024/06/12-11:13:40.424230 7f3f0d6006c0 Delete type=3 #204
2024/06/12-11:13:40.424287 7f3f0d6006c0 Delete type=0 #206
2024/06/12-11:16:23.489560 7f3f060006c0 Level-0 table #211: started
2024/06/12-11:16:23.489605 7f3f060006c0 Level-0 table #211: 0 bytes OK
2024/06/12-11:16:23.520840 7f3f060006c0 Delete type=0 #209
2024/06/12-11:16:23.590686 7f3f060006c0 Manual compaction at level-0 from '!folders!MA6uFJMVebGeayIk' @ 72057594037927935 : 1 .. '!items!zhjdppKgrON7wJn7' @ 0 : 0; will stop at (end)

7
packs/aldebaran/LOG.old Normal file
View File

@ -0,0 +1,7 @@
2024/06/12-11:13:16.247740 7f3f0ea006c0 Recovering log #202
2024/06/12-11:13:16.258091 7f3f0ea006c0 Delete type=3 #200
2024/06/12-11:13:16.258153 7f3f0ea006c0 Delete type=0 #202
2024/06/12-11:13:34.719686 7f3f060006c0 Level-0 table #207: started
2024/06/12-11:13:34.719708 7f3f060006c0 Level-0 table #207: 0 bytes OK
2024/06/12-11:13:34.726803 7f3f060006c0 Delete type=0 #205
2024/06/12-11:13:34.733250 7f3f060006c0 Manual compaction at level-0 from '!folders!MA6uFJMVebGeayIk' @ 72057594037927935 : 1 .. '!items!zhjdppKgrON7wJn7' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/armor/000186.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000142 MANIFEST-000199

View File

@ -1,8 +1,8 @@
2023/10/29-23:31:17.929984 7f56117fa6c0 Recovering log #140 2024/02/25-13:11:04.806524 7f0422a006c0 Recovering log #197
2023/10/29-23:31:17.982863 7f56117fa6c0 Delete type=3 #138 2024/02/25-13:11:04.817703 7f0422a006c0 Delete type=3 #195
2023/10/29-23:31:17.982953 7f56117fa6c0 Delete type=0 #140 2024/02/25-13:11:04.817799 7f0422a006c0 Delete type=0 #197
2023/10/29-23:37:49.276844 7f56037fe6c0 Level-0 table #145: started 2024/02/25-13:14:07.532693 7f0421a006c0 Level-0 table #202: started
2023/10/29-23:37:49.276878 7f56037fe6c0 Level-0 table #145: 0 bytes OK 2024/02/25-13:14:07.532731 7f0421a006c0 Level-0 table #202: 0 bytes OK
2023/10/29-23:37:49.283239 7f56037fe6c0 Delete type=0 #143 2024/02/25-13:14:07.539153 7f0421a006c0 Delete type=0 #200
2023/10/29-23:37:49.283442 7f56037fe6c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.539281 7f0421a006c0 Manual compaction at level-0 from '!items!0JWjCJaD6OOouqTj' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
2023/10/29-23:37:49.283477 7f56037fe6c0 Manual compaction at level-1 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.539306 7f0421a006c0 Manual compaction at level-1 from '!items!0JWjCJaD6OOouqTj' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/10/29-23:18:03.263368 7f5610ff96c0 Recovering log #136 2024/02/25-13:04:05.224949 7f0428e006c0 Recovering log #193
2023/10/29-23:18:03.272973 7f5610ff96c0 Delete type=3 #134 2024/02/25-13:04:05.236046 7f0428e006c0 Delete type=3 #191
2023/10/29-23:18:03.273033 7f5610ff96c0 Delete type=0 #136 2024/02/25-13:04:05.236134 7f0428e006c0 Delete type=0 #193
2023/10/29-23:22:59.114098 7f56037fe6c0 Level-0 table #141: started 2024/02/25-13:10:09.480522 7f0421a006c0 Level-0 table #198: started
2023/10/29-23:22:59.114130 7f56037fe6c0 Level-0 table #141: 0 bytes OK 2024/02/25-13:10:09.480555 7f0421a006c0 Level-0 table #198: 0 bytes OK
2023/10/29-23:22:59.122977 7f56037fe6c0 Delete type=0 #139 2024/02/25-13:10:09.486678 7f0421a006c0 Delete type=0 #196
2023/10/29-23:22:59.137181 7f56037fe6c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.493365 7f0421a006c0 Manual compaction at level-0 from '!items!0JWjCJaD6OOouqTj' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
2023/10/29-23:22:59.143842 7f56037fe6c0 Manual compaction at level-1 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.499939 7f0421a006c0 Manual compaction at level-1 from '!items!0JWjCJaD6OOouqTj' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/armor/MANIFEST-000199 Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
MANIFEST-000201

View File

@ -0,0 +1,7 @@
2024/06/12-11:13:40.426654 7f3f0ea006c0 Recovering log #199
2024/06/12-11:13:40.437435 7f3f0ea006c0 Delete type=3 #197
2024/06/12-11:13:40.437506 7f3f0ea006c0 Delete type=0 #199
2024/06/12-11:16:23.521086 7f3f060006c0 Level-0 table #204: started
2024/06/12-11:16:23.521151 7f3f060006c0 Level-0 table #204: 0 bytes OK
2024/06/12-11:16:23.553911 7f3f060006c0 Delete type=0 #202
2024/06/12-11:16:23.590700 7f3f060006c0 Manual compaction at level-0 from '!folders!47aGmBuk1mHtbFFU' @ 72057594037927935 : 1 .. '!items!zwMpjsE84sk26eej' @ 0 : 0; will stop at (end)

View File

@ -0,0 +1,7 @@
2024/06/12-11:13:16.262812 7f3f0d6006c0 Recovering log #195
2024/06/12-11:13:16.272606 7f3f0d6006c0 Delete type=3 #193
2024/06/12-11:13:16.272662 7f3f0d6006c0 Delete type=0 #195
2024/06/12-11:13:34.727044 7f3f060006c0 Level-0 table #200: started
2024/06/12-11:13:34.727098 7f3f060006c0 Level-0 table #200: 0 bytes OK
2024/06/12-11:13:34.733076 7f3f060006c0 Delete type=0 #198
2024/06/12-11:13:34.733265 7f3f060006c0 Manual compaction at level-0 from '!folders!47aGmBuk1mHtbFFU' @ 72057594037927935 : 1 .. '!items!zwMpjsE84sk26eej' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000142 MANIFEST-000254

View File

@ -1,7 +1,7 @@
2023/10/29-23:31:18.172067 7f56117fa6c0 Recovering log #140 2024/06/12-11:13:40.356313 7f3f0d6006c0 Recovering log #252
2023/10/29-23:31:18.222141 7f56117fa6c0 Delete type=3 #138 2024/06/12-11:13:40.366003 7f3f0d6006c0 Delete type=3 #250
2023/10/29-23:31:18.222239 7f56117fa6c0 Delete type=0 #140 2024/06/12-11:13:40.366126 7f3f0d6006c0 Delete type=0 #252
2023/10/29-23:37:49.304351 7f56037fe6c0 Level-0 table #145: started 2024/06/12-11:16:23.317811 7f3f060006c0 Level-0 table #257: started
2023/10/29-23:37:49.304405 7f56037fe6c0 Level-0 table #145: 0 bytes OK 2024/06/12-11:16:23.317841 7f3f060006c0 Level-0 table #257: 0 bytes OK
2023/10/29-23:37:49.310587 7f56037fe6c0 Delete type=0 #143 2024/06/12-11:16:23.355645 7f3f060006c0 Delete type=0 #255
2023/10/29-23:37:49.310811 7f56037fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2024/06/12-11:16:23.460439 7f3f060006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2023/10/29-23:18:03.312598 7f5610ff96c0 Recovering log #136 2024/06/12-11:13:16.189039 7f3f0ea006c0 Recovering log #248
2023/10/29-23:18:03.323841 7f5610ff96c0 Delete type=3 #134 2024/06/12-11:13:16.200829 7f3f0ea006c0 Delete type=3 #246
2023/10/29-23:18:03.323912 7f5610ff96c0 Delete type=0 #136 2024/06/12-11:13:16.200927 7f3f0ea006c0 Delete type=0 #248
2023/10/29-23:22:59.143970 7f56037fe6c0 Level-0 table #141: started 2024/06/12-11:13:34.657802 7f3f060006c0 Level-0 table #253: started
2023/10/29-23:22:59.144000 7f56037fe6c0 Level-0 table #141: 0 bytes OK 2024/06/12-11:13:34.657837 7f3f060006c0 Level-0 table #253: 0 bytes OK
2023/10/29-23:22:59.150731 7f56037fe6c0 Delete type=0 #139 2024/06/12-11:13:34.663971 7f3f060006c0 Delete type=0 #251
2023/10/29-23:22:59.169945 7f56037fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2024/06/12-11:13:34.681143 7f3f060006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000142 MANIFEST-000254

View File

@ -1,7 +1,7 @@
2023/10/29-23:31:18.223966 7f5611ffb6c0 Recovering log #140 2024/06/12-11:13:40.368093 7f3f0ea006c0 Recovering log #252
2023/10/29-23:31:18.265607 7f5611ffb6c0 Delete type=3 #138 2024/06/12-11:13:40.379978 7f3f0ea006c0 Delete type=3 #250
2023/10/29-23:31:18.265707 7f5611ffb6c0 Delete type=0 #140 2024/06/12-11:13:40.380078 7f3f0ea006c0 Delete type=0 #252
2023/10/29-23:37:49.310911 7f56037fe6c0 Level-0 table #145: started 2024/06/12-11:16:23.408873 7f3f060006c0 Level-0 table #257: started
2023/10/29-23:37:49.311047 7f56037fe6c0 Level-0 table #145: 0 bytes OK 2024/06/12-11:16:23.408929 7f3f060006c0 Level-0 table #257: 0 bytes OK
2023/10/29-23:37:49.317632 7f56037fe6c0 Delete type=0 #143 2024/06/12-11:16:23.460072 7f3f060006c0 Delete type=0 #255
2023/10/29-23:37:49.337853 7f56037fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2024/06/12-11:16:23.460493 7f3f060006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2023/10/29-23:18:03.325846 7f5611ffb6c0 Recovering log #136 2024/06/12-11:13:16.204139 7f3f0d6006c0 Recovering log #248
2023/10/29-23:18:03.335459 7f5611ffb6c0 Delete type=3 #134 2024/06/12-11:13:16.215399 7f3f0d6006c0 Delete type=3 #246
2023/10/29-23:18:03.335539 7f5611ffb6c0 Delete type=0 #136 2024/06/12-11:13:16.215490 7f3f0d6006c0 Delete type=0 #248
2023/10/29-23:22:59.150864 7f56037fe6c0 Level-0 table #141: started 2024/06/12-11:13:34.692534 7f3f060006c0 Level-0 table #253: started
2023/10/29-23:22:59.150893 7f56037fe6c0 Level-0 table #141: 0 bytes OK 2024/06/12-11:13:34.692577 7f3f060006c0 Level-0 table #253: 0 bytes OK
2023/10/29-23:22:59.156833 7f56037fe6c0 Delete type=0 #139 2024/06/12-11:13:34.698872 7f3f060006c0 Delete type=0 #251
2023/10/29-23:22:59.169957 7f56037fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2024/06/12-11:13:34.713306 7f3f060006c0 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.

View File

@ -1 +1 @@
MANIFEST-000071 MANIFEST-000128

View File

@ -1,8 +1,8 @@
2023/10/29-23:31:18.438487 7f56117fa6c0 Recovering log #69 2024/02/25-13:11:04.911848 7f0422a006c0 Recovering log #126
2023/10/29-23:31:18.492811 7f56117fa6c0 Delete type=3 #67 2024/02/25-13:11:04.922320 7f0422a006c0 Delete type=3 #124
2023/10/29-23:31:18.492904 7f56117fa6c0 Delete type=0 #69 2024/02/25-13:11:04.922392 7f0422a006c0 Delete type=0 #126
2023/10/29-23:37:49.324508 7f56037fe6c0 Level-0 table #74: started 2024/02/25-13:14:07.578457 7f0421a006c0 Level-0 table #131: started
2023/10/29-23:37:49.324550 7f56037fe6c0 Level-0 table #74: 0 bytes OK 2024/02/25-13:14:07.578513 7f0421a006c0 Level-0 table #131: 0 bytes OK
2023/10/29-23:37:49.330736 7f56037fe6c0 Delete type=0 #72 2024/02/25-13:14:07.585654 7f0421a006c0 Delete type=0 #129
2023/10/29-23:37:49.337897 7f56037fe6c0 Manual compaction at level-0 from '!items!0SbSmYdxJSlcNr6x' @ 72057594037927935 : 1 .. '!items!yyCPVVl8vmMOfPcN' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.592632 7f0421a006c0 Manual compaction at level-0 from '!items!0SbSmYdxJSlcNr6x' @ 72057594037927935 : 1 .. '!items!yyCPVVl8vmMOfPcN' @ 0 : 0; will stop at (end)
2023/10/29-23:37:49.337946 7f56037fe6c0 Manual compaction at level-1 from '!items!0SbSmYdxJSlcNr6x' @ 72057594037927935 : 1 .. '!items!yyCPVVl8vmMOfPcN' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.592676 7f0421a006c0 Manual compaction at level-1 from '!items!0SbSmYdxJSlcNr6x' @ 72057594037927935 : 1 .. '!items!yyCPVVl8vmMOfPcN' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/10/29-23:18:03.364440 7f5610ff96c0 Recovering log #64 2024/02/25-13:04:05.332283 7f0428e006c0 Recovering log #122
2023/10/29-23:18:03.373971 7f5610ff96c0 Delete type=3 #62 2024/02/25-13:04:05.343337 7f0428e006c0 Delete type=3 #120
2023/10/29-23:18:03.374029 7f5610ff96c0 Delete type=0 #64 2024/02/25-13:04:05.343387 7f0428e006c0 Delete type=0 #122
2023/10/29-23:22:59.170102 7f56037fe6c0 Level-0 table #70: started 2024/02/25-13:10:09.539934 7f0421a006c0 Level-0 table #127: started
2023/10/29-23:22:59.170132 7f56037fe6c0 Level-0 table #70: 0 bytes OK 2024/02/25-13:10:09.539956 7f0421a006c0 Level-0 table #127: 0 bytes OK
2023/10/29-23:22:59.176387 7f56037fe6c0 Delete type=0 #68 2024/02/25-13:10:09.546327 7f0421a006c0 Delete type=0 #125
2023/10/29-23:22:59.184020 7f56037fe6c0 Manual compaction at level-0 from '!items!0SbSmYdxJSlcNr6x' @ 72057594037927935 : 1 .. '!items!yyCPVVl8vmMOfPcN' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.552649 7f0421a006c0 Manual compaction at level-0 from '!items!0SbSmYdxJSlcNr6x' @ 72057594037927935 : 1 .. '!items!yyCPVVl8vmMOfPcN' @ 0 : 0; will stop at (end)
2023/10/29-23:22:59.184054 7f56037fe6c0 Manual compaction at level-1 from '!items!0SbSmYdxJSlcNr6x' @ 72057594037927935 : 1 .. '!items!yyCPVVl8vmMOfPcN' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.552755 7f0421a006c0 Manual compaction at level-1 from '!items!0SbSmYdxJSlcNr6x' @ 72057594037927935 : 1 .. '!items!yyCPVVl8vmMOfPcN' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
MANIFEST-000066

8
packs/darkstars-sf/LOG Normal file
View File

@ -0,0 +1,8 @@
2024/06/12-11:13:40.398008 7f3f0d6006c0 Recovering log #64
2024/06/12-11:13:40.408278 7f3f0d6006c0 Delete type=3 #62
2024/06/12-11:13:40.408353 7f3f0d6006c0 Delete type=0 #64
2024/06/12-11:16:23.554104 7f3f060006c0 Level-0 table #69: started
2024/06/12-11:16:23.554144 7f3f060006c0 Level-0 table #69: 0 bytes OK
2024/06/12-11:16:23.590465 7f3f060006c0 Delete type=0 #67
2024/06/12-11:16:23.590737 7f3f060006c0 Manual compaction at level-0 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
2024/06/12-11:16:23.590756 7f3f060006c0 Manual compaction at level-1 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)

View File

@ -0,0 +1,8 @@
2024/06/12-11:13:16.233304 7f3f0ea006c0 Recovering log #60
2024/06/12-11:13:16.243341 7f3f0ea006c0 Delete type=3 #58
2024/06/12-11:13:16.243395 7f3f0ea006c0 Delete type=0 #60
2024/06/12-11:13:34.713340 7f3f060006c0 Level-0 table #65: started
2024/06/12-11:13:34.713379 7f3f060006c0 Level-0 table #65: 0 bytes OK
2024/06/12-11:13:34.719558 7f3f060006c0 Delete type=0 #63
2024/06/12-11:13:34.733213 7f3f060006c0 Manual compaction at level-0 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)
2024/06/12-11:13:34.733290 7f3f060006c0 Manual compaction at level-1 from '!folders!La3YsNYFddQnmsba' @ 72057594037927935 : 1 .. '!items!zzDfuUJpQzzz262R' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/equipment/000186.ldb Normal file

Binary file not shown.

View File

View File

@ -1 +1 @@
MANIFEST-000142 MANIFEST-000199

View File

@ -1,8 +1,8 @@
2023/10/29-23:31:17.984959 7f5611ffb6c0 Recovering log #140 2024/02/25-13:11:04.819236 7f0428e006c0 Recovering log #197
2023/10/29-23:31:18.036613 7f5611ffb6c0 Delete type=3 #138 2024/02/25-13:11:04.829162 7f0428e006c0 Delete type=3 #195
2023/10/29-23:31:18.036664 7f5611ffb6c0 Delete type=0 #140 2024/02/25-13:11:04.829232 7f0428e006c0 Delete type=0 #197
2023/10/29-23:37:49.283537 7f56037fe6c0 Level-0 table #145: started 2024/02/25-13:14:07.545758 7f0421a006c0 Level-0 table #202: started
2023/10/29-23:37:49.283589 7f56037fe6c0 Level-0 table #145: 0 bytes OK 2024/02/25-13:14:07.545813 7f0421a006c0 Level-0 table #202: 0 bytes OK
2023/10/29-23:37:49.290495 7f56037fe6c0 Delete type=0 #143 2024/02/25-13:14:07.552067 7f0421a006c0 Delete type=0 #200
2023/10/29-23:37:49.310755 7f56037fe6c0 Manual compaction at level-0 from '!items!05RVU3UcRabogEvL' @ 72057594037927935 : 1 .. '!items!xNmOdMs4rQ0yiVzg' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.565492 7f0421a006c0 Manual compaction at level-0 from '!items!05RVU3UcRabogEvL' @ 72057594037927935 : 1 .. '!items!zaxcUsWUZ1vvl0p8' @ 0 : 0; will stop at (end)
2023/10/29-23:37:49.310826 7f56037fe6c0 Manual compaction at level-1 from '!items!05RVU3UcRabogEvL' @ 72057594037927935 : 1 .. '!items!xNmOdMs4rQ0yiVzg' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.565529 7f0421a006c0 Manual compaction at level-1 from '!items!05RVU3UcRabogEvL' @ 72057594037927935 : 1 .. '!items!zaxcUsWUZ1vvl0p8' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/10/29-23:18:03.275156 7f5611ffb6c0 Recovering log #136 2024/02/25-13:04:05.239972 7f0423e006c0 Recovering log #193
2023/10/29-23:18:03.285672 7f5611ffb6c0 Delete type=3 #134 2024/02/25-13:04:05.249512 7f0423e006c0 Delete type=3 #191
2023/10/29-23:18:03.285737 7f5611ffb6c0 Delete type=0 #136 2024/02/25-13:04:05.249560 7f0423e006c0 Delete type=0 #193
2023/10/29-23:22:59.129992 7f56037fe6c0 Level-0 table #141: started 2024/02/25-13:10:09.473431 7f0421a006c0 Level-0 table #198: started
2023/10/29-23:22:59.130033 7f56037fe6c0 Level-0 table #141: 0 bytes OK 2024/02/25-13:10:09.473459 7f0421a006c0 Level-0 table #198: 0 bytes OK
2023/10/29-23:22:59.137015 7f56037fe6c0 Delete type=0 #139 2024/02/25-13:10:09.480345 7f0421a006c0 Delete type=0 #196
2023/10/29-23:22:59.143831 7f56037fe6c0 Manual compaction at level-0 from '!items!05RVU3UcRabogEvL' @ 72057594037927935 : 1 .. '!items!xNmOdMs4rQ0yiVzg' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.493344 7f0421a006c0 Manual compaction at level-0 from '!items!05RVU3UcRabogEvL' @ 72057594037927935 : 1 .. '!items!zaxcUsWUZ1vvl0p8' @ 0 : 0; will stop at (end)
2023/10/29-23:22:59.143861 7f56037fe6c0 Manual compaction at level-1 from '!items!05RVU3UcRabogEvL' @ 72057594037927935 : 1 .. '!items!xNmOdMs4rQ0yiVzg' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.499930 7f0421a006c0 Manual compaction at level-1 from '!items!05RVU3UcRabogEvL' @ 72057594037927935 : 1 .. '!items!zaxcUsWUZ1vvl0p8' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@ -1 +1 @@
MANIFEST-000019 MANIFEST-000075

View File

@ -1,8 +1,8 @@
2023/10/29-23:31:18.494918 7f5611ffb6c0 Recovering log #17 2024/02/25-13:11:04.925036 7f0428e006c0 Recovering log #73
2023/10/29-23:31:18.543367 7f5611ffb6c0 Delete type=3 #15 2024/02/25-13:11:04.935090 7f0428e006c0 Delete type=3 #71
2023/10/29-23:31:18.543420 7f5611ffb6c0 Delete type=0 #17 2024/02/25-13:11:04.935353 7f0428e006c0 Delete type=0 #73
2023/10/29-23:37:49.338046 7f56037fe6c0 Level-0 table #22: started 2024/02/25-13:14:07.585843 7f0421a006c0 Level-0 table #78: started
2023/10/29-23:37:49.338094 7f56037fe6c0 Level-0 table #22: 0 bytes OK 2024/02/25-13:14:07.585896 7f0421a006c0 Level-0 table #78: 0 bytes OK
2023/10/29-23:37:49.344365 7f56037fe6c0 Delete type=0 #20 2024/02/25-13:14:07.592513 7f0421a006c0 Delete type=0 #76
2023/10/29-23:37:49.344491 7f56037fe6c0 Manual compaction at level-0 from '!items!56A3sVsiN7KI6a45' @ 72057594037927935 : 1 .. '!items!zJiASbV3QqH2oHb1' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.592640 7f0421a006c0 Manual compaction at level-0 from '!items!56A3sVsiN7KI6a45' @ 72057594037927935 : 1 .. '!items!zJiASbV3QqH2oHb1' @ 0 : 0; will stop at (end)
2023/10/29-23:37:49.344516 7f56037fe6c0 Manual compaction at level-1 from '!items!56A3sVsiN7KI6a45' @ 72057594037927935 : 1 .. '!items!zJiASbV3QqH2oHb1' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.592670 7f0421a006c0 Manual compaction at level-1 from '!items!56A3sVsiN7KI6a45' @ 72057594037927935 : 1 .. '!items!zJiASbV3QqH2oHb1' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/10/29-23:18:03.376448 7f5611ffb6c0 Recovering log #12 2024/02/25-13:04:05.347457 7f0423e006c0 Recovering log #69
2023/10/29-23:18:03.387048 7f5611ffb6c0 Delete type=3 #10 2024/02/25-13:04:05.356885 7f0423e006c0 Delete type=3 #67
2023/10/29-23:18:03.387107 7f5611ffb6c0 Delete type=0 #12 2024/02/25-13:04:05.356934 7f0423e006c0 Delete type=0 #69
2023/10/29-23:22:59.176500 7f56037fe6c0 Level-0 table #18: started 2024/02/25-13:10:09.533502 7f0421a006c0 Level-0 table #74: started
2023/10/29-23:22:59.176528 7f56037fe6c0 Level-0 table #18: 0 bytes OK 2024/02/25-13:10:09.533526 7f0421a006c0 Level-0 table #74: 0 bytes OK
2023/10/29-23:22:59.183892 7f56037fe6c0 Delete type=0 #16 2024/02/25-13:10:09.539823 7f0421a006c0 Delete type=0 #72
2023/10/29-23:22:59.184045 7f56037fe6c0 Manual compaction at level-0 from '!items!56A3sVsiN7KI6a45' @ 72057594037927935 : 1 .. '!items!zJiASbV3QqH2oHb1' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.552630 7f0421a006c0 Manual compaction at level-0 from '!items!56A3sVsiN7KI6a45' @ 72057594037927935 : 1 .. '!items!zJiASbV3QqH2oHb1' @ 0 : 0; will stop at (end)
2023/10/29-23:22:59.184084 7f56037fe6c0 Manual compaction at level-1 from '!items!56A3sVsiN7KI6a45' @ 72057594037927935 : 1 .. '!items!zJiASbV3QqH2oHb1' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.552738 7f0421a006c0 Manual compaction at level-1 from '!items!56A3sVsiN7KI6a45' @ 72057594037927935 : 1 .. '!items!zJiASbV3QqH2oHb1' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

View File

@ -0,0 +1 @@
MANIFEST-000221

0
packs/nightborough/LOCK Normal file
View File

7
packs/nightborough/LOG Normal file
View File

@ -0,0 +1,7 @@
2024/06/12-11:13:40.440639 7f3f0d6006c0 Recovering log #219
2024/06/12-11:13:40.450523 7f3f0d6006c0 Delete type=3 #217
2024/06/12-11:13:40.450593 7f3f0d6006c0 Delete type=0 #219
2024/06/12-11:16:23.645974 7f3f060006c0 Level-0 table #224: started
2024/06/12-11:16:23.646004 7f3f060006c0 Level-0 table #224: 0 bytes OK
2024/06/12-11:16:23.683161 7f3f060006c0 Delete type=0 #222
2024/06/12-11:16:23.683408 7f3f060006c0 Manual compaction at level-0 from '!folders!2iZtDz80npHPIwkS' @ 72057594037927935 : 1 .. '!items!zyFR9C1jBTeFzbxg' @ 0 : 0; will stop at (end)

View File

@ -0,0 +1,7 @@
2024/06/12-11:13:16.276335 7f3f0ea006c0 Recovering log #215
2024/06/12-11:13:16.287074 7f3f0ea006c0 Delete type=3 #213
2024/06/12-11:13:16.287130 7f3f0ea006c0 Delete type=0 #215
2024/06/12-11:13:34.733411 7f3f060006c0 Level-0 table #220: started
2024/06/12-11:13:34.733492 7f3f060006c0 Level-0 table #220: 0 bytes OK
2024/06/12-11:13:34.741601 7f3f060006c0 Delete type=0 #218
2024/06/12-11:13:34.741825 7f3f060006c0 Manual compaction at level-0 from '!folders!2iZtDz80npHPIwkS' @ 72057594037927935 : 1 .. '!items!zyFR9C1jBTeFzbxg' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/perks/000186.ldb Normal file

Binary file not shown.

0
packs/perks/000201.log Normal file
View File

View File

@ -1 +1 @@
MANIFEST-000142 MANIFEST-000199

View File

@ -1,8 +1,8 @@
2023/10/29-23:31:18.352208 7f5610ff96c0 Recovering log #140 2024/02/25-13:11:04.899830 7f0428e006c0 Recovering log #197
2023/10/29-23:31:18.436200 7f5610ff96c0 Delete type=3 #138 2024/02/25-13:11:04.909890 7f0428e006c0 Delete type=3 #195
2023/10/29-23:31:18.436263 7f5610ff96c0 Delete type=0 #140 2024/02/25-13:11:04.909976 7f0428e006c0 Delete type=0 #197
2023/10/29-23:37:49.330846 7f56037fe6c0 Level-0 table #145: started 2024/02/25-13:14:07.614576 7f0421a006c0 Level-0 table #202: started
2023/10/29-23:37:49.330869 7f56037fe6c0 Level-0 table #145: 0 bytes OK 2024/02/25-13:14:07.614602 7f0421a006c0 Level-0 table #202: 0 bytes OK
2023/10/29-23:37:49.337661 7f56037fe6c0 Delete type=0 #143 2024/02/25-13:14:07.621467 7f0421a006c0 Delete type=0 #200
2023/10/29-23:37:49.337914 7f56037fe6c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.628014 7f0421a006c0 Manual compaction at level-0 from '!items!0K3CVEKsq67oKiYE' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/29-23:37:49.337961 7f56037fe6c0 Manual compaction at level-1 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.628055 7f0421a006c0 Manual compaction at level-1 from '!items!0K3CVEKsq67oKiYE' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/10/29-23:18:03.351155 7f56117fa6c0 Recovering log #136 2024/02/25-13:04:05.318599 7f0423e006c0 Recovering log #193
2023/10/29-23:18:03.361595 7f56117fa6c0 Delete type=3 #134 2024/02/25-13:04:05.328529 7f0423e006c0 Delete type=3 #191
2023/10/29-23:18:03.361648 7f56117fa6c0 Delete type=0 #136 2024/02/25-13:04:05.328597 7f0423e006c0 Delete type=0 #193
2023/10/29-23:22:59.163288 7f56037fe6c0 Level-0 table #141: started 2024/02/25-13:10:09.519595 7f0421a006c0 Level-0 table #198: started
2023/10/29-23:22:59.163313 7f56037fe6c0 Level-0 table #141: 0 bytes OK 2024/02/25-13:10:09.519645 7f0421a006c0 Level-0 table #198: 0 bytes OK
2023/10/29-23:22:59.169835 7f56037fe6c0 Delete type=0 #139 2024/02/25-13:10:09.526863 7f0421a006c0 Delete type=0 #196
2023/10/29-23:22:59.169984 7f56037fe6c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.527031 7f0421a006c0 Manual compaction at level-0 from '!items!0K3CVEKsq67oKiYE' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/29-23:22:59.170013 7f56037fe6c0 Manual compaction at level-1 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.527062 7f0421a006c0 Manual compaction at level-1 from '!items!0K3CVEKsq67oKiYE' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/perks/MANIFEST-000199 Normal file

Binary file not shown.

0
packs/shields/000200.log Normal file
View File

View File

@ -1 +1 @@
MANIFEST-000142 MANIFEST-000198

View File

@ -1,7 +1,7 @@
2023/10/29-23:31:18.040442 7f5603fff6c0 Recovering log #140 2024/02/25-13:11:04.832847 7f0422a006c0 Recovering log #196
2023/10/29-23:31:18.100074 7f5603fff6c0 Delete type=3 #138 2024/02/25-13:11:04.844534 7f0422a006c0 Delete type=3 #194
2023/10/29-23:31:18.100170 7f5603fff6c0 Delete type=0 #140 2024/02/25-13:11:04.844584 7f0422a006c0 Delete type=0 #196
2023/10/29-23:37:49.290582 7f56037fe6c0 Level-0 table #145: started 2024/02/25-13:14:07.539362 7f0421a006c0 Level-0 table #201: started
2023/10/29-23:37:49.290606 7f56037fe6c0 Level-0 table #145: 0 bytes OK 2024/02/25-13:14:07.539386 7f0421a006c0 Level-0 table #201: 0 bytes OK
2023/10/29-23:37:49.296703 7f56037fe6c0 Delete type=0 #143 2024/02/25-13:14:07.545589 7f0421a006c0 Delete type=0 #199
2023/10/29-23:37:49.310776 7f56037fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.565459 7f0421a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2023/10/29-23:18:03.288243 7f5603fff6c0 Recovering log #136 2024/02/25-13:04:05.255291 7f0428e006c0 Recovering log #192
2023/10/29-23:18:03.298374 7f5603fff6c0 Delete type=3 #134 2024/02/25-13:04:05.265834 7f0428e006c0 Delete type=3 #190
2023/10/29-23:18:03.298481 7f5603fff6c0 Delete type=0 #136 2024/02/25-13:04:05.265885 7f0428e006c0 Delete type=0 #192
2023/10/29-23:22:59.123190 7f56037fe6c0 Level-0 table #141: started 2024/02/25-13:10:09.486767 7f0421a006c0 Level-0 table #197: started
2023/10/29-23:22:59.123237 7f56037fe6c0 Level-0 table #141: 0 bytes OK 2024/02/25-13:10:09.486786 7f0421a006c0 Level-0 table #197: 0 bytes OK
2023/10/29-23:22:59.129849 7f56037fe6c0 Delete type=0 #139 2024/02/25-13:10:09.493210 7f0421a006c0 Delete type=0 #195
2023/10/29-23:22:59.143641 7f56037fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.499919 7f0421a006c0 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.

BIN
packs/skills/000186.ldb Normal file

Binary file not shown.

0
packs/skills/000201.log Normal file
View File

View File

@ -1 +1 @@
MANIFEST-000142 MANIFEST-000199

View File

@ -1,8 +1,8 @@
2023/10/29-23:31:18.266929 7f5603fff6c0 Recovering log #140 2024/02/25-13:11:04.885568 7f0422a006c0 Recovering log #197
2023/10/29-23:31:18.350204 7f5603fff6c0 Delete type=3 #138 2024/02/25-13:11:04.896289 7f0422a006c0 Delete type=3 #195
2023/10/29-23:31:18.350298 7f5603fff6c0 Delete type=0 #140 2024/02/25-13:11:04.896428 7f0422a006c0 Delete type=0 #197
2023/10/29-23:37:49.317738 7f56037fe6c0 Level-0 table #145: started 2024/02/25-13:14:07.572202 7f0421a006c0 Level-0 table #202: started
2023/10/29-23:37:49.317765 7f56037fe6c0 Level-0 table #145: 0 bytes OK 2024/02/25-13:14:07.572243 7f0421a006c0 Level-0 table #202: 0 bytes OK
2023/10/29-23:37:49.324369 7f56037fe6c0 Delete type=0 #143 2024/02/25-13:14:07.578291 7f0421a006c0 Delete type=0 #200
2023/10/29-23:37:49.337878 7f56037fe6c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.592622 7f0421a006c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!z3j0TW0hqigz6UP5' @ 0 : 0; will stop at (end)
2023/10/29-23:37:49.337930 7f56037fe6c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end) 2024/02/25-13:14:07.592664 7f0421a006c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!z3j0TW0hqigz6UP5' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/10/29-23:18:03.336985 7f5603fff6c0 Recovering log #136 2024/02/25-13:04:05.306405 7f0428e006c0 Recovering log #193
2023/10/29-23:18:03.348011 7f5603fff6c0 Delete type=3 #134 2024/02/25-13:04:05.315767 7f0428e006c0 Delete type=3 #191
2023/10/29-23:18:03.348152 7f5603fff6c0 Delete type=0 #136 2024/02/25-13:04:05.315959 7f0428e006c0 Delete type=0 #193
2023/10/29-23:22:59.156910 7f56037fe6c0 Level-0 table #141: started 2024/02/25-13:10:09.513533 7f0421a006c0 Level-0 table #198: started
2023/10/29-23:22:59.156932 7f56037fe6c0 Level-0 table #141: 0 bytes OK 2024/02/25-13:10:09.513561 7f0421a006c0 Level-0 table #198: 0 bytes OK
2023/10/29-23:22:59.163186 7f56037fe6c0 Delete type=0 #139 2024/02/25-13:10:09.519495 7f0421a006c0 Delete type=0 #196
2023/10/29-23:22:59.169973 7f56037fe6c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.527015 7f0421a006c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!z3j0TW0hqigz6UP5' @ 0 : 0; will stop at (end)
2023/10/29-23:22:59.170004 7f56037fe6c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end) 2024/02/25-13:10:09.527047 7f0421a006c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!z3j0TW0hqigz6UP5' @ 0 : 0; will stop at (end)

Some files were not shown because too many files have changed in this diff Show More