Fix #72 : effect OK for dmr roll

This commit is contained in:
2022-09-28 20:04:04 +02:00
parent e1d6b1aaff
commit fb69f24fce
5 changed files with 47 additions and 9 deletions

View File

@@ -7,7 +7,7 @@ const coverBonusTable = { "nocover": 0, "lightcover": 2, "heavycover": 4, "entre
const statThreatLevel = ["agi", "str", "phy", "com", "def", "per"]
const __subkey2title = {
"melee-dmg": "Melee Damage", "melee-atk": "Melee Attack", "ranged-atk": "Ranged Attack",
"ranged-dmg": "Ranged Damage", "defence": "Defence", "dmg-res": "Damare Resistance"
"ranged-dmg": "Ranged Damage", "defence": "Defence", "dmg-res": "Damage Resistance", "power-dmg": "Power Damage"
}
const __statBuild = [
{ modules: ["vehiclehull"], field: "hr", itemfield: "hr" },
@@ -373,7 +373,7 @@ export class PegasusActor extends Actor {
}
}
if (ppp != this.system.ppp.spentPPP) {
this.update({ 'system.ppp.spentPPP': ppp })
//this.update({ 'system.ppp.spentPPP': ppp })
}
}
/* -------------------------------------------- */
@@ -385,7 +385,7 @@ export class PegasusActor extends Actor {
}
}
if (sizeBonus != this.system.biodata.sizebonus) {
setTimeout(500, this.update( {'system.biodata.sizebonus': sizeBonus}) )
//this.update( {'system.biodata.sizebonus': sizeBonus})
}
}
@@ -1684,6 +1684,7 @@ export class PegasusActor extends Actor {
rollData.diceList = PegasusUtility.getDiceList()
rollData.noBonusDice = this.checkNoBonusDice()
rollData.dicePool = []
rollData.subKey = subKey
if (subKey == "melee-dmg" || subKey == "ranged-dmg" || subKey == "power-dmg") {
rollData.isDamage = true
@@ -1743,6 +1744,7 @@ export class PegasusActor extends Actor {
}
}
this.processSizeBonus(rollData)
this.addEffects(rollData, isInit, isPower, subKey == "power-dmg")
this.addArmorsShields(rollData, statKey, useShield)
this.addWeapons(rollData, statKey, useShield)
@@ -1752,6 +1754,33 @@ export class PegasusActor extends Actor {
return rollData
}
/* -------------------------------------------- */
processSizeBonus( rollData) {
if ( rollData.defenderTokenId) {
let diffSize = rollData.defenderSize - this.system.biodata.sizenum+this.system.biodata.sizebonus
if( rollData.subKey == "melee-atk" || rollData.subKey == "ranged-atk") {
if ( diffSize > 0) {
rollData.effectsList.push({ label: "Size Bonus", type: "effect", applied: true, value: diffSize })
}
}
if( rollData.subKey == "dmg-res" ) {
if ( diffSize < 0) {
rollData.effectsList.push({ label: "Size Bonus", type: "effect", applied: true, value: Math.abs(diffSize) })
}
}
if( rollData.subKey == "defence" ) {
if ( diffSize > 0) {
rollData.effectsList.push({ label: "Size Bonus", type: "effect", applied: true, value: Math.abs(diffSize) })
}
}
if( rollData.subKey == "melee-dmg" || rollData.subKey == "ranged-dmg") {
if ( diffSize < 0) {
rollData.effectsList.push({ label: "Size Bonus", type: "effect", applied: true, value: diffSize })
}
}
}
}
/* -------------------------------------------- */
getLevelRemainingList() {
let options = []

View File

@@ -65,6 +65,9 @@ export class PegasusUtility {
Handlebars.registerHelper('sub', function (a, b) {
return parseInt(a) - parseInt(b);
})
Handlebars.registerHelper('getDice', function (a) {
return PegasusUtility.getDiceFromLevel(a)
})
}
@@ -988,11 +991,11 @@ export class PegasusUtility {
static updateWithTarget(rollData) {
let target = PegasusUtility.getTarget()
if (target) {
console.log("TARGET ", target)
let defenderActor = target.actor
rollData.defenderTokenId = target.id
rollData.defenderSize = Number(defenderActor.system.biodata.sizenum) + Number(defenderActor.system.biodata.sizebonus)
//rollData.attackerId = this.id
console.log("DEFENDER", defenderActor)
console.log("Target/DEFENDER", defenderActor)
defenderActor.addHindrancesList(rollData.effectsList)
}
}