Compare commits

..

14 Commits

68 changed files with 784 additions and 271 deletions

View File

@@ -40,10 +40,13 @@ export class DarkStarsActorSheet extends ActorSheet {
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( duplicate(this.actor.getWeapons()) ),
ammos: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getAmmos()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())), armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())), shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ), equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ), equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
cybers: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getCybers()) ),
genetics: this.actor.checkAndPrepareEquipments(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: duplicate(this.actor.getSubActors()),
@@ -107,6 +110,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 );

View File

@@ -87,6 +87,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
} }
@@ -133,6 +138,17 @@ export class DarkStarsActor extends Actor {
return undefined return undefined
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getCybers() {
let comp = duplicate(this.items.filter(item => item.type == 'cyber') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
getGenetics() {
let comp = duplicate(this.items.filter(item => item.type == 'genetic') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getShields() { getShields() {
let comp = duplicate(this.items.filter(item => item.type == 'shield') || []); let comp = duplicate(this.items.filter(item => item.type == 'shield') || []);
DarkStarsUtility.sortArrayObjectsByName(comp) DarkStarsUtility.sortArrayObjectsByName(comp)
@@ -147,6 +163,13 @@ export class DarkStarsActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
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 = duplicate(ammo)
}
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -170,6 +193,12 @@ export class DarkStarsActor extends Actor {
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getAmmos() {
let comp = duplicate(this.items.filter(item => item.type == 'ammo') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getItemById(id) { getItemById(id) {
let item = this.items.find(item => item.id == id); let item = this.items.find(item => item.id == id);
if (item) { if (item) {
@@ -177,7 +206,13 @@ export class DarkStarsActor extends Actor {
} }
return item; 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)
@@ -380,12 +415,14 @@ 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 !!!!") getInitiativeScore() {
return -1; let initFormula = (this.system.derivated.si.value + this.system.derivated.si.bonus) + "d6"
let initRoll = new Roll(initFormula).roll({ async: false })
return initRoll.total
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -611,6 +648,7 @@ export class DarkStarsActor extends Actor {
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 {

View File

@@ -4,27 +4,44 @@ import { DarkStarsUtility } from "./dark-stars-utility.js";
export class DarkStarsCombat extends Combat { export class DarkStarsCombat extends Combat {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollInitiative(ids, formula = undefined, messageOptions = {} ) { processOtherTurns(c, initScore) {
ids = typeof ids === "string" ? [ids] : ids; let toCreate = []
for (let cId = 0; cId < ids.length; cId++) { let token = canvas.tokens.get(c.tokenId)
const c = this.combatants.get(ids[cId]); let hasLastWord = token.actor.hasLastWord()
let id = c._id || c.id; while ( (initScore > 5) || (hasLastWord && initScore >= 5)) {
let initBonus = c.actor ? c.actor.getInitiativeScore( this.id, id ) : -1; initScore -= 5;
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initBonus } ]); 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 ? 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()
}
}
} }

View File

@@ -34,6 +34,14 @@ export const DARKSTARS_CONFIG = {
"advanced": "Advanced", "advanced": "Advanced",
"role": "Role" "role": "Role"
}, },
cyberTypes: {
"I": "I",
"P": "P",
"U": "U",
"W": "W",
"E": "E",
"GS": "GS"
},
range: { range: {
"1": "Close", "1": "Close",
"2": "Short", "2": "Short",

View File

@@ -240,14 +240,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,14 +255,22 @@ 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) {
@@ -271,13 +279,13 @@ export class DarkStarsUtility {
// 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 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)
} }
@@ -299,16 +307,21 @@ export class DarkStarsUtility {
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 / 10) - Math.floor(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)
} }
let msg = await this.createChatWithRollMode(rollData.alias, { let msg = await this.createChatWithRollMode(rollData.alias, {
@@ -418,7 +431,7 @@ export class DarkStarsUtility {
let rollData = { let rollData = {
rollId: randomID(16), rollId: 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"
} }

0
packs/armor/000116.log Normal file
View File

View File

@@ -1 +1 @@
MANIFEST-000034 MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/02-23:14:23.347986 7f9ff37fe6c0 Recovering log #32 2023/10/23-16:21:18.818735 7fc51b7fe6c0 Recovering log #112
2023/10/02-23:14:23.358654 7f9ff37fe6c0 Delete type=3 #30 2023/10/23-16:21:18.828413 7fc51b7fe6c0 Delete type=3 #110
2023/10/02-23:14:23.358719 7f9ff37fe6c0 Delete type=0 #32 2023/10/23-16:21:18.828468 7fc51b7fe6c0 Delete type=0 #112
2023/10/02-23:14:38.403000 7f9d71bff6c0 Level-0 table #37: started 2023/10/23-16:38:21.235245 7fc299bff6c0 Level-0 table #117: started
2023/10/02-23:14:38.403060 7f9d71bff6c0 Level-0 table #37: 0 bytes OK 2023/10/23-16:38:21.235287 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/02-23:14:38.409459 7f9d71bff6c0 Delete type=0 #35 2023/10/23-16:38:21.288685 7fc299bff6c0 Delete type=0 #115
2023/10/02-23:14:38.416094 7f9d71bff6c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.402896 7fc299bff6c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)
2023/10/02-23:14:38.416119 7f9d71bff6c0 Manual compaction at level-1 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.445657 7fc299bff6c0 Manual compaction at level-1 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2023/10/02-23:10:18.443082 7f9ff27fc6c0 Recovering log #28 2023/10/23-16:10:20.406453 7fc51bfff6c0 Recovering log #108
2023/10/02-23:10:18.496390 7f9ff27fc6c0 Delete type=3 #26 2023/10/23-16:10:20.455315 7fc51bfff6c0 Delete type=3 #106
2023/10/02-23:10:18.496457 7f9ff27fc6c0 Delete type=0 #28 2023/10/23-16:10:20.455416 7fc51bfff6c0 Delete type=0 #108
2023/10/02-23:10:47.651296 7f9d71bff6c0 Level-0 table #33: started 2023/10/23-16:21:11.331176 7fc299bff6c0 Level-0 table #113: started
2023/10/02-23:10:47.651362 7f9d71bff6c0 Level-0 table #33: 0 bytes OK 2023/10/23-16:21:11.331203 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/02-23:10:47.687557 7f9d71bff6c0 Delete type=0 #31 2023/10/23-16:21:11.340134 7fc299bff6c0 Delete type=0 #111
2023/10/02-23:10:47.767121 7f9d71bff6c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.358495 7fc299bff6c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)
2023/10/02-23:10:47.767168 7f9d71bff6c0 Manual compaction at level-1 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.367303 7fc299bff6c0 Manual compaction at level-1 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)

BIN
packs/armor/MANIFEST-000114 Normal file

Binary file not shown.

View File

View File

@@ -1 +1 @@
MANIFEST-000034 MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/02-23:14:23.402486 7f9ff37fe6c0 Recovering log #32 2023/10/23-16:21:18.866233 7fc51b7fe6c0 Recovering log #112
2023/10/02-23:14:23.413596 7f9ff37fe6c0 Delete type=3 #30 2023/10/23-16:21:18.876627 7fc51b7fe6c0 Delete type=3 #110
2023/10/02-23:14:23.413697 7f9ff37fe6c0 Delete type=0 #32 2023/10/23-16:21:18.876726 7fc51b7fe6c0 Delete type=0 #112
2023/10/02-23:14:38.416250 7f9d71bff6c0 Level-0 table #37: started 2023/10/23-16:38:21.562992 7fc299bff6c0 Level-0 table #117: started
2023/10/02-23:14:38.416269 7f9d71bff6c0 Level-0 table #37: 0 bytes OK 2023/10/23-16:38:21.563052 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/02-23:14:38.423340 7f9d71bff6c0 Delete type=0 #35 2023/10/23-16:38:21.606768 7fc299bff6c0 Delete type=0 #115
2023/10/02-23:14:38.443073 7f9d71bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.649491 7fc299bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2023/10/02-23:10:18.665551 7f9ff27fc6c0 Recovering log #28 2023/10/23-16:10:20.672216 7fc51bfff6c0 Recovering log #108
2023/10/02-23:10:18.724044 7f9ff27fc6c0 Delete type=3 #26 2023/10/23-16:10:20.732577 7fc51bfff6c0 Delete type=3 #106
2023/10/02-23:10:18.724179 7f9ff27fc6c0 Delete type=0 #28 2023/10/23-16:10:20.732730 7fc51bfff6c0 Delete type=0 #108
2023/10/02-23:10:47.847150 7f9d71bff6c0 Level-0 table #33: started 2023/10/23-16:21:11.375247 7fc299bff6c0 Level-0 table #113: started
2023/10/02-23:10:47.847205 7f9d71bff6c0 Level-0 table #33: 0 bytes OK 2023/10/23-16:21:11.375301 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/02-23:10:47.883834 7f9d71bff6c0 Delete type=0 #31 2023/10/23-16:21:11.384595 7fc299bff6c0 Delete type=0 #111
2023/10/02-23:10:47.926716 7f9d71bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.403049 7fc299bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

View File

@@ -1 +1 @@
MANIFEST-000034 MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/02-23:14:23.415539 7f9ff27fc6c0 Recovering log #32 2023/10/23-16:21:18.878355 7fc51a7fc6c0 Recovering log #112
2023/10/02-23:14:23.426966 7f9ff27fc6c0 Delete type=3 #30 2023/10/23-16:21:18.889689 7fc51a7fc6c0 Delete type=3 #110
2023/10/02-23:14:23.427019 7f9ff27fc6c0 Delete type=0 #32 2023/10/23-16:21:18.889751 7fc51a7fc6c0 Delete type=0 #112
2023/10/02-23:14:38.423526 7f9d71bff6c0 Level-0 table #37: started 2023/10/23-16:38:21.520237 7fc299bff6c0 Level-0 table #117: started
2023/10/02-23:14:38.423560 7f9d71bff6c0 Level-0 table #37: 0 bytes OK 2023/10/23-16:38:21.520269 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/02-23:14:38.429512 7f9d71bff6c0 Delete type=0 #35 2023/10/23-16:38:21.562758 7fc299bff6c0 Delete type=0 #115
2023/10/02-23:14:38.443085 7f9d71bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.649457 7fc299bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2023/10/02-23:10:18.726340 7f9ff37fe6c0 Recovering log #28 2023/10/23-16:10:20.739722 7fc51a7fc6c0 Recovering log #108
2023/10/02-23:10:18.791256 7f9ff37fe6c0 Delete type=3 #26 2023/10/23-16:10:20.793493 7fc51a7fc6c0 Delete type=3 #106
2023/10/02-23:10:18.791336 7f9ff37fe6c0 Delete type=0 #28 2023/10/23-16:10:20.793641 7fc51a7fc6c0 Delete type=0 #108
2023/10/02-23:10:47.767271 7f9d71bff6c0 Level-0 table #33: started 2023/10/23-16:21:11.384741 7fc299bff6c0 Level-0 table #113: started
2023/10/02-23:10:47.767300 7f9d71bff6c0 Level-0 table #33: 0 bytes OK 2023/10/23-16:21:11.384782 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/02-23:10:47.804530 7f9d71bff6c0 Delete type=0 #31 2023/10/23-16:21:11.394018 7fc299bff6c0 Delete type=0 #111
2023/10/02-23:10:47.926630 7f9d71bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.403106 7fc299bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@@ -0,0 +1 @@
MANIFEST-000042

0
packs/cybernetics/LOCK Normal file
View File

8
packs/cybernetics/LOG Normal file
View File

@@ -0,0 +1,8 @@
2023/10/23-16:21:18.916086 7fc51b7fe6c0 Recovering log #40
2023/10/23-16:21:18.926380 7fc51b7fe6c0 Delete type=3 #38
2023/10/23-16:21:18.926444 7fc51b7fe6c0 Delete type=0 #40
2023/10/23-16:38:21.687516 7fc299bff6c0 Level-0 table #45: started
2023/10/23-16:38:21.687571 7fc299bff6c0 Level-0 table #45: 0 bytes OK
2023/10/23-16:38:21.736925 7fc299bff6c0 Delete type=0 #43
2023/10/23-16:38:21.737272 7fc299bff6c0 Manual compaction at level-0 from '!items!0JlVJvgxQQWY8lpO' @ 72057594037927935 : 1 .. '!items!zjxV4mcELwbZU8Et' @ 0 : 0; will stop at (end)
2023/10/23-16:38:21.737344 7fc299bff6c0 Manual compaction at level-1 from '!items!0JlVJvgxQQWY8lpO' @ 72057594037927935 : 1 .. '!items!zjxV4mcELwbZU8Et' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,8 @@
2023/10/23-16:10:20.951307 7fc51bfff6c0 Recovering log #36
2023/10/23-16:10:21.100428 7fc51bfff6c0 Delete type=3 #34
2023/10/23-16:10:21.100526 7fc51bfff6c0 Delete type=0 #36
2023/10/23-16:21:11.413951 7fc299bff6c0 Level-0 table #41: started
2023/10/23-16:21:11.413979 7fc299bff6c0 Level-0 table #41: 0 bytes OK
2023/10/23-16:21:11.422105 7fc299bff6c0 Delete type=0 #39
2023/10/23-16:21:11.422327 7fc299bff6c0 Manual compaction at level-0 from '!items!0JlVJvgxQQWY8lpO' @ 72057594037927935 : 1 .. '!items!zjxV4mcELwbZU8Et' @ 0 : 0; will stop at (end)
2023/10/23-16:21:11.422382 7fc299bff6c0 Manual compaction at level-1 from '!items!0JlVJvgxQQWY8lpO' @ 72057594037927935 : 1 .. '!items!zjxV4mcELwbZU8Et' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

View File

@@ -1 +1 @@
MANIFEST-000034 MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/02-23:14:23.361211 7f9ff27fc6c0 Recovering log #32 2023/10/23-16:21:18.830319 7fc51a7fc6c0 Recovering log #112
2023/10/02-23:14:23.373216 7f9ff27fc6c0 Delete type=3 #30 2023/10/23-16:21:18.840025 7fc51a7fc6c0 Delete type=3 #110
2023/10/02-23:14:23.373318 7f9ff27fc6c0 Delete type=0 #32 2023/10/23-16:21:18.840086 7fc51a7fc6c0 Delete type=0 #112
2023/10/02-23:14:38.409553 7f9d71bff6c0 Level-0 table #37: started 2023/10/23-16:38:21.349441 7fc299bff6c0 Level-0 table #117: started
2023/10/02-23:14:38.409576 7f9d71bff6c0 Level-0 table #37: 0 bytes OK 2023/10/23-16:38:21.349501 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/02-23:14:38.415960 7f9d71bff6c0 Delete type=0 #35 2023/10/23-16:38:21.402714 7fc299bff6c0 Delete type=0 #115
2023/10/02-23:14:38.416104 7f9d71bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.445484 7fc299bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2023/10/02-23:10:18.498716 7f9ff37fe6c0 Recovering log #28 2023/10/23-16:10:20.466941 7fc51a7fc6c0 Recovering log #108
2023/10/02-23:10:18.553677 7f9ff37fe6c0 Delete type=3 #26 2023/10/23-16:10:20.525312 7fc51a7fc6c0 Delete type=3 #106
2023/10/02-23:10:18.553743 7f9ff37fe6c0 Delete type=0 #28 2023/10/23-16:10:20.525371 7fc51a7fc6c0 Delete type=0 #108
2023/10/02-23:10:47.687666 7f9d71bff6c0 Level-0 table #33: started 2023/10/23-16:21:11.349899 7fc299bff6c0 Level-0 table #113: started
2023/10/02-23:10:47.687692 7f9d71bff6c0 Level-0 table #33: 0 bytes OK 2023/10/23-16:21:11.349986 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/02-23:10:47.730820 7f9d71bff6c0 Delete type=0 #31 2023/10/23-16:21:11.358380 7fc299bff6c0 Delete type=0 #111
2023/10/02-23:10:47.767133 7f9d71bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.367287 7fc299bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

1
packs/genetics/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000002

0
packs/genetics/LOCK Normal file
View File

5
packs/genetics/LOG Normal file
View File

@@ -0,0 +1,5 @@
2023/10/19-11:34:56.763463 7f8105ffb6c0 Delete type=3 #1
2023/10/19-11:42:11.816999 7f7e677006c0 Level-0 table #5: started
2023/10/19-11:42:11.817033 7f7e677006c0 Level-0 table #5: 0 bytes OK
2023/10/19-11:42:11.824095 7f7e677006c0 Delete type=0 #3
2023/10/19-11:42:11.824348 7f7e677006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

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

View File

@@ -1 +1 @@
MANIFEST-000034 MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/02-23:14:23.440882 7f9ff3fff6c0 Recovering log #32 2023/10/23-16:21:18.903797 7fc51affd6c0 Recovering log #112
2023/10/02-23:14:23.451699 7f9ff3fff6c0 Delete type=3 #30 2023/10/23-16:21:18.914282 7fc51affd6c0 Delete type=3 #110
2023/10/02-23:14:23.451952 7f9ff3fff6c0 Delete type=0 #32 2023/10/23-16:21:18.914341 7fc51affd6c0 Delete type=0 #112
2023/10/02-23:14:38.450027 7f9d71bff6c0 Level-0 table #37: started 2023/10/23-16:38:21.649612 7fc299bff6c0 Level-0 table #117: started
2023/10/02-23:14:38.450048 7f9d71bff6c0 Level-0 table #37: 0 bytes OK 2023/10/23-16:38:21.649693 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/02-23:14:38.456399 7f9d71bff6c0 Delete type=0 #35 2023/10/23-16:38:21.687274 7fc299bff6c0 Delete type=0 #115
2023/10/02-23:14:38.456527 7f9d71bff6c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.737212 7fc299bff6c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/02-23:14:38.456542 7f9d71bff6c0 Manual compaction at level-1 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.737295 7fc299bff6c0 Manual compaction at level-1 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2023/10/02-23:10:18.856824 7f9ff2ffd6c0 Recovering log #28 2023/10/23-16:10:20.851365 7fc51affd6c0 Recovering log #108
2023/10/02-23:10:18.914305 7f9ff2ffd6c0 Delete type=3 #26 2023/10/23-16:10:20.940844 7fc51affd6c0 Delete type=3 #106
2023/10/02-23:10:18.914448 7f9ff2ffd6c0 Delete type=0 #28 2023/10/23-16:10:20.940918 7fc51affd6c0 Delete type=0 #108
2023/10/02-23:10:47.926887 7f9d71bff6c0 Level-0 table #33: started 2023/10/23-16:21:11.403299 7fc299bff6c0 Level-0 table #113: started
2023/10/02-23:10:47.926952 7f9d71bff6c0 Level-0 table #33: 0 bytes OK 2023/10/23-16:21:11.403360 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/02-23:10:47.962319 7f9d71bff6c0 Delete type=0 #31 2023/10/23-16:21:11.413808 7fc299bff6c0 Delete type=0 #111
2023/10/02-23:10:47.962591 7f9d71bff6c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.422303 7fc299bff6c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/02-23:10:47.962645 7f9d71bff6c0 Manual compaction at level-1 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.422358 7fc299bff6c0 Manual compaction at level-1 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)

BIN
packs/perks/MANIFEST-000114 Normal file

Binary file not shown.

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

View File

@@ -1 +1 @@
MANIFEST-000034 MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/02-23:14:23.375471 7f9ff2ffd6c0 Recovering log #32 2023/10/23-16:21:18.841422 7fc51bfff6c0 Recovering log #112
2023/10/02-23:14:23.386987 7f9ff2ffd6c0 Delete type=3 #30 2023/10/23-16:21:18.851392 7fc51bfff6c0 Delete type=3 #110
2023/10/02-23:14:23.387042 7f9ff2ffd6c0 Delete type=0 #32 2023/10/23-16:21:18.851494 7fc51bfff6c0 Delete type=0 #112
2023/10/02-23:14:38.437035 7f9d71bff6c0 Level-0 table #37: started 2023/10/23-16:38:21.402937 7fc299bff6c0 Level-0 table #117: started
2023/10/02-23:14:38.437058 7f9d71bff6c0 Level-0 table #37: 0 bytes OK 2023/10/23-16:38:21.402989 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/02-23:14:38.442993 7f9d71bff6c0 Delete type=0 #35 2023/10/23-16:38:21.445303 7fc299bff6c0 Delete type=0 #115
2023/10/02-23:14:38.443105 7f9d71bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.520208 7fc299bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2023/10/02-23:10:18.555858 7f9ff3fff6c0 Recovering log #28 2023/10/23-16:10:20.532396 7fc51b7fe6c0 Recovering log #108
2023/10/02-23:10:18.608266 7f9ff3fff6c0 Delete type=3 #26 2023/10/23-16:10:20.583047 7fc51b7fe6c0 Delete type=3 #106
2023/10/02-23:10:18.608317 7f9ff3fff6c0 Delete type=0 #28 2023/10/23-16:10:20.583182 7fc51b7fe6c0 Delete type=0 #108
2023/10/02-23:10:47.730988 7f9d71bff6c0 Level-0 table #33: started 2023/10/23-16:21:11.358565 7fc299bff6c0 Level-0 table #113: started
2023/10/02-23:10:47.731029 7f9d71bff6c0 Level-0 table #33: 0 bytes OK 2023/10/23-16:21:11.358632 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/02-23:10:47.766999 7f9d71bff6c0 Delete type=0 #31 2023/10/23-16:21:11.367191 7fc299bff6c0 Delete type=0 #111
2023/10/02-23:10:47.767154 7f9d71bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.375219 7fc299bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

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

View File

@@ -1 +1 @@
MANIFEST-000034 MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/02-23:14:23.428388 7f9ff2ffd6c0 Recovering log #32 2023/10/23-16:21:18.891042 7fc51bfff6c0 Recovering log #112
2023/10/02-23:14:23.438828 7f9ff2ffd6c0 Delete type=3 #30 2023/10/23-16:21:18.901616 7fc51bfff6c0 Delete type=3 #110
2023/10/02-23:14:23.438894 7f9ff2ffd6c0 Delete type=0 #32 2023/10/23-16:21:18.901698 7fc51bfff6c0 Delete type=0 #112
2023/10/02-23:14:38.443218 7f9d71bff6c0 Level-0 table #37: started 2023/10/23-16:38:21.606929 7fc299bff6c0 Level-0 table #117: started
2023/10/02-23:14:38.443238 7f9d71bff6c0 Level-0 table #37: 0 bytes OK 2023/10/23-16:38:21.606959 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/02-23:14:38.449738 7f9d71bff6c0 Delete type=0 #35 2023/10/23-16:38:21.649170 7fc299bff6c0 Delete type=0 #115
2023/10/02-23:14:38.456514 7f9d71bff6c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.649544 7fc299bff6c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)
2023/10/02-23:14:38.456551 7f9d71bff6c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.737175 7fc299bff6c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2023/10/02-23:10:18.794082 7f9ff3fff6c0 Recovering log #28 2023/10/23-16:10:20.795855 7fc51b7fe6c0 Recovering log #108
2023/10/02-23:10:18.853728 7f9ff3fff6c0 Delete type=3 #26 2023/10/23-16:10:20.847003 7fc51b7fe6c0 Delete type=3 #106
2023/10/02-23:10:18.853881 7f9ff3fff6c0 Delete type=0 #28 2023/10/23-16:10:20.847142 7fc51b7fe6c0 Delete type=0 #108
2023/10/02-23:10:47.884047 7f9d71bff6c0 Level-0 table #33: started 2023/10/23-16:21:11.394255 7fc299bff6c0 Level-0 table #113: started
2023/10/02-23:10:47.884105 7f9d71bff6c0 Level-0 table #33: 0 bytes OK 2023/10/23-16:21:11.394305 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/02-23:10:47.926424 7f9d71bff6c0 Delete type=0 #31 2023/10/23-16:21:11.402795 7fc299bff6c0 Delete type=0 #111
2023/10/02-23:10:47.926752 7f9d71bff6c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.403156 7fc299bff6c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)
2023/10/02-23:10:47.926813 7f9d71bff6c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.413937 7fc299bff6c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)

Binary file not shown.

0
packs/weapons/000117.log Normal file
View File

View File

@@ -1 +1 @@
MANIFEST-000035 MANIFEST-000115

View File

@@ -1,8 +1,8 @@
2023/10/02-23:14:23.388553 7f9ff3fff6c0 Recovering log #33 2023/10/23-16:21:18.853136 7fc51affd6c0 Recovering log #113
2023/10/02-23:14:23.400519 7f9ff3fff6c0 Delete type=3 #31 2023/10/23-16:21:18.864323 7fc51affd6c0 Delete type=3 #111
2023/10/02-23:14:23.400573 7f9ff3fff6c0 Delete type=0 #33 2023/10/23-16:21:18.864379 7fc51affd6c0 Delete type=0 #113
2023/10/02-23:14:38.429647 7f9d71bff6c0 Level-0 table #38: started 2023/10/23-16:38:21.445678 7fc299bff6c0 Level-0 table #118: started
2023/10/02-23:14:38.429671 7f9d71bff6c0 Level-0 table #38: 0 bytes OK 2023/10/23-16:38:21.445739 7fc299bff6c0 Level-0 table #118: 0 bytes OK
2023/10/02-23:14:38.436914 7f9d71bff6c0 Delete type=0 #36 2023/10/23-16:38:21.519996 7fc299bff6c0 Delete type=0 #116
2023/10/02-23:14:38.443096 7f9d71bff6c0 Manual compaction at level-0 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.606911 7fc299bff6c0 Manual compaction at level-0 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)
2023/10/02-23:14:38.443123 7f9d71bff6c0 Manual compaction at level-1 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end) 2023/10/23-16:38:21.649518 7fc299bff6c0 Manual compaction at level-1 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2023/10/02-23:10:18.609848 7f9ff2ffd6c0 Recovering log #29 2023/10/23-16:10:20.585116 7fc51affd6c0 Recovering log #109
2023/10/02-23:10:18.663665 7f9ff2ffd6c0 Delete type=3 #27 2023/10/23-16:10:20.661600 7fc51affd6c0 Delete type=3 #107
2023/10/02-23:10:18.663724 7f9ff2ffd6c0 Delete type=0 #29 2023/10/23-16:10:20.661671 7fc51affd6c0 Delete type=0 #109
2023/10/02-23:10:47.804820 7f9d71bff6c0 Level-0 table #34: started 2023/10/23-16:21:11.367314 7fc299bff6c0 Level-0 table #114: started
2023/10/02-23:10:47.804852 7f9d71bff6c0 Level-0 table #34: 0 bytes OK 2023/10/23-16:21:11.367340 7fc299bff6c0 Level-0 table #114: 0 bytes OK
2023/10/02-23:10:47.846980 7f9d71bff6c0 Delete type=0 #32 2023/10/23-16:21:11.374984 7fc299bff6c0 Delete type=0 #112
2023/10/02-23:10:47.926664 7f9d71bff6c0 Manual compaction at level-0 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.394227 7fc299bff6c0 Manual compaction at level-0 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)
2023/10/02-23:10:47.926783 7f9d71bff6c0 Manual compaction at level-1 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end) 2023/10/23-16:21:11.403131 7fc299bff6c0 Manual compaction at level-1 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1334,9 +1334,6 @@ Focus FOC: #ff0084
.color-class-foc { .color-class-foc {
background-color: #ff0084; background-color: #ff0084;
} }
.color-class-common {
background: rgba(185, 183, 40, 0.45);
}
.status-small-label { .status-small-label {
font-size: 0.65rem; font-size: 0.65rem;
} }
@@ -1509,7 +1506,19 @@ Focus FOC: #ff0084
margin-bottom: 1rem; margin-bottom: 1rem;
background-color: #403f3e40; background-color: #403f3e40;
} }
.stat-column-size {
max-width: 12rem;
min-width: 12rem;
margin-right: 4px;
}
.derivated-column-size {
max-width: 14rem;
min-width: 14rem;
margin-right: 4px;
}
.hplocation-column {
margin-left: 4px;
}
.dice-pool-image { .dice-pool-image {
border: 0; border: 0;
margin-left: 4px; margin-left: 4px;

View File

@@ -92,6 +92,15 @@
"system": "fvtt-dark-stars", "system": "fvtt-dark-stars",
"private": false, "private": false,
"flags": {} "flags": {}
},
{
"type": "Item",
"label": "Cyber&Genetics",
"name": "cybernetics",
"path": "packs/cybernetics",
"system": "fvtt-dark-stars",
"private": false,
"flags": {}
} }
], ],
"primaryTokenAttribute": "secondary.hp", "primaryTokenAttribute": "secondary.hp",
@@ -100,14 +109,14 @@
"styles": [ "styles": [
"styles/simple.css" "styles/simple.css"
], ],
"version": "11.0.1", "version": "11.0.10",
"compatibility": { "compatibility": {
"minimum": "11", "minimum": "11",
"verified": "11" "verified": "11"
}, },
"title": "Dark Stars RPG", "title": "Dark Stars RPG",
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-dark-stars/raw/branch/main/system.json", "manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-dark-stars/raw/branch/main/system.json",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-dark-stars/archive/fvtt-dark-stars-v11.0.1.zip", "download": "https://www.uberwald.me/gitea/uberwald/fvtt-dark-stars/archive/fvtt-dark-stars-v11.0.10.zip",
"url": "https://www.uberwald.me/gitea/uberwald/", "url": "https://www.uberwald.me/gitea/uberwald/",
"background": "images/ui/dark_stars_welcome_page.webp", "background": "images/ui/dark_stars_welcome_page.webp",
"id": "fvtt-dark-stars" "id": "fvtt-dark-stars"

