Compare commits

...

11 Commits

64 changed files with 572 additions and 231 deletions

4
.gitignore vendored
View File

@@ -8,7 +8,3 @@ todo.md
/jsconfig.json
/package.json
/package-lock.json
/packs/*/
/packs/*/CURRENT
/packs/*/LOG
/packs/*/LOCK

View File

@@ -40,11 +40,13 @@ export class DarkStarsActorSheet extends ActorSheet {
skills: this.actor.getSkills( ),
perks: this.actor.getPerks( ),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
ammos: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getAmmos()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
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(),
equippedShield: this.actor.getEquippedShield(),
subActors: duplicate(this.actor.getSubActors()),
@@ -108,6 +110,11 @@ export class DarkStarsActorSheet extends ActorSheet {
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 => {
const li = $(event.currentTarget).parents(".item");
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
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
}
@@ -138,6 +143,11 @@ export class DarkStarsActor extends Actor {
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
getGenetics() {
let comp = duplicate(this.items.filter(item => item.type == 'genetic') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getShields() {
let comp = duplicate(this.items.filter(item => item.type == 'shield') || []);
@@ -153,6 +163,13 @@ export class DarkStarsActor extends Actor {
}
/* -------------------------------------------- */
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)
}
}
}
/* -------------------------------------------- */
@@ -172,6 +189,12 @@ export class DarkStarsActor extends Actor {
/* -------------------------------------------- */
getWeapons() {
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getAmmos() {
let comp = duplicate(this.items.filter(item => item.type == 'ammo') || []);
DarkStarsUtility.sortArrayObjectsByName(comp)
return comp;
}
@@ -183,7 +206,13 @@ export class DarkStarsActor extends Actor {
}
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) {
let skill = this.items.get(skillId)
@@ -386,12 +415,14 @@ export class DarkStarsActor extends Actor {
}
}
/* -------------------------------------------- */
getInitiativeScore(combatId, combatantId) {
if (this.type == 'character') {
this.rollMR(true, combatId, combatantId)
}
console.log("Init required !!!!")
return -1;
hasLastWord() {
return this.items.find(i => i.type == "perk" && i.name.toLowerCase() === "last word")
}
/* -------------------------------------------- */
getInitiativeScore() {
let initFormula = (this.system.derivated.si.value + this.system.derivated.si.bonus) + "d6"
let initRoll = new Roll(initFormula).roll({ async: false })
return initRoll.total
}
/* -------------------------------------------- */
@@ -617,6 +648,7 @@ export class DarkStarsActor extends Actor {
rollData.mode = "weapon"
rollData.skill = skill
rollData.weapon = weapon
this.checkAndPrepareEquipment(weapon)
rollData.img = weapon.img
this.startRoll(rollData)
} else {

View File

@@ -2,29 +2,46 @@ import { DarkStarsUtility } from "./dark-stars-utility.js";
/* -------------------------------------------- */
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 ? c.actor.getInitiativeScore(this.id, id) : -1;
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: initScore }]);
setTimeout(() => this.processOtherTurns(c, initScore), 400)
}
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) {
}
/* -------------------------------------------- */
static async checkTurnPosition() {
while (game.combat.turn > 0) {
await game.combat.previousTurn()
}
}
}

View File

