Compare commits
26 Commits
fvtt-dark-
...
main
Author | SHA1 | Date | |
---|---|---|---|
e92b2deacf | |||
dc4429f3e1 | |||
92684b0d32 | |||
9786c07f1b | |||
2520bec30f | |||
9ad34b4672 | |||
ae36be975d | |||
69eaa8fc66 | |||
b741cffd96 | |||
e5296a4bcd | |||
9f93849a9d | |||
14c7e54b3d | |||
ce3359b2f0 | |||
02bf6cc10a | |||
dc5a1056b7 | |||
c7ccc50db0 | |||
1f8275e153 | |||
e19e6df228 | |||
714485b688 | |||
ceed6efc0b | |||
06e265586b | |||
78edf6b80b | |||
60112d1a79 | |||
652f24b863 | |||
69322cccfe | |||
5d0c53f52b |
4
.gitignore
vendored
4
.gitignore
vendored
@ -8,7 +8,3 @@ todo.md
|
|||||||
/jsconfig.json
|
/jsconfig.json
|
||||||
/package.json
|
/package.json
|
||||||
/package-lock.json
|
/package-lock.json
|
||||||
/packs/*/
|
|
||||||
/packs/*/CURRENT
|
|
||||||
/packs/*/LOG
|
|
||||||
/packs/*/LOCK
|
|
||||||
|
BIN
images/icons/magic.webp
Normal file
BIN
images/icons/magic.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.7 KiB |
BIN
images/icons/psychicpowers.webp
Normal file
BIN
images/icons/psychicpowers.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.2 KiB |
19
lang/en.json
19
lang/en.json
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -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,18 +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()) ),
|
||||||
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
|
ammos: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getAmmos()) ),
|
||||||
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
|
spells: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getSpells()) ),
|
||||||
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
|
powers: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getPowers()) ),
|
||||||
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
|
armors: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getArmors())),
|
||||||
cybers: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getCybers()) ),
|
shields: this.actor.checkAndPrepareEquipments( foundry.utils.duplicate(this.actor.getShields())),
|
||||||
genetics: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getGenetics()) ),
|
equipments: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquipmentsOnly()) ),
|
||||||
|
equippedWeapons: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getEquippedWeapons()) ),
|
||||||
|
cybers: this.actor.checkAndPrepareEquipments(foundry.utils.duplicate(this.actor.getCybers()) ),
|
||||||
|
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,
|
||||||
@ -109,6 +114,11 @@ export class DarkStarsActorSheet extends ActorSheet {
|
|||||||
this.actor.delSubActor(actorId);
|
this.actor.delSubActor(actorId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
html.find('.edit-weapon-ammo').change(ev => {
|
||||||
|
const li = $(ev.currentTarget).parents(".item")
|
||||||
|
let weaponId = li.data("item-id")
|
||||||
|
this.actor.setWeaponAmmo( weaponId, ev.currentTarget.value )
|
||||||
|
})
|
||||||
html.find('.skill-used-id').change(event => {
|
html.find('.skill-used-id').change(event => {
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const li = $(event.currentTarget).parents(".item");
|
||||||
this.actor.setSkillUsed( li.data("item-id"), event.currentTarget.checked );
|
this.actor.setSkillUsed( li.data("item-id"), event.currentTarget.checked );
|
||||||
@ -137,7 +147,21 @@ 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");
|
||||||
const skillId = li.data("item-id")
|
const skillId = li.data("item-id")
|
||||||
|
@ -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') {
|
||||||
}
|
}
|
||||||
@ -87,6 +85,11 @@ export class DarkStarsActor extends Actor {
|
|||||||
deriv.si.value = Math.round( ((attr.dex.value + attr.sel.value) / 5) + 0.5) + deriv.si.bonus
|
deriv.si.value = Math.round( ((attr.dex.value + attr.sel.value) / 5) + 0.5) + deriv.si.bonus
|
||||||
|
|
||||||
secondary.hp.max = ((attr.con.value + attr.siz.value ) * 2) + secondary.hp.bonus
|
secondary.hp.max = ((attr.con.value + attr.siz.value ) * 2) + secondary.hp.bonus
|
||||||
|
for(let key in this.system.hitlocations) {
|
||||||
|
let loc = this.system.hitlocations[key]
|
||||||
|
loc.max = Math.floor(secondary.hp.max * loc.ratio)
|
||||||
|
}
|
||||||
|
|
||||||
secondary.fp.max = 10 + attr.str.value + attr.con.value + secondary.fp.bonus
|
secondary.fp.max = 10 + attr.str.value + attr.con.value + secondary.fp.bonus
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,49 +118,71 @@ 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() {
|
||||||
|
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'spell') || []);
|
||||||
|
DarkStarsUtility.sortArrayObjectsByName(comp)
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
|
getPowers() {
|
||||||
|
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)
|
||||||
|
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
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
checkAndPrepareEquipment(item) {
|
checkAndPrepareEquipment(item) {
|
||||||
|
// Dynamic assign ammo for the weapon
|
||||||
|
if (item.type == "weapon" && item.system.needammo) {
|
||||||
|
let ammo = this.items.find(ammo => ammo.type == "ammo" && item.system.ammoid == ammo.id)
|
||||||
|
if (ammo) {
|
||||||
|
item.ammo = foundry.utils.duplicate(ammo)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -170,25 +195,42 @@ 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)
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getAmmos() {
|
||||||
|
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) {
|
||||||
|
let weapon = this.items.get(weaponId)
|
||||||
|
if(weapon) {
|
||||||
|
this.updateEmbeddedDocuments('Item', [ {_id: weapon.id, 'system.ammoid': ammoId} ])
|
||||||
|
}
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
setSkillUsed( skillId, checked) {
|
setSkillUsed( skillId, checked) {
|
||||||
let skill = this.items.get(skillId)
|
let skill = this.items.get(skillId)
|
||||||
@ -199,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)
|
||||||
}
|
}
|
||||||
@ -216,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
|
||||||
}
|
}
|
||||||
@ -224,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) {
|
||||||
@ -261,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") || [])
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------- */
|
/* ------------------------------------------- */
|
||||||
@ -287,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 = []
|
||||||
@ -341,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)
|
||||||
@ -391,25 +433,28 @@ export class DarkStarsActor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getInitiativeScore(combatId, combatantId) {
|
hasLastWord() {
|
||||||
if (this.type == 'character') {
|
return this.items.find(i => i.type == "perk" && i.name.toLowerCase() === "last word")
|
||||||
this.rollMR(true, combatId, combatantId)
|
}
|
||||||
}
|
/* -------------------------------------------- */
|
||||||
console.log("Init required !!!!")
|
async getInitiativeScore() {
|
||||||
return -1;
|
let initFormula = (this.system.derivated.si.value + this.system.derivated.si.bonus) + "d6"
|
||||||
|
let initRoll = await new Roll(initFormula).roll()
|
||||||
|
await DarkStarsUtility.showDiceSoNice(initRoll, game.settings.get("core", "rollMode"))
|
||||||
|
return initRoll.total
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
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 });
|
||||||
}
|
}
|
||||||
@ -428,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;
|
||||||
}
|
}
|
||||||
@ -524,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 })
|
||||||
}
|
}
|
||||||
@ -540,7 +585,9 @@ 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
|
||||||
rollData.actorId = this.id
|
console.log("Prepare common roll data for actor", this)
|
||||||
|
rollData.tokenId = this.token?.id
|
||||||
|
rollData.actorId = this.id
|
||||||
rollData.img = this.img
|
rollData.img = this.img
|
||||||
rollData.armors = this.getArmors()
|
rollData.armors = this.getArmors()
|
||||||
rollData.conditions = this.getConditions()
|
rollData.conditions = this.getConditions()
|
||||||
@ -580,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])
|
||||||
if (rollData.target) {
|
rollData.mode = "attribute"
|
||||||
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
|
rollData.title = "Attribute " + rollData.attr.label
|
||||||
return
|
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) {
|
||||||
|
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
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")
|
||||||
}
|
}
|
||||||
DarkStarsUtility.rollDarkStars(rollData)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
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
|
||||||
@ -605,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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -613,15 +698,16 @@ 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"
|
||||||
rollData.skill = skill
|
rollData.skill = skill
|
||||||
rollData.weapon = weapon
|
rollData.weapon = weapon
|
||||||
|
this.checkAndPrepareEquipment(weapon)
|
||||||
rollData.img = weapon.img
|
rollData.img = weapon.img
|
||||||
this.startRoll(rollData)
|
this.startRoll(rollData)
|
||||||
} else {
|
} else {
|
||||||
|
@ -2,29 +2,46 @@ import { DarkStarsUtility } from "./dark-stars-utility.js";
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class DarkStarsCombat extends Combat {
|
export class DarkStarsCombat extends Combat {
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
|
|
||||||
ids = typeof ids === "string" ? [ids] : ids;
|
|
||||||
for (let cId = 0; cId < ids.length; cId++) {
|
|
||||||
const c = this.combatants.get(ids[cId]);
|
|
||||||
let id = c._id || c.id;
|
|
||||||
let initBonus = c.actor ? c.actor.getInitiativeScore( this.id, id ) : -1;
|
|
||||||
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initBonus } ]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
processOtherTurns(c, initScore) {
|
||||||
|
let toCreate = []
|
||||||
|
let token = canvas.tokens.get(c.tokenId)
|
||||||
|
let hasLastWord = token.actor.hasLastWord()
|
||||||
|
while ( (initScore > 5) || (hasLastWord && initScore >= 5)) {
|
||||||
|
initScore -= 5;
|
||||||
|
toCreate.push({tokenId: c.tokenId, sceneId: c.sceneId, actorId: c.actorId, hidden: c.hidden, initiative: initScore, flags: { world: { isDuplicated: true} } } );
|
||||||
|
}
|
||||||
|
this.createEmbeddedDocuments("Combatant", toCreate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollInitiative(ids, formula = undefined, messageOptions = {}) {
|
||||||
|
ids = typeof ids === "string" ? [ids] : ids;
|
||||||
|
for (let cId of ids) {
|
||||||
|
const c = this.combatants.get(cId);
|
||||||
|
let id = c._id || c.id;
|
||||||
|
let initScore = c.actor ? await c.actor.getInitiativeScore(this.id, id) : -1;
|
||||||
|
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: initScore }]);
|
||||||
|
setTimeout(() => this.processOtherTurns(c, initScore), 400)
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
nextRound() {
|
||||||
|
super.nextRound()
|
||||||
|
let toDelete = []
|
||||||
|
for (let c of this.combatants) {
|
||||||
|
if (c.flags?.world?.isDuplicated) {
|
||||||
|
toDelete.push(c._id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.deleteEmbeddedDocuments("Combatant", toDelete);
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
_onUpdate(changed, options, userId) {
|
_onUpdate(changed, options, userId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static async checkTurnPosition() {
|
|
||||||
while (game.combat.turn > 0) {
|
|
||||||
await game.combat.previousTurn()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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,14 @@ export const DARKSTARS_CONFIG = {
|
|||||||
perktypes: {
|
perktypes: {
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"advanced": "Advanced",
|
"advanced": "Advanced",
|
||||||
"role": "Role"
|
"role": "Role",
|
||||||
|
"job": "Job"
|
||||||
|
},
|
||||||
|
magicTypes: {
|
||||||
|
"lemurian": "Lemurian",
|
||||||
|
"bloodmagic": "Blood Magic Ritual",
|
||||||
|
"ritual": "Ritual",
|
||||||
|
"miracle": "Miracle"
|
||||||
},
|
},
|
||||||
cyberTypes: {
|
cyberTypes: {
|
||||||
"I": "I",
|
"I": "I",
|
||||||
|
@ -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 };
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,9 @@ export const defaultItemImg = {
|
|||||||
perk: "systems/fvtt-dark-stars/images/icons/perk.webp",
|
perk: "systems/fvtt-dark-stars/images/icons/perk.webp",
|
||||||
ability: "systems/fvtt-dark-stars/images/icons/ability.webp",
|
ability: "systems/fvtt-dark-stars/images/icons/ability.webp",
|
||||||
genetic: "systems/fvtt-dark-stars/images/icons/genetic.webp",
|
genetic: "systems/fvtt-dark-stars/images/icons/genetic.webp",
|
||||||
cyber: "systems/fvtt-dark-stars/images/icons/cyber.webp"
|
cyber: "systems/fvtt-dark-stars/images/icons/cyber.webp",
|
||||||
|
spell: "systems/fvtt-dark-stars/images/icons/magic.webp",
|
||||||
|
psychic: "systems/fvtt-dark-stars/images/icons/psychicpowers.webp",
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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()
|
||||||
})
|
})
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -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,
|
||||||
|
@ -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)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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();
|
||||||
|
|
||||||
@ -42,14 +40,29 @@ export class DarkStarsUtility {
|
|||||||
Handlebars.registerHelper('locationLabel', function (key) {
|
Handlebars.registerHelper('locationLabel', function (key) {
|
||||||
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'
|
||||||
@ -240,14 +257,14 @@ export class DarkStarsUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getAimingMalus(location) {
|
static getAimingMalus(location) {
|
||||||
if (location == "arm" || location == "head") {
|
if (location == "arm" || location == "head") {
|
||||||
return -50
|
return -50
|
||||||
}
|
}
|
||||||
if (location == "torso" || location == "leg") {
|
if (location == "torso" || location == "leg") {
|
||||||
return -30
|
return -30
|
||||||
}
|
}
|
||||||
if (location == "hand" ) {
|
if (location == "hand") {
|
||||||
return -70
|
return -70
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
@ -255,29 +272,66 @@ export class DarkStarsUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getAimingLocation(roll) {
|
static getAimingLocation(roll) {
|
||||||
if (roll == 1) return "head"
|
if (roll == 1) return "head"
|
||||||
if (roll >=2 && roll <=4 ) return "chest"
|
if (roll >= 2 && roll <= 4) return "chest"
|
||||||
if (roll >=5 && roll <=6 ) return "abdomen"
|
if (roll >= 5 && roll <= 6) return "abdomen"
|
||||||
if (roll == 7 ) return "leftarm"
|
if (roll == 7) return "leftarm"
|
||||||
if (roll == 8 ) return "rightarm"
|
if (roll == 8) return "rightarm"
|
||||||
if (roll == 9 ) return "rightleg"
|
if (roll == 9) return "rightleg"
|
||||||
if (roll == 10 ) return "leftleg"
|
if (roll == 10) return "leftleg"
|
||||||
return "abdomen"
|
return "abdomen"
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static locationMultiplier(location) {
|
||||||
|
if (location == "head") return 0.3
|
||||||
|
if (location.includes("arm")) return 0.2
|
||||||
|
if (location.includes("leg")) return 0.4
|
||||||
|
if (location == "chest") return 0.5
|
||||||
|
return 0.3 // Abdomen case
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
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
|
||||||
}
|
}
|
||||||
rollData.percentValue += rollData.bonusMalus
|
if (rollData.synergyBonus) {
|
||||||
|
rollData.percentValue += rollData.synergyBonus
|
||||||
|
}
|
||||||
|
if (rollData.extraTime) {
|
||||||
|
rollData.percentValue += 30
|
||||||
|
}
|
||||||
|
rollData.percentValue += rollData.bonusMalus
|
||||||
rollData.diceFormula = "1d100"
|
rollData.diceFormula = "1d100"
|
||||||
|
|
||||||
if (rollData.isAboveEffectiveRange) {
|
if (rollData.isAboveEffectiveRange) {
|
||||||
rollData.percentValue -= 30
|
rollData.percentValue -= 30
|
||||||
rollData.percentValue = Math.max(0, rollData.percentValue)
|
rollData.percentValue = Math.max(0, rollData.percentValue)
|
||||||
}
|
}
|
||||||
@ -286,29 +340,49 @@ 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
|
||||||
|
|
||||||
if (rollData.reroll) {
|
if (rollData.reroll) {
|
||||||
actor.modifyRerolls(-1)
|
actor.modifyRerolls(-1)
|
||||||
rollData.rerolls = 0 // DIsable rerolls
|
rollData.rerolls = 0 // DIsable rerolls
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rollData.weaponAiming == "none" ) {
|
if (rollData.mode == "weapon") {
|
||||||
let rollLoc = new Roll("1d10").roll({async: false})
|
if (rollData.weaponAiming == "none") {
|
||||||
rollData.weaponAiming = this.getAimingLocation(rollLoc.total)
|
let rollLoc = new Roll("1d10").roll({ async: false })
|
||||||
|
rollData.weaponAiming = this.getAimingLocation(rollLoc.total)
|
||||||
|
}
|
||||||
|
// Compute
|
||||||
|
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, {
|
||||||
@ -338,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) {
|
||||||
@ -355,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);
|
||||||
@ -416,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
6
packs/.directory
Normal 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
BIN
packs/aldebaran/000119.ldb
Normal file
Binary file not shown.
0
packs/aldebaran/000210.log
Normal file
0
packs/aldebaran/000210.log
Normal file
1
packs/aldebaran/CURRENT
Normal file
1
packs/aldebaran/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000208
|
0
packs/aldebaran/LOCK
Normal file
0
packs/aldebaran/LOCK
Normal file
7
packs/aldebaran/LOG
Normal file
7
packs/aldebaran/LOG
Normal 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
7
packs/aldebaran/LOG.old
Normal 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)
|
BIN
packs/aldebaran/MANIFEST-000208
Normal file
BIN
packs/aldebaran/MANIFEST-000208
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/armor/000186.ldb
Normal file
BIN
packs/armor/000186.ldb
Normal file
Binary file not shown.
0
packs/armor/000201.log
Normal file
0
packs/armor/000201.log
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000070
|
MANIFEST-000199
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/10/15-14:38:54.538904 7f4c897fa6c0 Recovering log #68
|
2024/02/25-13:11:04.806524 7f0422a006c0 Recovering log #197
|
||||||
2023/10/15-14:38:54.592905 7f4c897fa6c0 Delete type=3 #66
|
2024/02/25-13:11:04.817703 7f0422a006c0 Delete type=3 #195
|
||||||
2023/10/15-14:38:54.592958 7f4c897fa6c0 Delete type=0 #68
|
2024/02/25-13:11:04.817799 7f0422a006c0 Delete type=0 #197
|
||||||
2023/10/15-14:46:40.261315 7f49ebbff6c0 Level-0 table #73: started
|
2024/02/25-13:14:07.532693 7f0421a006c0 Level-0 table #202: started
|
||||||
2023/10/15-14:46:40.261365 7f49ebbff6c0 Level-0 table #73: 0 bytes OK
|
2024/02/25-13:14:07.532731 7f0421a006c0 Level-0 table #202: 0 bytes OK
|
||||||
2023/10/15-14:46:40.268758 7f49ebbff6c0 Delete type=0 #71
|
2024/02/25-13:14:07.539153 7f0421a006c0 Delete type=0 #200
|
||||||
2023/10/15-14:46:40.282146 7f49ebbff6c0 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/15-14:46:40.292539 7f49ebbff6c0 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)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/10/15-14:37:25.712813 7f4c88ff96c0 Recovering log #64
|
2024/02/25-13:04:05.224949 7f0428e006c0 Recovering log #193
|
||||||
2023/10/15-14:37:25.722863 7f4c88ff96c0 Delete type=3 #62
|
2024/02/25-13:04:05.236046 7f0428e006c0 Delete type=3 #191
|
||||||
2023/10/15-14:37:25.722918 7f4c88ff96c0 Delete type=0 #64
|
2024/02/25-13:04:05.236134 7f0428e006c0 Delete type=0 #193
|
||||||
2023/10/15-14:37:51.818294 7f49ebbff6c0 Level-0 table #69: started
|
2024/02/25-13:10:09.480522 7f0421a006c0 Level-0 table #198: started
|
||||||
2023/10/15-14:37:51.818319 7f49ebbff6c0 Level-0 table #69: 0 bytes OK
|
2024/02/25-13:10:09.480555 7f0421a006c0 Level-0 table #198: 0 bytes OK
|
||||||
2023/10/15-14:37:51.825363 7f49ebbff6c0 Delete type=0 #67
|
2024/02/25-13:10:09.486678 7f0421a006c0 Delete type=0 #196
|
||||||
2023/10/15-14:37:51.838432 7f49ebbff6c0 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/15-14:37:51.838460 7f49ebbff6c0 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)
|
||||||
|
BIN
packs/armor/MANIFEST-000199
Normal file
BIN
packs/armor/MANIFEST-000199
Normal file
Binary file not shown.
BIN
packs/beyondtheblacksea/000124.ldb
Normal file
BIN
packs/beyondtheblacksea/000124.ldb
Normal file
Binary file not shown.
0
packs/beyondtheblacksea/000203.log
Normal file
0
packs/beyondtheblacksea/000203.log
Normal file
1
packs/beyondtheblacksea/CURRENT
Normal file
1
packs/beyondtheblacksea/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000201
|
0
packs/beyondtheblacksea/LOCK
Normal file
0
packs/beyondtheblacksea/LOCK
Normal file
7
packs/beyondtheblacksea/LOG
Normal file
7
packs/beyondtheblacksea/LOG
Normal 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)
|
7
packs/beyondtheblacksea/LOG.old
Normal file
7
packs/beyondtheblacksea/LOG.old
Normal 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)
|
BIN
packs/beyondtheblacksea/MANIFEST-000201
Normal file
BIN
packs/beyondtheblacksea/MANIFEST-000201
Normal file
Binary file not shown.
0
packs/conditions/000256.log
Normal file
0
packs/conditions/000256.log
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000070
|
MANIFEST-000254
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2023/10/15-14:38:54.791339 7f4c897fa6c0 Recovering log #68
|
2024/06/12-11:13:40.356313 7f3f0d6006c0 Recovering log #252
|
||||||
2023/10/15-14:38:54.843113 7f4c897fa6c0 Delete type=3 #66
|
2024/06/12-11:13:40.366003 7f3f0d6006c0 Delete type=3 #250
|
||||||
2023/10/15-14:38:54.843175 7f4c897fa6c0 Delete type=0 #68
|
2024/06/12-11:13:40.366126 7f3f0d6006c0 Delete type=0 #252
|
||||||
2023/10/15-14:46:40.312515 7f49ebbff6c0 Level-0 table #73: started
|
2024/06/12-11:16:23.317811 7f3f060006c0 Level-0 table #257: started
|
||||||
2023/10/15-14:46:40.312570 7f49ebbff6c0 Level-0 table #73: 0 bytes OK
|
2024/06/12-11:16:23.317841 7f3f060006c0 Level-0 table #257: 0 bytes OK
|
||||||
2023/10/15-14:46:40.319300 7f49ebbff6c0 Delete type=0 #71
|
2024/06/12-11:16:23.355645 7f3f060006c0 Delete type=0 #255
|
||||||
2023/10/15-14:46:40.325484 7f49ebbff6c0 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)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2023/10/15-14:37:25.761090 7f4c88ff96c0 Recovering log #64
|
2024/06/12-11:13:16.189039 7f3f0ea006c0 Recovering log #248
|
||||||
2023/10/15-14:37:25.771978 7f4c88ff96c0 Delete type=3 #62
|
2024/06/12-11:13:16.200829 7f3f0ea006c0 Delete type=3 #246
|
||||||
2023/10/15-14:37:25.772043 7f4c88ff96c0 Delete type=0 #64
|
2024/06/12-11:13:16.200927 7f3f0ea006c0 Delete type=0 #248
|
||||||
2023/10/15-14:37:51.852191 7f49ebbff6c0 Level-0 table #69: started
|
2024/06/12-11:13:34.657802 7f3f060006c0 Level-0 table #253: started
|
||||||
2023/10/15-14:37:51.852215 7f49ebbff6c0 Level-0 table #69: 0 bytes OK
|
2024/06/12-11:13:34.657837 7f3f060006c0 Level-0 table #253: 0 bytes OK
|
||||||
2023/10/15-14:37:51.858913 7f49ebbff6c0 Delete type=0 #67
|
2024/06/12-11:13:34.663971 7f3f060006c0 Delete type=0 #251
|
||||||
2023/10/15-14:37:51.865438 7f49ebbff6c0 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)
|
||||||
|
BIN
packs/conditions/MANIFEST-000254
Normal file
BIN
packs/conditions/MANIFEST-000254
Normal file
Binary file not shown.
0
packs/currency/000256.log
Normal file
0
packs/currency/000256.log
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000070
|
MANIFEST-000254
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2023/10/15-14:38:54.845410 7f4c89ffb6c0 Recovering log #68
|
2024/06/12-11:13:40.368093 7f3f0ea006c0 Recovering log #252
|
||||||
2023/10/15-14:38:54.909363 7f4c89ffb6c0 Delete type=3 #66
|
2024/06/12-11:13:40.379978 7f3f0ea006c0 Delete type=3 #250
|
||||||
2023/10/15-14:38:54.909465 7f4c89ffb6c0 Delete type=0 #68
|
2024/06/12-11:13:40.380078 7f3f0ea006c0 Delete type=0 #252
|
||||||
2023/10/15-14:46:40.319416 7f49ebbff6c0 Level-0 table #73: started
|
2024/06/12-11:16:23.408873 7f3f060006c0 Level-0 table #257: started
|
||||||
2023/10/15-14:46:40.319438 7f49ebbff6c0 Level-0 table #73: 0 bytes OK
|
2024/06/12-11:16:23.408929 7f3f060006c0 Level-0 table #257: 0 bytes OK
|
||||||
2023/10/15-14:46:40.325391 7f49ebbff6c0 Delete type=0 #71
|
2024/06/12-11:16:23.460072 7f3f060006c0 Delete type=0 #255
|
||||||
2023/10/15-14:46:40.332550 7f49ebbff6c0 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)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2023/10/15-14:37:25.773414 7f4c8a7fc6c0 Recovering log #64
|
2024/06/12-11:13:16.204139 7f3f0d6006c0 Recovering log #248
|
||||||
2023/10/15-14:37:25.783364 7f4c8a7fc6c0 Delete type=3 #62
|
2024/06/12-11:13:16.215399 7f3f0d6006c0 Delete type=3 #246
|
||||||
2023/10/15-14:37:25.783416 7f4c8a7fc6c0 Delete type=0 #64
|
2024/06/12-11:13:16.215490 7f3f0d6006c0 Delete type=0 #248
|
||||||
2023/10/15-14:37:51.845492 7f49ebbff6c0 Level-0 table #69: started
|
2024/06/12-11:13:34.692534 7f3f060006c0 Level-0 table #253: started
|
||||||
2023/10/15-14:37:51.845517 7f49ebbff6c0 Level-0 table #69: 0 bytes OK
|
2024/06/12-11:13:34.692577 7f3f060006c0 Level-0 table #253: 0 bytes OK
|
||||||
2023/10/15-14:37:51.852084 7f49ebbff6c0 Delete type=0 #67
|
2024/06/12-11:13:34.698872 7f3f060006c0 Delete type=0 #251
|
||||||
2023/10/15-14:37:51.865427 7f49ebbff6c0 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)
|
||||||
|
BIN
packs/currency/MANIFEST-000254
Normal file
BIN
packs/currency/MANIFEST-000254
Normal file
Binary file not shown.
BIN
packs/cybernetics/000115.ldb
Normal file
BIN
packs/cybernetics/000115.ldb
Normal file
Binary file not shown.
0
packs/cybernetics/000130.log
Normal file
0
packs/cybernetics/000130.log
Normal file
1
packs/cybernetics/CURRENT
Normal file
1
packs/cybernetics/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000128
|
0
packs/cybernetics/LOCK
Normal file
0
packs/cybernetics/LOCK
Normal file
8
packs/cybernetics/LOG
Normal file
8
packs/cybernetics/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/02/25-13:11:04.911848 7f0422a006c0 Recovering log #126
|
||||||
|
2024/02/25-13:11:04.922320 7f0422a006c0 Delete type=3 #124
|
||||||
|
2024/02/25-13:11:04.922392 7f0422a006c0 Delete type=0 #126
|
||||||
|
2024/02/25-13:14:07.578457 7f0421a006c0 Level-0 table #131: started
|
||||||
|
2024/02/25-13:14:07.578513 7f0421a006c0 Level-0 table #131: 0 bytes OK
|
||||||
|
2024/02/25-13:14:07.585654 7f0421a006c0 Delete type=0 #129
|
||||||
|
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)
|
||||||
|
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)
|
8
packs/cybernetics/LOG.old
Normal file
8
packs/cybernetics/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/02/25-13:04:05.332283 7f0428e006c0 Recovering log #122
|
||||||
|
2024/02/25-13:04:05.343337 7f0428e006c0 Delete type=3 #120
|
||||||
|
2024/02/25-13:04:05.343387 7f0428e006c0 Delete type=0 #122
|
||||||
|
2024/02/25-13:10:09.539934 7f0421a006c0 Level-0 table #127: started
|
||||||
|
2024/02/25-13:10:09.539956 7f0421a006c0 Level-0 table #127: 0 bytes OK
|
||||||
|
2024/02/25-13:10:09.546327 7f0421a006c0 Delete type=0 #125
|
||||||
|
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)
|
||||||
|
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)
|
BIN
packs/cybernetics/MANIFEST-000128
Normal file
BIN
packs/cybernetics/MANIFEST-000128
Normal file
Binary file not shown.
BIN
packs/darkstars-sf/000005.ldb
Normal file
BIN
packs/darkstars-sf/000005.ldb
Normal file
Binary file not shown.
0
packs/darkstars-sf/000068.log
Normal file
0
packs/darkstars-sf/000068.log
Normal file
1
packs/darkstars-sf/CURRENT
Normal file
1
packs/darkstars-sf/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000066
|
0
packs/darkstars-sf/LOCK
Normal file
0
packs/darkstars-sf/LOCK
Normal file
8
packs/darkstars-sf/LOG
Normal file
8
packs/darkstars-sf/LOG
Normal 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)
|
8
packs/darkstars-sf/LOG.old
Normal file
8
packs/darkstars-sf/LOG.old
Normal 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)
|
BIN
packs/darkstars-sf/MANIFEST-000066
Normal file
BIN
packs/darkstars-sf/MANIFEST-000066
Normal file
Binary file not shown.
BIN
packs/equipment/000186.ldb
Normal file
BIN
packs/equipment/000186.ldb
Normal file
Binary file not shown.
0
packs/equipment/000201.log
Normal file
0
packs/equipment/000201.log
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000070
|
MANIFEST-000199
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
2023/10/15-14:38:54.594761 7f4c89ffb6c0 Recovering log #68
|
2024/02/25-13:11:04.819236 7f0428e006c0 Recovering log #197
|
||||||
2023/10/15-14:38:54.648357 7f4c89ffb6c0 Delete type=3 #66
|
2024/02/25-13:11:04.829162 7f0428e006c0 Delete type=3 #195
|
||||||
2023/10/15-14:38:54.648424 7f4c89ffb6c0 Delete type=0 #68
|
2024/02/25-13:11:04.829232 7f0428e006c0 Delete type=0 #197
|
||||||
2023/10/15-14:46:40.292564 7f49ebbff6c0 Level-0 table #73: started
|
2024/02/25-13:14:07.545758 7f0421a006c0 Level-0 table #202: started
|
||||||
2023/10/15-14:46:40.292593 7f49ebbff6c0 Level-0 table #73: 0 bytes OK
|
2024/02/25-13:14:07.545813 7f0421a006c0 Level-0 table #202: 0 bytes OK
|
||||||
2023/10/15-14:46:40.298941 7f49ebbff6c0 Delete type=0 #71
|
2024/02/25-13:14:07.552067 7f0421a006c0 Delete type=0 #200
|
||||||
2023/10/15-14:46:40.312486 7f49ebbff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 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)
|
||||||
|
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)
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
2023/10/15-14:37:25.724521 7f4c8a7fc6c0 Recovering log #64
|
2024/02/25-13:04:05.239972 7f0423e006c0 Recovering log #193
|
||||||
2023/10/15-14:37:25.734875 7f4c8a7fc6c0 Delete type=3 #62
|
2024/02/25-13:04:05.249512 7f0423e006c0 Delete type=3 #191
|
||||||
2023/10/15-14:37:25.734932 7f4c8a7fc6c0 Delete type=0 #64
|
2024/02/25-13:04:05.249560 7f0423e006c0 Delete type=0 #193
|
||||||
2023/10/15-14:37:51.825475 7f49ebbff6c0 Level-0 table #69: started
|
2024/02/25-13:10:09.473431 7f0421a006c0 Level-0 table #198: started
|
||||||
2023/10/15-14:37:51.825502 7f49ebbff6c0 Level-0 table #69: 0 bytes OK
|
2024/02/25-13:10:09.473459 7f0421a006c0 Level-0 table #198: 0 bytes OK
|
||||||
2023/10/15-14:37:51.831521 7f49ebbff6c0 Delete type=0 #67
|
2024/02/25-13:10:09.480345 7f0421a006c0 Delete type=0 #196
|
||||||
2023/10/15-14:37:51.838443 7f49ebbff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 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)
|
||||||
|
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)
|
||||||
|
BIN
packs/equipment/MANIFEST-000199
Normal file
BIN
packs/equipment/MANIFEST-000199
Normal file
Binary file not shown.
BIN
packs/genetics/000014.ldb
Normal file
BIN
packs/genetics/000014.ldb
Normal file
Binary file not shown.
0
packs/genetics/000077.log
Normal file
0
packs/genetics/000077.log
Normal file
1
packs/genetics/CURRENT
Normal file
1
packs/genetics/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000075
|
0
packs/genetics/LOCK
Normal file
0
packs/genetics/LOCK
Normal file
8
packs/genetics/LOG
Normal file
8
packs/genetics/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/02/25-13:11:04.925036 7f0428e006c0 Recovering log #73
|
||||||
|
2024/02/25-13:11:04.935090 7f0428e006c0 Delete type=3 #71
|
||||||
|
2024/02/25-13:11:04.935353 7f0428e006c0 Delete type=0 #73
|
||||||
|
2024/02/25-13:14:07.585843 7f0421a006c0 Level-0 table #78: started
|
||||||
|
2024/02/25-13:14:07.585896 7f0421a006c0 Level-0 table #78: 0 bytes OK
|
||||||
|
2024/02/25-13:14:07.592513 7f0421a006c0 Delete type=0 #76
|
||||||
|
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)
|
||||||
|
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)
|
8
packs/genetics/LOG.old
Normal file
8
packs/genetics/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/02/25-13:04:05.347457 7f0423e006c0 Recovering log #69
|
||||||
|
2024/02/25-13:04:05.356885 7f0423e006c0 Delete type=3 #67
|
||||||
|
2024/02/25-13:04:05.356934 7f0423e006c0 Delete type=0 #69
|
||||||
|
2024/02/25-13:10:09.533502 7f0421a006c0 Level-0 table #74: started
|
||||||
|
2024/02/25-13:10:09.533526 7f0421a006c0 Level-0 table #74: 0 bytes OK
|
||||||
|
2024/02/25-13:10:09.539823 7f0421a006c0 Delete type=0 #72
|
||||||
|
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)
|
||||||
|
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)
|
BIN
packs/genetics/MANIFEST-000075
Normal file
BIN
packs/genetics/MANIFEST-000075
Normal file
Binary file not shown.
BIN
packs/nightborough/000132.ldb
Normal file
BIN
packs/nightborough/000132.ldb
Normal file
Binary file not shown.
0
packs/nightborough/000223.log
Normal file
0
packs/nightborough/000223.log
Normal file
1
packs/nightborough/CURRENT
Normal file
1
packs/nightborough/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000221
|
0
packs/nightborough/LOCK
Normal file
0
packs/nightborough/LOCK
Normal file
7
packs/nightborough/LOG
Normal file
7
packs/nightborough/LOG
Normal 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)
|
7
packs/nightborough/LOG.old
Normal file
7
packs/nightborough/LOG.old
Normal 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)
|
BIN
packs/nightborough/MANIFEST-000221
Normal file
BIN
packs/nightborough/MANIFEST-000221
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/perks/000186.ldb
Normal file
BIN
packs/perks/000186.ldb
Normal file
Binary file not shown.
0
packs/perks/000201.log
Normal file
0
packs/perks/000201.log
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000070
|
MANIFEST-000199
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/10/15-14:38:54.969746 7f4c88ff96c0 Recovering log #68
|
2024/02/25-13:11:04.899830 7f0428e006c0 Recovering log #197
|
||||||
2023/10/15-14:38:55.024008 7f4c88ff96c0 Delete type=3 #66
|
2024/02/25-13:11:04.909890 7f0428e006c0 Delete type=3 #195
|
||||||
2023/10/15-14:38:55.024062 7f4c88ff96c0 Delete type=0 #68
|
2024/02/25-13:11:04.909976 7f0428e006c0 Delete type=0 #197
|
||||||
2023/10/15-14:46:40.332565 7f49ebbff6c0 Level-0 table #73: started
|
2024/02/25-13:14:07.614576 7f0421a006c0 Level-0 table #202: started
|
||||||
2023/10/15-14:46:40.332592 7f49ebbff6c0 Level-0 table #73: 0 bytes OK
|
2024/02/25-13:14:07.614602 7f0421a006c0 Level-0 table #202: 0 bytes OK
|
||||||
2023/10/15-14:46:40.338680 7f49ebbff6c0 Delete type=0 #71
|
2024/02/25-13:14:07.621467 7f0421a006c0 Delete type=0 #200
|
||||||
2023/10/15-14:46:40.338872 7f49ebbff6c0 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/15-14:46:40.338911 7f49ebbff6c0 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)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/10/15-14:37:25.798415 7f4c897fa6c0 Recovering log #64
|
2024/02/25-13:04:05.318599 7f0423e006c0 Recovering log #193
|
||||||
2023/10/15-14:37:25.809315 7f4c897fa6c0 Delete type=3 #62
|
2024/02/25-13:04:05.328529 7f0423e006c0 Delete type=3 #191
|
||||||
2023/10/15-14:37:25.809368 7f4c897fa6c0 Delete type=0 #64
|
2024/02/25-13:04:05.328597 7f0423e006c0 Delete type=0 #193
|
||||||
2023/10/15-14:37:51.865540 7f49ebbff6c0 Level-0 table #69: started
|
2024/02/25-13:10:09.519595 7f0421a006c0 Level-0 table #198: started
|
||||||
2023/10/15-14:37:51.865572 7f49ebbff6c0 Level-0 table #69: 0 bytes OK
|
2024/02/25-13:10:09.519645 7f0421a006c0 Level-0 table #198: 0 bytes OK
|
||||||
2023/10/15-14:37:51.872252 7f49ebbff6c0 Delete type=0 #67
|
2024/02/25-13:10:09.526863 7f0421a006c0 Delete type=0 #196
|
||||||
2023/10/15-14:37:51.872451 7f49ebbff6c0 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/15-14:37:51.872491 7f49ebbff6c0 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)
|
||||||
|
BIN
packs/perks/MANIFEST-000199
Normal file
BIN
packs/perks/MANIFEST-000199
Normal file
Binary file not shown.
0
packs/shields/000200.log
Normal file
0
packs/shields/000200.log
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000070
|
MANIFEST-000198
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2023/10/15-14:38:54.650221 7f4c8a7fc6c0 Recovering log #68
|
2024/02/25-13:11:04.832847 7f0422a006c0 Recovering log #196
|
||||||
2023/10/15-14:38:54.726970 7f4c8a7fc6c0 Delete type=3 #66
|
2024/02/25-13:11:04.844534 7f0422a006c0 Delete type=3 #194
|
||||||
2023/10/15-14:38:54.727056 7f4c8a7fc6c0 Delete type=0 #68
|
2024/02/25-13:11:04.844584 7f0422a006c0 Delete type=0 #196
|
||||||
2023/10/15-14:46:40.305582 7f49ebbff6c0 Level-0 table #73: started
|
2024/02/25-13:14:07.539362 7f0421a006c0 Level-0 table #201: started
|
||||||
2023/10/15-14:46:40.305605 7f49ebbff6c0 Level-0 table #73: 0 bytes OK
|
2024/02/25-13:14:07.539386 7f0421a006c0 Level-0 table #201: 0 bytes OK
|
||||||
2023/10/15-14:46:40.312291 7f49ebbff6c0 Delete type=0 #71
|
2024/02/25-13:14:07.545589 7f0421a006c0 Delete type=0 #199
|
||||||
2023/10/15-14:46:40.319406 7f49ebbff6c0 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)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2023/10/15-14:37:25.736213 7f4c89ffb6c0 Recovering log #64
|
2024/02/25-13:04:05.255291 7f0428e006c0 Recovering log #192
|
||||||
2023/10/15-14:37:25.747612 7f4c89ffb6c0 Delete type=3 #62
|
2024/02/25-13:04:05.265834 7f0428e006c0 Delete type=3 #190
|
||||||
2023/10/15-14:37:25.747744 7f4c89ffb6c0 Delete type=0 #64
|
2024/02/25-13:04:05.265885 7f0428e006c0 Delete type=0 #192
|
||||||
2023/10/15-14:37:51.831752 7f49ebbff6c0 Level-0 table #69: started
|
2024/02/25-13:10:09.486767 7f0421a006c0 Level-0 table #197: started
|
||||||
2023/10/15-14:37:51.831832 7f49ebbff6c0 Level-0 table #69: 0 bytes OK
|
2024/02/25-13:10:09.486786 7f0421a006c0 Level-0 table #197: 0 bytes OK
|
||||||
2023/10/15-14:37:51.838294 7f49ebbff6c0 Delete type=0 #67
|
2024/02/25-13:10:09.493210 7f0421a006c0 Delete type=0 #195
|
||||||
2023/10/15-14:37:51.838454 7f49ebbff6c0 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)
|
||||||
|
BIN
packs/shields/MANIFEST-000198
Normal file
BIN
packs/shields/MANIFEST-000198
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/skills/000186.ldb
Normal file
BIN
packs/skills/000186.ldb
Normal file
Binary file not shown.
0
packs/skills/000201.log
Normal file
0
packs/skills/000201.log
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000070
|
MANIFEST-000199
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/10/15-14:38:54.911330 7f4c8a7fc6c0 Recovering log #68
|
2024/02/25-13:11:04.885568 7f0422a006c0 Recovering log #197
|
||||||
2023/10/15-14:38:54.967669 7f4c8a7fc6c0 Delete type=3 #66
|
2024/02/25-13:11:04.896289 7f0422a006c0 Delete type=3 #195
|
||||||
2023/10/15-14:38:54.967727 7f4c8a7fc6c0 Delete type=0 #68
|
2024/02/25-13:11:04.896428 7f0422a006c0 Delete type=0 #197
|
||||||
2023/10/15-14:46:40.325505 7f49ebbff6c0 Level-0 table #73: started
|
2024/02/25-13:14:07.572202 7f0421a006c0 Level-0 table #202: started
|
||||||
2023/10/15-14:46:40.325527 7f49ebbff6c0 Level-0 table #73: 0 bytes OK
|
2024/02/25-13:14:07.572243 7f0421a006c0 Level-0 table #202: 0 bytes OK
|
||||||
2023/10/15-14:46:40.332445 7f49ebbff6c0 Delete type=0 #71
|
2024/02/25-13:14:07.578291 7f0421a006c0 Delete type=0 #200
|
||||||
2023/10/15-14:46:40.338849 7f49ebbff6c0 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/15-14:46:40.338891 7f49ebbff6c0 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)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/10/15-14:37:25.785047 7f4c89ffb6c0 Recovering log #64
|
2024/02/25-13:04:05.306405 7f0428e006c0 Recovering log #193
|
||||||
2023/10/15-14:37:25.795593 7f4c89ffb6c0 Delete type=3 #62
|
2024/02/25-13:04:05.315767 7f0428e006c0 Delete type=3 #191
|
||||||
2023/10/15-14:37:25.795812 7f4c89ffb6c0 Delete type=0 #64
|
2024/02/25-13:04:05.315959 7f0428e006c0 Delete type=0 #193
|
||||||
2023/10/15-14:37:51.859050 7f49ebbff6c0 Level-0 table #69: started
|
2024/02/25-13:10:09.513533 7f0421a006c0 Level-0 table #198: started
|
||||||
2023/10/15-14:37:51.859076 7f49ebbff6c0 Level-0 table #69: 0 bytes OK
|
2024/02/25-13:10:09.513561 7f0421a006c0 Level-0 table #198: 0 bytes OK
|
||||||
2023/10/15-14:37:51.865285 7f49ebbff6c0 Delete type=0 #67
|
2024/02/25-13:10:09.519495 7f0421a006c0 Delete type=0 #196
|
||||||
2023/10/15-14:37:51.865448 7f49ebbff6c0 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/15-14:37:51.865480 7f49ebbff6c0 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)
|
||||||
|
BIN
packs/skills/MANIFEST-000199
Normal file
BIN
packs/skills/MANIFEST-000199
Normal file
Binary file not shown.
BIN
packs/sprawl/000005.ldb
Normal file
BIN
packs/sprawl/000005.ldb
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user