23 lines
1.1 KiB
JavaScript
23 lines
1.1 KiB
JavaScript
if (args.totalWoundLoss > 0)
|
|
{
|
|
let apply = await Dialog.confirm({title : this.effect.name, content : `<p>Appliquer les dégats de ${this.effect.name}? L'attaquant doit avoir utilisé ses mains nues ou une arme de mêlée faite de métal.`})
|
|
if (apply)
|
|
{
|
|
|
|
let damage = 5 + this.actor.characteristics.wp.bonus;
|
|
|
|
let loc = args.opposedTest.attackerTest.weapon?.system.usesHands[0] || "rArm";
|
|
|
|
let APatLoc = args.opposedTest.attacker.system.status.armour[loc];
|
|
|
|
let metalAP = APatLoc.layers.reduce((metal, layer) => metal += (layer.metal ? layer.value : 0), 0)
|
|
|
|
let APused = Math.max(0, APatLoc.value - metalAP); // remove metal AP at location;
|
|
|
|
damage -= (APused + args.opposedTest.attacker.system.characteristics.t.bonus)
|
|
|
|
let msg = await args.opposedTest.attacker.applyBasicDamage(damage, {suppressMsg : true, damageType : game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL});
|
|
msg += ` (${metalAP} PA métalliques ignorés sur ${game.wfrp4e.config.locations[loc]})`
|
|
this.script.scriptMessage(msg)
|
|
}
|
|
} |