@@ -42,7 +42,7 @@ export class DarkStarsUtility {
Handlebars.registerHelper('locationLabel', function (key) {
return __locationNames[key]
})
this.gameSettings()
@@ -240,14 +240,14 @@ export class DarkStarsUtility {
}
/* -------------------------------------------- */
static getAimingMalus(location) {
static getAimingMalus(location) {
if (location == "arm" || location == "head") {
return -50
}
if (location == "torso" || location == "leg") {
return -30
}
if (location == "hand" ) {
if (location == "hand") {
return -70
}
return 0
@@ -255,14 +255,22 @@ export class DarkStarsUtility {
/* -------------------------------------------- */
static getAimingLocation(roll) {
if (roll == 1) return "head"
if (roll >=2 && roll <=4 ) return "chest"
if (roll >=5 && roll <=6 ) return "abdomen"
if (roll == 7 ) return "leftarm"
if (roll == 8 ) return "rightarm"
if (roll == 9 ) return "rightleg"
if (roll == 10 ) return "leftleg"
if (roll >= 2 && roll <= 4) return "chest"
if (roll >= 5 && roll <= 6) return "abdomen"
if (roll == 7) return "leftarm"
if (roll == 8) return "rightarm"
if (roll == 9) return "rightleg"
if (roll == 10) return "leftleg"
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) {
@@ -271,13 +279,13 @@ export class DarkStarsUtility {
// ability/save/size => 0
rollData.percentValue = 0
if ( rollData.skill ) {
if (rollData.skill) {
rollData.percentValue = rollData.skill.total
}
rollData.percentValue += rollData.bonusMalus
rollData.percentValue += rollData.bonusMalus
rollData.diceFormula = "1d100"
if (rollData.isAboveEffectiveRange) {
if (rollData.isAboveEffectiveRange) {
rollData.percentValue -= 30
rollData.percentValue = Math.max(0, rollData.percentValue)
}
@@ -299,18 +307,23 @@ export class DarkStarsUtility {
rollData.isCriticalFailure = rollData.diceResult == 100
rollData.isSuccess = rollData.diceResult == 1 || 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) {
actor.modifyRerolls(-1)
rollData.rerolls = 0 // DIsable rerolls
}
if (rollData.weaponAiming == "none" ) {
let rollLoc = new Roll("1d10").roll({async: false})
rollData.weaponAiming = this.getAimingLocation(rollLoc.total)
if (rollData.mode == "weapon") {
if (rollData.weaponAiming == "none") {
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, {
content: await renderTemplate(`systems/fvtt-dark-stars/templates/chat/chat-generic-result.hbs`, rollData)
})
@@ -418,7 +431,7 @@ export class DarkStarsUtility {
let rollData = {
rollId: randomID(16),
rollMode: game.settings.get("core", "rollMode"),
bonusMalus : 0,
bonusMalus: 0,
isAboveEffectiveRange: false,
weaponAiming: "none"
}

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

View File

@@ -1 +1 @@
MANIFEST-000046
MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/14-11:19:55.861947 7f4c88ff96c0 Recovering log #44
2023/10/14-11:19:55.872800 7f4c88ff96c0 Delete type=3 #42
2023/10/14-11:19:55.872915 7f4c88ff96c0 Delete type=0 #44
2023/10/14-11:25:04.526467 7f49ebbff6c0 Level-0 table #49: started
2023/10/14-11:25:04.526511 7f49ebbff6c0 Level-0 table #49: 0 bytes OK
2023/10/14-11:25:04.534695 7f49ebbff6c0 Delete type=0 #47
2023/10/14-11:25:04.552894 7f49ebbff6c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)
2023/10/14-11:25:04.552993 7f49ebbff6c0 Manual compaction at level-1 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)
2023/10/23-16:21:18.818735 7fc51b7fe6c0 Recovering log #112
2023/10/23-16:21:18.828413 7fc51b7fe6c0 Delete type=3 #110
2023/10/23-16:21:18.828468 7fc51b7fe6c0 Delete type=0 #112
2023/10/23-16:38:21.235245 7fc299bff6c0 Level-0 table #117: started
2023/10/23-16:38:21.235287 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/23-16:38:21.288685 7fc299bff6c0 Delete type=0 #115
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/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/10-13:02:58.870058 7fb8ba7fc6c0 Recovering log #40
2023/10/10-13:02:58.880628 7fb8ba7fc6c0 Delete type=3 #38
2023/10/10-13:02:58.880699 7fb8ba7fc6c0 Delete type=0 #40
2023/10/10-13:03:57.333218 7fb8b97fa6c0 Level-0 table #45: started
2023/10/10-13:03:57.333256 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
2023/10/10-13:03:57.369083 7fb8b97fa6c0 Delete type=0 #43
2023/10/10-13:03:57.407449 7fb8b97fa6c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)
2023/10/10-13:03:57.476948 7fb8b97fa6c0 Manual compaction at level-1 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)
2023/10/23-16:10:20.406453 7fc51bfff6c0 Recovering log #108
2023/10/23-16:10:20.455315 7fc51bfff6c0 Delete type=3 #106
2023/10/23-16:10:20.455416 7fc51bfff6c0 Delete type=0 #108
2023/10/23-16:21:11.331176 7fc299bff6c0 Level-0 table #113: started
2023/10/23-16:21:11.331203 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/23-16:21:11.340134 7fc299bff6c0 Delete type=0 #111
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/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-000046
MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/14-11:19:55.917818 7f4c88ff96c0 Recovering log #44
2023/10/14-11:19:55.929163 7f4c88ff96c0 Delete type=3 #42
2023/10/14-11:19:55.929556 7f4c88ff96c0 Delete type=0 #44
2023/10/14-11:25:04.567268 7f49ebbff6c0 Level-0 table #49: started
2023/10/14-11:25:04.567330 7f49ebbff6c0 Level-0 table #49: 0 bytes OK
2023/10/14-11:25:04.574091 7f49ebbff6c0 Delete type=0 #47
2023/10/14-11:25:04.581681 7f49ebbff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2023/10/23-16:21:18.866233 7fc51b7fe6c0 Recovering log #112
2023/10/23-16:21:18.876627 7fc51b7fe6c0 Delete type=3 #110
2023/10/23-16:21:18.876726 7fc51b7fe6c0 Delete type=0 #112
2023/10/23-16:38:21.562992 7fc299bff6c0 Level-0 table #117: started
2023/10/23-16:38:21.563052 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/23-16:38:21.606768 7fc299bff6c0 Delete type=0 #115
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/10-13:02:58.920624 7fb8ba7fc6c0 Recovering log #40
2023/10/10-13:02:58.932301 7fb8ba7fc6c0 Delete type=3 #38
2023/10/10-13:02:58.932409 7fb8ba7fc6c0 Delete type=0 #40
2023/10/10-13:03:57.511725 7fb8b97fa6c0 Level-0 table #45: started
2023/10/10-13:03:57.511754 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
2023/10/10-13:03:57.549885 7fb8b97fa6c0 Delete type=0 #43
2023/10/10-13:03:57.630117 7fb8b97fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2023/10/23-16:10:20.672216 7fc51bfff6c0 Recovering log #108
2023/10/23-16:10:20.732577 7fc51bfff6c0 Delete type=3 #106
2023/10/23-16:10:20.732730 7fc51bfff6c0 Delete type=0 #108
2023/10/23-16:21:11.375247 7fc299bff6c0 Level-0 table #113: started
2023/10/23-16:21:11.375301 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/23-16:21:11.384595 7fc299bff6c0 Delete type=0 #111
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-000046
MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/14-11:19:55.932225 7f4c897fa6c0 Recovering log #44
2023/10/14-11:19:55.942494 7f4c897fa6c0 Delete type=3 #42
2023/10/14-11:19:55.942660 7f4c897fa6c0 Delete type=0 #44
2023/10/14-11:25:04.574315 7f49ebbff6c0 Level-0 table #49: started
2023/10/14-11:25:04.574383 7f49ebbff6c0 Level-0 table #49: 0 bytes OK
2023/10/14-11:25:04.581423 7f49ebbff6c0 Delete type=0 #47
2023/10/14-11:25:04.581698 7f49ebbff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2023/10/23-16:21:18.878355 7fc51a7fc6c0 Recovering log #112
2023/10/23-16:21:18.889689 7fc51a7fc6c0 Delete type=3 #110
2023/10/23-16:21:18.889751 7fc51a7fc6c0 Delete type=0 #112
2023/10/23-16:38:21.520237 7fc299bff6c0 Level-0 table #117: started
2023/10/23-16:38:21.520269 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/23-16:38:21.562758 7fc299bff6c0 Delete type=0 #115
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/10-13:02:58.934342 7fb8b9ffb6c0 Recovering log #40
2023/10/10-13:02:58.944542 7fb8b9ffb6c0 Delete type=3 #38
2023/10/10-13:02:58.944867 7fb8b9ffb6c0 Delete type=0 #40
2023/10/10-13:03:57.550046 7fb8b97fa6c0 Level-0 table #45: started
2023/10/10-13:03:57.550075 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
2023/10/10-13:03:57.587073 7fb8b97fa6c0 Delete type=0 #43
2023/10/10-13:03:57.630133 7fb8b97fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2023/10/23-16:10:20.739722 7fc51a7fc6c0 Recovering log #108
2023/10/23-16:10:20.793493 7fc51a7fc6c0 Delete type=3 #106
2023/10/23-16:10:20.793641 7fc51a7fc6c0 Delete type=0 #108
2023/10/23-16:21:11.384741 7fc299bff6c0 Level-0 table #113: started
2023/10/23-16:21:11.384782 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/23-16:21:11.394018 7fc299bff6c0 Delete type=0 #111
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-000046
MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/14-11:19:55.875613 7f4c897fa6c0 Recovering log #44
2023/10/14-11:19:55.887253 7f4c897fa6c0 Delete type=3 #42
2023/10/14-11:19:55.887403 7f4c897fa6c0 Delete type=0 #44
2023/10/14-11:25:04.534844 7f49ebbff6c0 Level-0 table #49: started
2023/10/14-11:25:04.534900 7f49ebbff6c0 Level-0 table #49: 0 bytes OK
2023/10/14-11:25:04.541331 7f49ebbff6c0 Delete type=0 #47
2023/10/14-11:25:04.552924 7f49ebbff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2023/10/23-16:21:18.830319 7fc51a7fc6c0 Recovering log #112
2023/10/23-16:21:18.840025 7fc51a7fc6c0 Delete type=3 #110
2023/10/23-16:21:18.840086 7fc51a7fc6c0 Delete type=0 #112
2023/10/23-16:38:21.349441 7fc299bff6c0 Level-0 table #117: started
2023/10/23-16:38:21.349501 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/23-16:38:21.402714 7fc299bff6c0 Delete type=0 #115
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/10-13:02:58.882548 7fb8b9ffb6c0 Recovering log #40
2023/10/10-13:02:58.892996 7fb8b9ffb6c0 Delete type=3 #38
2023/10/10-13:02:58.893055 7fb8b9ffb6c0 Delete type=0 #40
2023/10/10-13:03:57.369324 7fb8b97fa6c0 Level-0 table #45: started
2023/10/10-13:03:57.369366 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
2023/10/10-13:03:57.407239 7fb8b97fa6c0 Delete type=0 #43
2023/10/10-13:03:57.476916 7fb8b97fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2023/10/23-16:10:20.466941 7fc51a7fc6c0 Recovering log #108
2023/10/23-16:10:20.525312 7fc51a7fc6c0 Delete type=3 #106
2023/10/23-16:10:20.525371 7fc51a7fc6c0 Delete type=0 #108
2023/10/23-16:21:11.349899 7fc299bff6c0 Level-0 table #113: started
2023/10/23-16:21:11.349986 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/23-16:21:11.358380 7fc299bff6c0 Delete type=0 #111
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-000046
MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/14-11:19:55.960026 7f4c89ffb6c0 Recovering log #44
2023/10/14-11:19:55.970720 7f4c89ffb6c0 Delete type=3 #42
2023/10/14-11:19:55.970818 7f4c89ffb6c0 Delete type=0 #44
2023/10/14-11:25:04.581832 7f49ebbff6c0 Level-0 table #49: started
2023/10/14-11:25:04.581877 7f49ebbff6c0 Level-0 table #49: 0 bytes OK
2023/10/14-11:25:04.589058 7f49ebbff6c0 Delete type=0 #47
2023/10/14-11:25:04.596585 7f49ebbff6c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/14-11:25:04.596663 7f49ebbff6c0 Manual compaction at level-1 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/23-16:21:18.903797 7fc51affd6c0 Recovering log #112
2023/10/23-16:21:18.914282 7fc51affd6c0 Delete type=3 #110
2023/10/23-16:21:18.914341 7fc51affd6c0 Delete type=0 #112
2023/10/23-16:38:21.649612 7fc299bff6c0 Level-0 table #117: started
2023/10/23-16:38:21.649693 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/23-16:38:21.687274 7fc299bff6c0 Delete type=0 #115
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/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/10-13:02:58.959677 7fb8baffd6c0 Recovering log #40
2023/10/10-13:02:58.970175 7fb8baffd6c0 Delete type=3 #38
2023/10/10-13:02:58.970242 7fb8baffd6c0 Delete type=0 #40
2023/10/10-13:03:57.630235 7fb8b97fa6c0 Level-0 table #45: started
2023/10/10-13:03:57.630269 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
2023/10/10-13:03:57.672851 7fb8b97fa6c0 Delete type=0 #43
2023/10/10-13:03:57.709398 7fb8b97fa6c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/10-13:03:57.709704 7fb8b97fa6c0 Manual compaction at level-1 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/23-16:10:20.851365 7fc51affd6c0 Recovering log #108
2023/10/23-16:10:20.940844 7fc51affd6c0 Delete type=3 #106
2023/10/23-16:10:20.940918 7fc51affd6c0 Delete type=0 #108
2023/10/23-16:21:11.403299 7fc299bff6c0 Level-0 table #113: started
2023/10/23-16:21:11.403360 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/23-16:21:11.413808 7fc299bff6c0 Delete type=0 #111
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/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-000046
MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/14-11:19:55.889978 7f4c8a7fc6c0 Recovering log #44
2023/10/14-11:19:55.900282 7f4c8a7fc6c0 Delete type=3 #42
2023/10/14-11:19:55.900400 7f4c8a7fc6c0 Delete type=0 #44
2023/10/14-11:25:04.553169 7f49ebbff6c0 Level-0 table #49: started
2023/10/14-11:25:04.553246 7f49ebbff6c0 Level-0 table #49: 0 bytes OK
2023/10/14-11:25:04.559972 7f49ebbff6c0 Delete type=0 #47
2023/10/14-11:25:04.581640 7f49ebbff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2023/10/23-16:21:18.841422 7fc51bfff6c0 Recovering log #112
2023/10/23-16:21:18.851392 7fc51bfff6c0 Delete type=3 #110
2023/10/23-16:21:18.851494 7fc51bfff6c0 Delete type=0 #112
2023/10/23-16:38:21.402937 7fc299bff6c0 Level-0 table #117: started
2023/10/23-16:38:21.402989 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/23-16:38:21.445303 7fc299bff6c0 Delete type=0 #115
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/10-13:02:58.894614 7fb8bb7fe6c0 Recovering log #40
2023/10/10-13:02:58.904547 7fb8bb7fe6c0 Delete type=3 #38
2023/10/10-13:02:58.904621 7fb8bb7fe6c0 Delete type=0 #40
2023/10/10-13:03:57.477039 7fb8b97fa6c0 Level-0 table #45: started
2023/10/10-13:03:57.477065 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
2023/10/10-13:03:57.511617 7fb8b97fa6c0 Delete type=0 #43
2023/10/10-13:03:57.630095 7fb8b97fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2023/10/23-16:10:20.532396 7fc51b7fe6c0 Recovering log #108
2023/10/23-16:10:20.583047 7fc51b7fe6c0 Delete type=3 #106
2023/10/23-16:10:20.583182 7fc51b7fe6c0 Delete type=0 #108
2023/10/23-16:21:11.358565 7fc299bff6c0 Level-0 table #113: started
2023/10/23-16:21:11.358632 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/23-16:21:11.367191 7fc299bff6c0 Delete type=0 #111
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-000046
MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/14-11:19:55.945155 7f4c8a7fc6c0 Recovering log #44
2023/10/14-11:19:55.956833 7f4c8a7fc6c0 Delete type=3 #42
2023/10/14-11:19:55.956955 7f4c8a7fc6c0 Delete type=0 #44
2023/10/14-11:25:04.589348 7f49ebbff6c0 Level-0 table #49: started
2023/10/14-11:25:04.589430 7f49ebbff6c0 Level-0 table #49: 0 bytes OK
2023/10/14-11:25:04.596408 7f49ebbff6c0 Delete type=0 #47
2023/10/14-11:25:04.596612 7f49ebbff6c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)
2023/10/14-11:25:04.596646 7f49ebbff6c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)
2023/10/23-16:21:18.891042 7fc51bfff6c0 Recovering log #112
2023/10/23-16:21:18.901616 7fc51bfff6c0 Delete type=3 #110
2023/10/23-16:21:18.901698 7fc51bfff6c0 Delete type=0 #112
2023/10/23-16:38:21.606929 7fc299bff6c0 Level-0 table #117: started
2023/10/23-16:38:21.606959 7fc299bff6c0 Level-0 table #117: 0 bytes OK
2023/10/23-16:38:21.649170 7fc299bff6c0 Delete type=0 #115
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/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/10-13:02:58.947342 7fb8bb7fe6c0 Recovering log #40
2023/10/10-13:02:58.957769 7fb8bb7fe6c0 Delete type=3 #38
2023/10/10-13:02:58.957853 7fb8bb7fe6c0 Delete type=0 #40
2023/10/10-13:03:57.673002 7fb8b97fa6c0 Level-0 table #45: started
2023/10/10-13:03:57.673036 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
2023/10/10-13:03:57.709266 7fb8b97fa6c0 Delete type=0 #43
2023/10/10-13:03:57.709730 7fb8b97fa6c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)
2023/10/10-13:03:57.709887 7fb8b97fa6c0 Manual compaction at level-1 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)
2023/10/23-16:10:20.795855 7fc51b7fe6c0 Recovering log #108
2023/10/23-16:10:20.847003 7fc51b7fe6c0 Delete type=3 #106
2023/10/23-16:10:20.847142 7fc51b7fe6c0 Delete type=0 #108
2023/10/23-16:21:11.394255 7fc299bff6c0 Level-0 table #113: started
2023/10/23-16:21:11.394305 7fc299bff6c0 Level-0 table #113: 0 bytes OK
2023/10/23-16:21:11.402795 7fc299bff6c0 Delete type=0 #111
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/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-000047
MANIFEST-000115

View File

@@ -1,8 +1,8 @@
2023/10/14-11:19:55.902888 7f4c89ffb6c0 Recovering log #45
2023/10/14-11:19:55.913697 7f4c89ffb6c0 Delete type=3 #43
2023/10/14-11:19:55.913811 7f4c89ffb6c0 Delete type=0 #45
2023/10/14-11:25:04.560127 7f49ebbff6c0 Level-0 table #50: started
2023/10/14-11:25:04.560165 7f49ebbff6c0 Level-0 table #50: 0 bytes OK
2023/10/14-11:25:04.567056 7f49ebbff6c0 Delete type=0 #48
2023/10/14-11:25:04.581663 7f49ebbff6c0 Manual compaction at level-0 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)
2023/10/14-11:25:04.581717 7f49ebbff6c0 Manual compaction at level-1 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)
2023/10/23-16:21:18.853136 7fc51affd6c0 Recovering log #113
2023/10/23-16:21:18.864323 7fc51affd6c0 Delete type=3 #111
2023/10/23-16:21:18.864379 7fc51affd6c0 Delete type=0 #113
2023/10/23-16:38:21.445678 7fc299bff6c0 Level-0 table #118: started
2023/10/23-16:38:21.445739 7fc299bff6c0 Level-0 table #118: 0 bytes OK
2023/10/23-16:38:21.519996 7fc299bff6c0 Delete type=0 #116
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/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/10-13:02:58.906782 7fb8baffd6c0 Recovering log #41
2023/10/10-13:02:58.917983 7fb8baffd6c0 Delete type=3 #39
2023/10/10-13:02:58.918205 7fb8baffd6c0 Delete type=0 #41
2023/10/10-13:03:57.587289 7fb8b97fa6c0 Level-0 table #46: started
2023/10/10-13:03:57.587326 7fb8b97fa6c0 Level-0 table #46: 0 bytes OK
2023/10/10-13:03:57.629924 7fb8b97fa6c0 Delete type=0 #44
2023/10/10-13:03:57.630149 7fb8b97fa6c0 Manual compaction at level-0 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)
2023/10/10-13:03:57.630181 7fb8b97fa6c0 Manual compaction at level-1 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)
2023/10/23-16:10:20.585116 7fc51affd6c0 Recovering log #109
2023/10/23-16:10:20.661600 7fc51affd6c0 Delete type=3 #107
2023/10/23-16:10:20.661671 7fc51affd6c0 Delete type=0 #109
2023/10/23-16:21:11.367314 7fc299bff6c0 Level-0 table #114: started
2023/10/23-16:21:11.367340 7fc299bff6c0 Level-0 table #114: 0 bytes OK
2023/10/23-16:21:11.374984 7fc299bff6c0 Delete type=0 #112
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/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 {
background-color: #ff0084;
}
.color-class-common {
background: rgba(185, 183, 40, 0.45);
}
.status-small-label {
font-size: 0.65rem;
}
@@ -1509,7 +1506,19 @@ Focus FOC: #ff0084
margin-bottom: 1rem;
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 {
border: 0;
margin-left: 4px;

View File

@@ -92,6 +92,15 @@
"system": "fvtt-dark-stars",
"private": false,
"flags": {}
},
{
"type": "Item",
"label": "Cyber&Genetics",
"name": "cybernetics",
"path": "packs/cybernetics",
"system": "fvtt-dark-stars",
"private": false,
"flags": {}
}
],
"primaryTokenAttribute": "secondary.hp",
@@ -100,14 +109,14 @@
"styles": [
"styles/simple.css"
],
"version": "11.0.3",
"version": "11.0.10",
"compatibility": {
"minimum": "11",
"verified": "11"
},
"title": "Dark Stars RPG",
"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.3.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/",
"background": "images/ui/dark_stars_welcome_page.webp",
"id": "fvtt-dark-stars"

