Compare commits

...

5 Commits

Author SHA1 Message Date
1f8275e153 Fix HP location and damages 2023-10-23 16:38:34 +02:00
e19e6df228 Add initiative and ammo 2023-10-21 14:16:28 +02:00
714485b688 Add initiative and ammo 2023-10-21 14:16:17 +02:00
ceed6efc0b Add initiative and ammo 2023-10-21 14:16:06 +02:00
06e265586b Add initiative and ammo 2023-10-21 10:25:39 +02:00
64 changed files with 488 additions and 234 deletions

View File

@@ -40,6 +40,7 @@ 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()) ),
@@ -109,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
}
@@ -158,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)
}
}
}
/* -------------------------------------------- */
@@ -177,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;
}
@@ -188,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)
@@ -391,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
}
/* -------------------------------------------- */
@@ -622,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"
}

View File

@@ -1 +1 @@
MANIFEST-000086
MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/19-14:23:17.464021 7f8105ffb6c0 Recovering log #84
2023/10/19-14:23:17.473986 7f8105ffb6c0 Delete type=3 #82
2023/10/19-14:23:17.474084 7f8105ffb6c0 Delete type=0 #84
2023/10/19-14:23:44.289799 7f7e677006c0 Level-0 table #89: started
2023/10/19-14:23:44.289832 7f7e677006c0 Level-0 table #89: 0 bytes OK
2023/10/19-14:23:44.296197 7f7e677006c0 Delete type=0 #87
2023/10/19-14:23:44.308133 7f7e677006c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)
2023/10/19-14:23:44.315305 7f7e677006c0 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/19-14:21:21.592351 7f81067fc6c0 Recovering log #80
2023/10/19-14:21:21.605971 7f81067fc6c0 Delete type=3 #78
2023/10/19-14:21:21.606020 7f81067fc6c0 Delete type=0 #80
2023/10/19-14:21:29.423091 7f7e677006c0 Level-0 table #85: started
2023/10/19-14:21:29.423116 7f7e677006c0 Level-0 table #85: 0 bytes OK
2023/10/19-14:21:29.429490 7f7e677006c0 Delete type=0 #83
2023/10/19-14:21:29.429754 7f7e677006c0 Manual compaction at level-0 from '!items!3O3MjRkrmX4HeaPY' @ 72057594037927935 : 1 .. '!items!q9JGWL4y4udYrzvD' @ 0 : 0; will stop at (end)
2023/10/19-14:21:29.429781 7f7e677006c0 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)

Binary file not shown.

BIN
packs/armor/MANIFEST-000114 Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000086
MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/19-14:23:17.514181 7f8105ffb6c0 Recovering log #84
2023/10/19-14:23:17.524402 7f8105ffb6c0 Delete type=3 #82
2023/10/19-14:23:17.524492 7f8105ffb6c0 Delete type=0 #84
2023/10/19-14:23:44.349622 7f7e677006c0 Level-0 table #89: started
2023/10/19-14:23:44.349700 7f7e677006c0 Level-0 table #89: 0 bytes OK
2023/10/19-14:23:44.359464 7f7e677006c0 Delete type=0 #87
2023/10/19-14:23:44.366187 7f7e677006c0 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/19-14:21:21.649569 7f81067fc6c0 Recovering log #80
2023/10/19-14:21:21.659028 7f81067fc6c0 Delete type=3 #78
2023/10/19-14:21:21.659086 7f81067fc6c0 Delete type=0 #80
2023/10/19-14:21:29.450398 7f7e677006c0 Level-0 table #85: started
2023/10/19-14:21:29.450420 7f7e677006c0 Level-0 table #85: 0 bytes OK
2023/10/19-14:21:29.457998 7f7e677006c0 Delete type=0 #83
2023/10/19-14:21:29.458158 7f7e677006c0 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.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000086
MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/19-14:23:17.526061 7f81067fc6c0 Recovering log #84
2023/10/19-14:23:17.536635 7f81067fc6c0 Delete type=3 #82
2023/10/19-14:23:17.536706 7f81067fc6c0 Delete type=0 #84
2023/10/19-14:23:44.359668 7f7e677006c0 Level-0 table #89: started
2023/10/19-14:23:44.359693 7f7e677006c0 Level-0 table #89: 0 bytes OK
2023/10/19-14:23:44.365782 7f7e677006c0 Delete type=0 #87
2023/10/19-14:23:44.374031 7f7e677006c0 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/19-14:21:21.661284 7f8105ffb6c0 Recovering log #80
2023/10/19-14:21:21.672219 7f8105ffb6c0 Delete type=3 #78
2023/10/19-14:21:21.672266 7f8105ffb6c0 Delete type=0 #80
2023/10/19-14:21:29.471453 7f7e677006c0 Level-0 table #85: started
2023/10/19-14:21:29.471474 7f7e677006c0 Level-0 table #85: 0 bytes OK
2023/10/19-14:21:29.477920 7f7e677006c0 Delete type=0 #83
2023/10/19-14:21:29.485644 7f7e677006c0 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

