Add initiative and ammo

This commit is contained in:
2023-10-21 10:25:39 +02:00
parent 78edf6b80b
commit 06e265586b
62 changed files with 398 additions and 207 deletions

View File

@@ -158,6 +158,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 +184,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 +201,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 +410,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 +643,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 {