View File

@@ -173,6 +173,7 @@
"hitlocations": {
"head": {
"label": "Head",
"ratio": 0.3,
"dice": [
1
],
@@ -182,6 +183,7 @@
},
"chest": {
"label": "Chest",
"ratio": 0.5,
"dice": [
2,
4
@@ -192,6 +194,7 @@
},
"abdomen": {
"label": "Abdomen",
"ratio": 0.3,
"dice": [
5,
6
@@ -202,6 +205,7 @@
},
"leftarm": {
"label": "Left Arm",
"ratio": 0.2,
"dice": [
7
],
@@ -211,6 +215,7 @@
},
"rightarm": {
"label": "Right Arm",
"ratio": 0.2,
"dice": [
8
],
@@ -220,6 +225,7 @@
},
"rightleg": {
"label": "Right Leg",
"ratio": 0.4,
"dice": [
9
],
@@ -229,6 +235,7 @@
},
"leftleg": {
"label": "Left Leg",
"ratio": 0.4,
"dice": [
10
],
@@ -278,7 +285,8 @@
"weapon",
"money",
"genetic",
"cyber"
"cyber",
"ammo"
],
"skill": {
"base": "",
@@ -394,11 +402,23 @@
"quantity": 0,
"description": ""
},
"ammo": {
"ava": "",
"damage": "",
"bulk": 0,
"br": 0,
"cost": 0,
"sp": 0,
"quantity": 0,
"properties": ""
},
"weapon": {
"weapontype": "",
"associatedskill": "",
"penetrationmin": "",
"penetrationmax": "",
"needammo": false,
"ammoid": "",
"hashpdamage": true,
"damage": "",
"hasfatiguedamage": false,

View File

@@ -29,7 +29,7 @@
<div class="tab main" data-group="primary" data-tab="main">
<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|}}
<li class="item stat flexrow list-item list-item-shadow">
<label class="item-field-label-medium">{{attr.label}}</label>
@@ -38,7 +38,7 @@
</li>
</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|}}
<li class="item stat flexrow list-item list-item-shadow">
<label class="item-field-label-medium">{{deriv.label}}</label>
@@ -60,6 +60,19 @@
<label class="item-field-label-short">&nbsp;/&nbsp;{{second.max}}</label>
{{/if}}
<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}}
</li>
<li class="item stat flexrow list-item list-item-shadow">
@@ -153,12 +166,15 @@
<span class="item-name-label-header-long">
<h3><label class="items-title-text">Weapons</label></h3>
</span>
<span class="item-field-label-short">
<span class="item-field-label-medium">
<label class="short-label">Type</label>
</span>
<span class="item-field-label-long">
<label class="short-label">Skill</label>
</span>
<span class="item-field-label-long">
<label class="short-label">Ammo</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Damage</label>
</span>
@@ -169,13 +185,28 @@
src="{{weapon.img}}" /></a>
<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-long">{{weapon.system.skill}}</span>
<span class="item-field-label-long">{{weapon.system.damage}}</span>
<span class="item-field-label-medium">{{upperFirst weapon.system.weapontype}}</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-controls item-controls-fixed">
@@ -296,12 +327,20 @@
<span class="item-name-label-header">
<h3><label class="items-title-text">Weapons</label></h3>
</span>
<span class="item-field-label-short">
<span class="item-field-label-medium">
<label class="short-label">Attack</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Damage</label>
<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>
</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>
@@ -311,8 +350,27 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{weapon.img}}" /></a>
<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-controls item-controls-fixed">
@@ -324,15 +382,47 @@
{{/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">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">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Armors</label></h3>
</span>
<span class="item-field-label-short">
<span class="item-field-label-medium">
<label class="short-label">Type</label>
</span>
<span class="item-field-label-short">
<span class="item-field-label-medium">
<label class="short-label">Absorption</label>
</span>
@@ -346,8 +436,8 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{armor.img}}" /></a>
<span class="item-name-label">{{armor.name}}</span>
<span class="item-field-label-short">{{upper armor.system.armortype}}</span>
<span class="item-field-label-short">{{armor.system.absorprionroll}}</span>
<span class="item-field-label-medium">{{upper armor.system.armortype}}</span>
<span class="item-field-label-medium">{{armor.system.absorprionroll}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
@@ -394,11 +484,14 @@
<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">Running time</label>
<label class="short-label">HUP</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
@@ -410,8 +503,46 @@
<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.runningtime}}</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
@@ -428,7 +559,13 @@
<span class="item-name-label-header">
<h3><label class="items-title-text">Equipment</label></h3>
</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>
</span>
<div class="item-filler">&nbsp;</div>
@@ -437,13 +574,19 @@
</div>
</li>
{{#each containersTree as |equip key|}}
{{> systems/fvtt-crucible-rpg/templates/partial-actor-equipment.html equip=equip level=1}}
<ul class="item-list list-item-shadow2 list-item-margin1">
{{#each equip.data.contents as |subgear key|}}
{{> systems/fvtt-crucible-rpg/templates/partial-actor-equipment.html equip=subgear level=2}}
{{/each}}
</ul>
{{#each equipments as |equip key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{equip._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{equip.img}}" /></a>
<span class="item-name-label">{{equip.name}}</span>
<span class="item-field-label-medium">{{equip.system.sp}}</span>
<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}}
</ul>

View File

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

@@ -47,22 +47,30 @@
<input type="text" class="right item-field-label-long" name="system.penetrationmax" value="{{system.penetrationmax}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-vlong">HP damage ?</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.hashpdamage" {{checked system.hashpdamage}}/></label>
<li class="flexrow"><label class="item-field-label-vlong">Needs Ammunition ?</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.needammo" {{checked system.needammo}}/></label>
</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 system.needammo}}
{{else}}
<li class="flexrow"><label class="item-field-label-vlong">HP damage ?</label>
<label class="attribute-value checkbox"><input type="checkbox" name="system.hashpdamage" {{checked system.hashpdamage}}/></label>
</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}}
<li class="flexrow"><label class="item-field-label-long">Bulk</label>