@@ -1 +1 @@
MANIFEST-000014
MANIFEST-000042

View File

@@ -1,8 +1,8 @@
2023/10/19-14:23:17.564165 7f8105ffb6c0 Recovering log #12
2023/10/19-14:23:17.574763 7f8105ffb6c0 Delete type=3 #10
2023/10/19-14:23:17.574939 7f8105ffb6c0 Delete type=0 #12
2023/10/19-14:23:44.381284 7f7e677006c0 Level-0 table #17: started
2023/10/19-14:23:44.381329 7f7e677006c0 Level-0 table #17: 0 bytes OK
2023/10/19-14:23:44.388649 7f7e677006c0 Delete type=0 #15
2023/10/19-14:23:44.388809 7f7e677006c0 Manual compaction at level-0 from '!items!0JlVJvgxQQWY8lpO' @ 72057594037927935 : 1 .. '!items!zjxV4mcELwbZU8Et' @ 0 : 0; will stop at (end)
2023/10/19-14:23:44.388823 7f7e677006c0 Manual compaction at level-1 from '!items!0JlVJvgxQQWY8lpO' @ 72057594037927935 : 1 .. '!items!zjxV4mcELwbZU8Et' @ 0 : 0; will stop at (end)
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

@@ -1,8 +1,8 @@
2023/10/19-14:21:21.698718 7f81067fc6c0 Recovering log #8
2023/10/19-14:21:21.708742 7f81067fc6c0 Delete type=3 #6
2023/10/19-14:21:21.708788 7f81067fc6c0 Delete type=0 #8
2023/10/19-14:21:29.478169 7f7e677006c0 Level-0 table #13: started
2023/10/19-14:21:29.478226 7f7e677006c0 Level-0 table #13: 0 bytes OK
2023/10/19-14:21:29.485516 7f7e677006c0 Delete type=0 #11
2023/10/19-14:21:29.485668 7f7e677006c0 Manual compaction at level-0 from '!items!0JlVJvgxQQWY8lpO' @ 72057594037927935 : 1 .. '!items!zjxV4mcELwbZU8Et' @ 0 : 0; will stop at (end)
2023/10/19-14:21:29.485692 7f7e677006c0 Manual compaction at level-1 from '!items!0JlVJvgxQQWY8lpO' @ 72057594037927935 : 1 .. '!items!zjxV4mcELwbZU8Et' @ 0 : 0; will stop at (end)
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.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000086
MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/19-14:23:17.476233 7f81067fc6c0 Recovering log #84
2023/10/19-14:23:17.486711 7f81067fc6c0 Delete type=3 #82
2023/10/19-14:23:17.486835 7f81067fc6c0 Delete type=0 #84
2023/10/19-14:23:44.308192 7f7e677006c0 Level-0 table #89: started
2023/10/19-14:23:44.308251 7f7e677006c0 Level-0 table #89: 0 bytes OK
2023/10/19-14:23:44.315142 7f7e677006c0 Delete type=0 #87
2023/10/19-14:23:44.327450 7f7e677006c0 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/19-14:21:21.608294 7f8105ffb6c0 Recovering log #80
2023/10/19-14:21:21.621354 7f8105ffb6c0 Delete type=3 #78
2023/10/19-14:21:21.621556 7f8105ffb6c0 Delete type=0 #80
2023/10/19-14:21:29.429880 7f7e677006c0 Level-0 table #85: started
2023/10/19-14:21:29.429923 7f7e677006c0 Level-0 table #85: 0 bytes OK
2023/10/19-14:21:29.436342 7f7e677006c0 Delete type=0 #83
2023/10/19-14:21:29.458121 7f7e677006c0 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.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000086
MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/19-14:23:17.550892 7f81077fe6c0 Recovering log #84
2023/10/19-14:23:17.561350 7f81077fe6c0 Delete type=3 #82
2023/10/19-14:23:17.561430 7f81077fe6c0 Delete type=0 #84
2023/10/19-14:23:44.366215 7f7e677006c0 Level-0 table #89: started
2023/10/19-14:23:44.366274 7f7e677006c0 Level-0 table #89: 0 bytes OK
2023/10/19-14:23:44.373732 7f7e677006c0 Delete type=0 #87
2023/10/19-14:23:44.381253 7f7e677006c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/19-14:23:44.388799 7f7e677006c0 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/19-14:21:21.686224 7f81077fe6c0 Recovering log #80
2023/10/19-14:21:21.695950 7f81077fe6c0 Delete type=3 #78
2023/10/19-14:21:21.696001 7f81077fe6c0 Delete type=0 #80
2023/10/19-14:21:29.464823 7f7e677006c0 Level-0 table #85: started
2023/10/19-14:21:29.464848 7f7e677006c0 Level-0 table #85: 0 bytes OK
2023/10/19-14:21:29.471318 7f7e677006c0 Delete type=0 #83
2023/10/19-14:21:29.485633 7f7e677006c0 Manual compaction at level-0 from '!items!0LA7gMBDogO56AZK' @ 72057594037927935 : 1 .. '!items!zwZoHMkWYtMCNx9f' @ 0 : 0; will stop at (end)
2023/10/19-14:21:29.485659 7f7e677006c0 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)