View File

@@ -173,6 +173,7 @@
"hitlocations": { "hitlocations": {
"head": { "head": {
"label": "Head", "label": "Head",
"ratio": 0.3,
"dice": [ "dice": [
1 1
], ],
@@ -182,6 +183,7 @@
}, },
"chest": { "chest": {
"label": "Chest", "label": "Chest",
"ratio": 0.5,
"dice": [ "dice": [
2, 2,
4 4
@@ -192,6 +194,7 @@
}, },
"abdomen": { "abdomen": {
"label": "Abdomen", "label": "Abdomen",
"ratio": 0.3,
"dice": [ "dice": [
5, 5,
6 6
@@ -202,6 +205,7 @@
}, },
"leftarm": { "leftarm": {
"label": "Left Arm", "label": "Left Arm",
"ratio": 0.2,
"dice": [ "dice": [
7 7
], ],
@@ -211,6 +215,7 @@
}, },
"rightarm": { "rightarm": {
"label": "Right Arm", "label": "Right Arm",
"ratio": 0.2,
"dice": [ "dice": [
8 8
], ],
@@ -220,6 +225,7 @@
}, },
"rightleg": { "rightleg": {
"label": "Right Leg", "label": "Right Leg",
"ratio": 0.4,
"dice": [ "dice": [
9 9
], ],
@@ -229,6 +235,7 @@
}, },
"leftleg": { "leftleg": {
"label": "Left Leg", "label": "Left Leg",
"ratio": 0.4,
"dice": [ "dice": [
10 10
], ],
@@ -278,7 +285,8 @@
"weapon", "weapon",
"money", "money",
"genetic", "genetic",
"cyber" "cyber",
"ammo"
], ],
"skill": { "skill": {
"base": "", "base": "",
@@ -299,11 +307,33 @@
"description": "" "description": ""
}, },
"genetic": { "genetic": {
"hup": 0, "genertictype": "I",
"upgrade": "",
"upgradelocation": "",
"size": "",
"power": "",
"sp": 0,
"sdp": 0,
"hup": "",
"surgery": "",
"availability": "",
"cost": 0,
"equipped": false,
"description": "" "description": ""
}, },
"cyber": { "cyber": {
"hup": 0, "cybertype": "I",
"upgrade": "",
"upgradelocation": "",
"size": "",
"power": "",
"sp": 0,
"sdp": 0,
"hup": "",
"surgery": "",
"availability": "",
"cost": 0,
"equipped": false,
"description": "" "description": ""
}, },
"armor": { "armor": {
@@ -355,10 +385,12 @@
}, },
"equipment": { "equipment": {
"equiptype": "", "equiptype": "",
"cost": 0,
"skillbonus": "", "skillbonus": "",
"quantity": 0, "quantity": 0,
"bulk": 0, "bulk": 0,
"sp": 0,
"runningtime": 0,
"cost": 0,
"equipped": false, "equipped": false,
"iscontainer": false, "iscontainer": false,
"containercapacity": 0, "containercapacity": 0,
@@ -370,11 +402,23 @@
"quantity": 0, "quantity": 0,
"description": "" "description": ""
}, },
"ammo": {
"ava": "",
"damage": "",
"bulk": 0,
"br": 0,
"cost": 0,
"sp": 0,
"quantity": 0,
"properties": ""
},
"weapon": { "weapon": {
"weapontype": "", "weapontype": "",
"associatedskill": "", "associatedskill": "",
"penetrationmin": "", "penetrationmin": "",
"penetrationmax": "", "penetrationmax": "",
"needammo": false,
"ammoid": "",
"hashpdamage": true, "hashpdamage": true,
"damage": "", "damage": "",
"hasfatiguedamage": false, "hasfatiguedamage": false,

View File

@@ -29,7 +29,7 @@
<div class="tab main" data-group="primary" data-tab="main"> <div class="tab main" data-group="primary" data-tab="main">
<div class="flexrow"> <div class="flexrow">
<ul class="stat-list alternate-list item-list"> <ul class="stat-list alternate-list item-list stat-column-size">
{{#each system.attributes as |attr key|}} {{#each system.attributes as |attr key|}}
<li class="item stat flexrow list-item list-item-shadow"> <li class="item stat flexrow list-item list-item-shadow">
<label class="item-field-label-medium">{{attr.label}}</label> <label class="item-field-label-medium">{{attr.label}}</label>
@@ -38,7 +38,7 @@
</li> </li>
</ul> </ul>
<ul class="stat-list alternate-list item-list"> <ul class="stat-list alternate-list item-list derivated-column-size">
{{#each system.derivated as |deriv key|}} {{#each system.derivated as |deriv key|}}
<li class="item stat flexrow list-item list-item-shadow"> <li class="item stat flexrow list-item list-item-shadow">
<label class="item-field-label-medium">{{deriv.label}}</label> <label class="item-field-label-medium">{{deriv.label}}</label>
@@ -60,6 +60,19 @@
<label class="item-field-label-short">&nbsp;/&nbsp;{{second.max}}</label> <label class="item-field-label-short">&nbsp;/&nbsp;{{second.max}}</label>
{{/if}} {{/if}}
<input type="text" class="item-field-label-short padd-right" name="system.secondary.{{key}}.bonus" value="{{second.bonus}}" data-dtype="Number"/> <input type="text" class="item-field-label-short padd-right" name="system.secondary.{{key}}.bonus" value="{{second.bonus}}" data-dtype="Number"/>
{{#if (eq key "hp")}}
<ul class="stat-list alternate-list item-list hplocation-column">
{{#each @root.system.hitlocations as |loc key|}}
<li class="item stat flexrow list-item list-item-shadow">
<label class="item-field-label-short">{{loc.label}}</label>
<input type="text" class="item-field-label-short padd-right" name="system.hitlocations.{{key}}.value" value="{{loc.value}}" data-dtype="Number"/>
<label class="item-field-label-short">&nbsp;/&nbsp;{{loc.max}}</label>
</li>
{{/each}}
</ul>
{{/if}}
{{/each}} {{/each}}
</li> </li>
<li class="item stat flexrow list-item list-item-shadow"> <li class="item stat flexrow list-item list-item-shadow">
@@ -153,12 +166,15 @@
<span class="item-name-label-header-long"> <span class="item-name-label-header-long">
<h3><label class="items-title-text">Weapons</label></h3> <h3><label class="items-title-text">Weapons</label></h3>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-medium">
<label class="short-label">Type</label> <label class="short-label">Type</label>
</span> </span>
<span class="item-field-label-long"> <span class="item-field-label-long">
<label class="short-label">Skill</label> <label class="short-label">Skill</label>
</span> </span>
<span class="item-field-label-long">
<label class="short-label">Ammo</label>
</span>
<span class="item-field-label-medium"> <span class="item-field-label-medium">
<label class="short-label">Damage</label> <label class="short-label">Damage</label>
</span> </span>
@@ -169,13 +185,28 @@
src="{{weapon.img}}" /></a> src="{{weapon.img}}" /></a>
<span class="item-name-label-long"><a class ="roll-weapon">{{weapon.name}}</a></span> <span class="item-name-label-long"><a class ="roll-weapon">{{weapon.name}}</a></span>
<span class="item-field-label-short">{{upperFirst weapon.system.weapontype}}</span> <span class="item-field-label-medium">{{upperFirst weapon.system.weapontype}}</span>
<span class="item-field-label-long">{{weapon.system.skill}}</span>
<span class="item-field-label-long">{{weapon.system.damage}}</span>
<span class="item-field-label-long">{{upperFirst weapon.system.associatedskill}}</span>
{{#if weapon.system.needammo}}
<select class="item-field-label-long edit-weapon-ammo" type="text" data-dtype="String">
{{#select system.ammoid}}
<option value="">None</option>
{{#each @root.ammos as |ammo index|}}
<option value="{{ammo._id}}">{{ammo.name}}</option>
{{/each}}
{{/select}}
</select>
{{#if weapon.ammo}}
<span class="item-field-label-medium"><label>{{weapon.ammo.system.damage}}</label></span>
{{else}}
<span class="item-field-label-medium"><label>-</label></span>
{{/if}}
{{else}}
<span class="item-field-label-long"><label>N/A</label></span>
<span class="item-field-label-medium"><label>{{weapon.system.damage}}</label></span>
{{/if}}
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
@@ -296,12 +327,20 @@
<span class="item-name-label-header"> <span class="item-name-label-header">
<h3><label class="items-title-text">Weapons</label></h3> <h3><label class="items-title-text">Weapons</label></h3>
</span> </span>
<span class="item-field-label-short">
<span class="item-field-label-medium">
<label class="short-label">Attack</label> <label class="short-label">Attack</label>
</span> </span>
<span class="item-field-label-short">
<span class="item-field-label-vlong">
<label class="short-label">Ammo</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Damage</label> <label class="short-label">Damage</label>
</span> </span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a> <a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a>
</div> </div>
@@ -311,8 +350,27 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{weapon.img}}" /></a> src="{{weapon.img}}" /></a>
<span class="item-name-label">{{weapon.name}}</span> <span class="item-name-label">{{weapon.name}}</span>
<span class="item-field-label-short"><label>{{weapon.system.ability}}</label></span>
<span class="item-field-label-short"><label>{{weapon.system.damage}}</label></span> <span class="item-field-label-medium"><label>{{weapon.system.weapontype}}</label></span>
{{#if weapon.system.needammo}}
<select class="item-field-label-vlong edit-weapon-ammo" type="text" data-dtype="String">
{{#select system.ammoid}}
<option value="">None</option>
{{#each @root.ammos as |ammo index|}}
<option value="{{ammo._id}}">{{ammo.name}}</option>
{{/each}}
{{/select}}
</select>
{{#if weapon.ammo}}
<span class="item-field-label-medium"><label>{{weapon.ammo.system.damage}}</label></span>
{{else}}
<span class="item-field-label-medium"><label>-</label></span>
{{/if}}
{{else}}
<span class="item-field-label-vlong"><label>N/A</label></span>
<span class="item-field-label-medium"><label>{{weapon.system.damage}}</label></span>
{{/if}}
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
@@ -324,15 +382,47 @@
{{/each}} {{/each}}
</ul> </ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Ammos</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">Quantity</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Damage</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each ammos as |ammo key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{ammo._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{ammo.img}}" /></a>
<span class="item-name-label">{{ammo.name}}</span>
<span class="item-field-label-short"><label>{{ammo.system.quantity}}</label></span>
<span class="item-field-label-short"><label>{{ammo.system.damage}}</label></span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <span class="item-name-label-header">
<h3><label class="items-title-text">Armors</label></h3> <h3><label class="items-title-text">Armors</label></h3>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-medium">
<label class="short-label">Type</label> <label class="short-label">Type</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-medium">
<label class="short-label">Absorption</label> <label class="short-label">Absorption</label>
</span> </span>
@@ -346,8 +436,8 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{armor.img}}" /></a> src="{{armor.img}}" /></a>
<span class="item-name-label">{{armor.name}}</span> <span class="item-name-label">{{armor.name}}</span>
<span class="item-field-label-short">{{upper armor.system.armortype}}</span> <span class="item-field-label-medium">{{upper armor.system.armortype}}</span>
<span class="item-field-label-short">{{armor.system.absorprionroll}}</span> <span class="item-field-label-medium">{{armor.system.absorprionroll}}</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
@@ -389,12 +479,93 @@
{{/each}} {{/each}}
</ul> </ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Cyber</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Location</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">SP</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">HUP</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="cyber" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each cybers as |cyber key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{cyber._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{cyber.img}}" /></a>
<span class="item-name-label">{{cyber.name}}</span>
<span class="item-field-label-medium">{{cyber.system.upgradelocation}}</span>
<span class="item-field-label-medium">{{cyber.system.sp}}</span>
<span class="item-field-label-medium">{{cyber.system.hup}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-equip" title="Worn">{{#if cyber.system.equipped}}<i
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Genetics</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Location</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">SP</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">HUP</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="genetic" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each genetics as |cyber key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{cyber._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{cyber.img}}" /></a>
<span class="item-name-label">{{cyber.name}}</span>
<span class="item-field-label-medium">{{cyber.system.upgradelocation}}</span>
<span class="item-field-label-medium">{{cyber.system.sp}}</span>
<span class="item-field-label-medium">{{cyber.system.hup}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-equip" title="Worn">{{#if cyber.system.equipped}}<i
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <span class="item-name-label-header">
<h3><label class="items-title-text">Equipment</label></h3> <h3><label class="items-title-text">Equipment</label></h3>
</span> </span>
<span class="item-field-label-long"> <span class="item-field-label-medium">
<label class="short-label">SP</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Running Time</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Quantity</label> <label class="short-label">Quantity</label>
</span> </span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
@@ -403,13 +574,19 @@
</div> </div>
</li> </li>
{{#each containersTree as |equip key|}} {{#each equipments as |equip key|}}
{{> systems/fvtt-crucible-rpg/templates/partial-actor-equipment.html equip=equip level=1}} <li class="item flexrow list-item list-item-shadow" data-item-id="{{equip._id}}">
<ul class="item-list list-item-shadow2 list-item-margin1"> <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
{{#each equip.data.contents as |subgear key|}} src="{{equip.img}}" /></a>
{{> systems/fvtt-crucible-rpg/templates/partial-actor-equipment.html equip=subgear level=2}} <span class="item-name-label">{{equip.name}}</span>
{{/each}} <span class="item-field-label-medium">{{equip.system.sp}}</span>
</ul> <span class="item-field-label-medium">{{equip.system.runningtime}}</span>
<span class="item-field-label-medium">{{equip.system.quantity}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}} {{/each}}
</ul> </ul>

View File

@@ -24,14 +24,13 @@
{{/if}} {{/if}}
{{#if weapon}} {{#if weapon}}
<li>Weapon : {{weapon.name}}</li> <li>Weapon : {{weapon.name}}</li>
<li>Location hit : {{upperFirst weaponAiming}} ({{locationMalus}})</li>
{{/if}} {{/if}}
{{#if isAboveEffectiveRange}} {{#if isAboveEffectiveRange}}
<li>Above effective range: yes, -30% applied</li> <li>Above effective range: yes, -30% applied</li>
{{/if}} {{/if}}
<li>Bonus/Malus: {{bonusMalus}}% </li> <li>Bonus/Malus: {{bonusMalus}}% </li>
<li>Final score: {{percentValue}}% </li> <li>Target Number: {{percentValue}}% </li>
<li>Result: {{diceResult}} </li> <li>Result: {{diceResult}} </li>
<li>Degrees: {{degrees}} </li> <li>Degrees: {{degrees}} </li>
@@ -50,12 +49,21 @@
{{/if}} {{/if}}
{{#if (and weapon isSuccess)}} {{#if (and weapon isSuccess)}}
{{#if weapon.system.hashpdamage}} <li>Location hit : {{upperFirst weaponAiming}} ({{locationMalus}})</li>
<li>Roll HP Damage: [[/r {{weapon.system.damage}}]]</li> {{#if weapon.ammo}}
{{/if}} <li>Roll Ammo Damage ({{weapon.ammo.name}}): [[/r {{weapon.ammo.system.damage}}*{{damageMultiplier}}]]</li>
{{#if weapon.system.hasfatiguedamage}} <li>BR: {{weapon.ammo.system.br}}</li>
<li>Roll Fatigue Damage: [[/r {{weapon.system.fatiguedamage}}]]</li>
{{else}}
{{#if weapon.system.hashpdamage}}
<li>Roll HP Damage: [[/r {{weapon.system.damage}}*{{damageMultiplier}}]]</li>
{{/if}}
{{#if weapon.system.hasfatiguedamage}}
<li>Roll Fatigue Damage: [[/r {{weapon.ammo.system.fatiguedamage}}*{{damageMultiplier}}]]</li>
{{/if}}
<li>BR: [[/r {{weapon.system.br}}]]</li>
{{/if}} {{/if}}
<li>Penetration : {{mul weapon.system.penetrationmin damageMultiplier}} - {{mul weapon.system.penetrationmax damageMultiplier}}</li>
{{/if}} {{/if}}
{{#if (and (not isSuccess) rerolls)}} {{#if (and (not isSuccess) rerolls)}}

View File

@@ -0,0 +1,56 @@
<form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
</div>
</header>
{{> systems/fvtt-dark-stars/templates/partials/partial-item-nav.hbs}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-dark-stars/templates/partials/partial-item-description.hbs}}
<div class="tab details" data-group="primary" data-tab="details">
<div class="tab" data-group="primary">
<ul>
<li class="flexrow"><label class="item-field-label-long">Damage formula</label>
<input type="text" class="right item-field-label-long" name="system.damage" value="{{system.damage}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Bulk</label>
<input type="text" class="input-numeric-short padd-right" name="system.bulk" value="{{system.bulk}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">BR</label>
<input type="text" class="input-numeric-short padd-right" name="system.br" value="{{system.br}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">SP</label>
<input type="text" class="input-numeric-short padd-right" name="system.sp" value="{{system.sp}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Properties</label>
<input type="text" class="right item-field-label-long" name="system.properties" value="{{system.properties}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Quantity</label>
<input type="text" class="input-numeric-short padd-right" name="system.quantity" value="{{system.quantity}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">Cost</label>
<input type="text" class="input-numeric-short padd-right" name="system.cost" value="{{system.cost}}" data-dtype="Number"/>
</li>
</ul>
</div>
</div>
</section>
</form>

View File

@@ -1,25 +1,66 @@
<form class="{{cssClass}}" autocomplete="off"> <form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header"> <header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/> <img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
<div class="header-fields"> <div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1> <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
</div> </div>
</header> </header>
{{> systems/fvtt-dark-stars/templates/partials/partial-item-nav.hbs}} {{> systems/fvtt-dark-stars/templates/partials/partial-item-nav.hbs}}
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
{{> systems/fvtt-dark-stars/templates/partials/partial-item-description.hbs}} {{> systems/fvtt-dark-stars/templates/partials/partial-item-description.hbs}}
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="generic-label">HUP</label> <li class="flexrow">
<input type="text" class="" name="system.hup" value="{{system.hup}}" data-dtype="Number"/> <label class="item-field-label-long">Cyber Type</label>
</li> <select class="item-field-label-vlong" type="text" name="system.cybertype" value="{{system.cybertype}}"
data-dtype="String">
</ul> {{#select system.cybertype}}
</div> {{#each config.cyberTypes as |type key|}}
</section> <option value="{{key}}">{{type}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-long">Upgrade</label>
<input type="text" class="item-field-label-vlong" name="system.upgrade" value="{{system.upgrade}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Upgrade Location</label>
<input type="text" class="item-field-label-vlong" name="system.upgradelocation" value="{{system.upgradelocation}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Size</label>
<input type="text" class="item-field-label-vlong" name="system.size" value="{{system.size}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Power</label>
<input type="text" class="item-field-label-vlong" name="system.power" value="{{system.power}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">SP</label>
<input type="text" class="item-field-label-short" name="system.sp" value="{{system.sp}}" data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">SDP</label>
<input type="text" class="item-field-label-short" name="system.sdp" value="{{system.sdp}}" data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">HUP</label>
<input type="text" class="item-field-label-vlong" name="system.hup" value="{{system.hup}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Surgery</label>
<input type="text" class="item-field-label-vlong" name="system.surgery" value="{{system.surgery}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Availability</label>
<input type="text" class="item-field-label-vlong" name="system.availability" value="{{system.availability}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Cost</label>
<input type="text" class="item-field-label-short" name="system.cost" value="{{system.cost}}" data-dtype="Number" />
</li>
<!--<li class="flexrow"><label class="item-field-label-long">Equipped ?</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipped" {{checked
system.equipped}} /></label>
</li>-->
</ul>
</div>
</section>
</form> </form>

View File

@@ -1,9 +1,9 @@
<form class="{{cssClass}}" autocomplete="off"> <form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header"> <header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/> <img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
<div class="header-fields"> <div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1> <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
</div> </div>
</header> </header>
{{> systems/fvtt-dark-stars/templates/partials/partial-item-nav.hbs}} {{> systems/fvtt-dark-stars/templates/partials/partial-item-nav.hbs}}
@@ -15,18 +15,30 @@
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-long">Equipped ?</label> <li class="flexrow"><label class="item-field-label-long">Bulk</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipped" {{checked system.equipped}}/></label> <input type="text" class="input-numeric-short padd-right" name="system.bulk" value="{{system.bulk}}"
</li> data-dtype="Number" />
<li class="flexrow"><label class="item-field-label-long">Quantity</label> </li>
<input type="text" class="input-numeric-short padd-right" name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/> <li class="flexrow"><label class="item-field-label-long">SP</label>
</li> <input type="text" class="item-field-label-short" name="system.sp" value="{{system.sp}}"
<li class="flexrow"><label class="item-field-label-long">Bulk</label> data-dtype="Number" />
<input type="text" class="input-numeric-short padd-right" name="system.bulk" value="{{system.bulk}}" data-dtype="Number"/> </li>
</li> <li class="flexrow"><label class="item-field-label-long">Running time</label>
<li class="flexrow"><label class="item-field-label-long">Cost</label> <input type="text" class="item-field-label-short" name="system.runningtime" value="{{system.runningtime}}"
<input type="text" class="input-numeric-short padd-right" name="system.cost" value="{{system.cost}}" data-dtype="Number"/> data-dtype="Number" />
</li> </li>
<li class="flexrow"><label class="item-field-label-long">Equipped ?</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipped" {{checked
system.equipped}} /></label>
</li>
<li class="flexrow"><label class="item-field-label-long">Quantity</label>
<input type="text" class="input-numeric-short padd-right" name="system.quantity" value="{{system.quantity}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">Cost</label>
<input type="text" class="input-numeric-short padd-right" name="system.cost" value="{{system.cost}}"
data-dtype="Number" />
</li>
</ul> </ul>
</div> </div>

View File

@@ -14,12 +14,53 @@
{{> systems/fvtt-dark-stars/templates/partials/partial-item-description.hbs}} {{> systems/fvtt-dark-stars/templates/partials/partial-item-description.hbs}}
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="generic-label">HUP</label> <li class="flexrow">
<input type="text" class="" name="system.hup" value="{{system.hup}}" data-dtype="Number"/> <label class="item-field-label-long">Genetic Type</label>
</li> <select class="item-field-label-vlong" type="text" name="system.cybertype" value="{{system.cybertype}}"
data-dtype="String">
</ul> {{#select system.cybertype}}
{{#each config.cyberTypes as |type key|}}
<option value="{{key}}">{{type}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-long">Upgrade</label>
<input type="text" class="item-field-label-vlong" name="system.upgrade" value="{{system.upgrade}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Upgrade Location</label>
<input type="text" class="item-field-label-vlong" name="system.upgradelocation" value="{{system.upgradelocation}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Size</label>
<input type="text" class="item-field-label-vlong" name="system.size" value="{{system.size}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Power</label>
<input type="text" class="item-field-label-vlong" name="system.power" value="{{system.power}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">SP</label>
<input type="text" class="item-field-label-short" name="system.sp" value="{{system.sp}}" data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">SDP</label>
<input type="text" class="item-field-label-short" name="system.sdp" value="{{system.sdp}}" data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">HUP</label>
<input type="text" class="item-field-label-vlong" name="system.hup" value="{{system.hup}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Surgery</label>
<input type="text" class="item-field-label-vlong" name="system.surgery" value="{{system.surgery}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Availability</label>
<input type="text" class="item-field-label-vlong" name="system.availability" value="{{system.availability}}" data-dtype="String" />
</li>
<li class="flexrow"><label class="item-field-label-long">Cost</label>
<input type="text" class="item-field-label-short" name="system.cost" value="{{system.cost}}" data-dtype="Number" />
</li>
<!--<li class="flexrow"><label class="item-field-label-long">Equipped ?</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipped" {{checked
system.equipped}} /></label>
</li>-->
</ul>
</div> </div>
</section> </section>
</form> </form>

View File

@@ -47,22 +47,30 @@
<input type="text" class="right item-field-label-long" name="system.penetrationmax" value="{{system.penetrationmax}}" data-dtype="String"/> <input type="text" class="right item-field-label-long" name="system.penetrationmax" value="{{system.penetrationmax}}" data-dtype="String"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-vlong">HP damage ?</label> <li class="flexrow"><label class="item-field-label-vlong">Needs Ammunition ?</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.hashpdamage" {{checked system.hashpdamage}}/></label> <label class="attribute-value checkbox"><input type="checkbox" name="system.needammo" {{checked system.needammo}}/></label>
</li> </li>
{{#if system.hashpdamage}}
<li class="flexrow"><label class="item-field-label-vlong">HP Damage formula</label>
<input type="text" class="right item-field-label-long" name="system.damage" value="{{system.damage}}" data-dtype="String"/>
</li>
{{/if}}
<li class="flexrow"><label class="item-field-label-vlong">Fatigue damage ?</label> {{#if system.needammo}}
<label class="attribute-value checkbox"><input type="checkbox" name="system.hasfatiguedamage" {{checked system.hasfatiguedamage}}/></label>
</li> {{else}}
{{#if system.hasfatiguedamage}} <li class="flexrow"><label class="item-field-label-vlong">HP damage ?</label>
<li class="flexrow"><label class="item-field-label-vlong">Fatigue damage formula</label> <label class="attribute-value checkbox"><input type="checkbox" name="system.hashpdamage" {{checked system.hashpdamage}}/></label>
<input type="text" class="right item-field-label-long" name="system.fatiguedamage" value="{{system.fatiguedamage}}" data-dtype="String"/> </li>
</li> {{#if system.hashpdamage}}
<li class="flexrow"><label class="item-field-label-vlong">HP Damage formula</label>
<input type="text" class="right item-field-label-long" name="system.damage" value="{{system.damage}}" data-dtype="String"/>
</li>
{{/if}}
<li class="flexrow"><label class="item-field-label-vlong">Fatigue damage ?</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.hasfatiguedamage" {{checked system.hasfatiguedamage}}/></label>
</li>
{{#if system.hasfatiguedamage}}
<li class="flexrow"><label class="item-field-label-vlong">Fatigue damage formula</label>
<input type="text" class="right item-field-label-long" name="system.fatiguedamage" value="{{system.fatiguedamage}}" data-dtype="String"/>
</li>
{{/if}}
{{/if}} {{/if}}
<li class="flexrow"><label class="item-field-label-long">Bulk</label> <li class="flexrow"><label class="item-field-label-long">Bulk</label>

View File

@@ -10,4 +10,5 @@
<option value="vehicle">Vehicles</option> <option value="vehicle">Vehicles</option>
<option value="clothing">Clothing</option> <option value="clothing">Clothing</option>
<option value="ammo">Ammo</option> <option value="ammo">Ammo</option>
<option value="program">Program</option>
<option value="misc">Misc</option> <option value="misc">Misc</option>