Binary file not shown.

BIN
packs/perks/MANIFEST-000114 Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000086
MANIFEST-000114

View File

@@ -1,7 +1,7 @@
2023/10/19-14:23:17.488686 7f8106ffd6c0 Recovering log #84
2023/10/19-14:23:17.499250 7f8106ffd6c0 Delete type=3 #82
2023/10/19-14:23:17.499317 7f8106ffd6c0 Delete type=0 #84
2023/10/19-14:23:44.315318 7f7e677006c0 Level-0 table #89: started
2023/10/19-14:23:44.315347 7f7e677006c0 Level-0 table #89: 0 bytes OK
2023/10/19-14:23:44.327312 7f7e677006c0 Delete type=0 #87
2023/10/19-14:23:44.359651 7f7e677006c0 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/19-14:21:21.623245 7f8106ffd6c0 Recovering log #80
2023/10/19-14:21:21.634568 7f8106ffd6c0 Delete type=3 #78
2023/10/19-14:21:21.634612 7f8106ffd6c0 Delete type=0 #80
2023/10/19-14:21:29.436593 7f7e677006c0 Level-0 table #85: started
2023/10/19-14:21:29.436653 7f7e677006c0 Level-0 table #85: 0 bytes OK
2023/10/19-14:21:29.443853 7f7e677006c0 Delete type=0 #83
2023/10/19-14:21:29.458132 7f7e677006c0 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.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000086
MANIFEST-000114

View File

@@ -1,8 +1,8 @@
2023/10/19-14:23:17.538148 7f8106ffd6c0 Recovering log #84
2023/10/19-14:23:17.548230 7f8106ffd6c0 Delete type=3 #82
2023/10/19-14:23:17.548293 7f8106ffd6c0 Delete type=0 #84
2023/10/19-14:23:44.374140 7f7e677006c0 Level-0 table #89: started
2023/10/19-14:23:44.374218 7f7e677006c0 Level-0 table #89: 0 bytes OK
2023/10/19-14:23:44.380552 7f7e677006c0 Delete type=0 #87
2023/10/19-14:23:44.388786 7f7e677006c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)
2023/10/19-14:23:44.388816 7f7e677006c0 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/19-14:21:21.674379 7f8106ffd6c0 Recovering log #80
2023/10/19-14:21:21.684244 7f8106ffd6c0 Delete type=3 #78
2023/10/19-14:21:21.684289 7f8106ffd6c0 Delete type=0 #80
2023/10/19-14:21:29.458222 7f7e677006c0 Level-0 table #85: started
2023/10/19-14:21:29.458243 7f7e677006c0 Level-0 table #85: 0 bytes OK
2023/10/19-14:21:29.464567 7f7e677006c0 Delete type=0 #83
2023/10/19-14:21:29.485621 7f7e677006c0 Manual compaction at level-0 from '!items!5YJWuGaagmi1dgbv' @ 72057594037927935 : 1 .. '!items!yo7mOkfbbOogx8na' @ 0 : 0; will stop at (end)
2023/10/19-14:21:29.485652 7f7e677006c0 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.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000087
MANIFEST-000115

View File

@@ -1,8 +1,8 @@
2023/10/19-14:23:17.501171 7f81077fe6c0 Recovering log #85
2023/10/19-14:23:17.512341 7f81077fe6c0 Delete type=3 #83
2023/10/19-14:23:17.512406 7f81077fe6c0 Delete type=0 #85
2023/10/19-14:23:44.327463 7f7e677006c0 Level-0 table #90: started
2023/10/19-14:23:44.327490 7f7e677006c0 Level-0 table #90: 0 bytes OK
2023/10/19-14:23:44.349170 7f7e677006c0 Delete type=0 #88
2023/10/19-14:23:44.366131 7f7e677006c0 Manual compaction at level-0 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)
2023/10/19-14:23:44.374062 7f7e677006c0 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/19-14:21:21.636140 7f81077fe6c0 Recovering log #81
2023/10/19-14:21:21.647041 7f81077fe6c0 Delete type=3 #79
2023/10/19-14:21:21.647106 7f81077fe6c0 Delete type=0 #81
2023/10/19-14:21:29.443983 7f7e677006c0 Level-0 table #86: started
2023/10/19-14:21:29.444004 7f7e677006c0 Level-0 table #86: 0 bytes OK
2023/10/19-14:21:29.450269 7f7e677006c0 Delete type=0 #84
2023/10/19-14:21:29.458143 7f7e677006c0 Manual compaction at level-0 from '!items!265V8wzrrH3EEgtM' @ 72057594037927935 : 1 .. '!items!zx96NZdE3GrK999G' @ 0 : 0; will stop at (end)
2023/10/19-14:21:29.458168 7f7e677006c0 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)

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

@@ -109,14 +109,14 @@
"styles": [
"styles/simple.css"
],
"version": "11.0.7",
"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.7.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">

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>