Gestion armures

This commit is contained in:
LeRatierBretonnien 2020-06-24 00:22:40 +02:00
parent d24be22c5e
commit cde7df1f8e

View File

@ -150,15 +150,16 @@ export class RdDActor extends Actor {
if ( rollData.pointsDeTache > 0 ) {
let myroll = new Roll("2d10");
myroll.roll();
rollData.degats = parseInt(myroll.result) + parseInt(rollData.arme.data.dommages);
rollData.domArmePlusDom = parseInt(rollData.arme.data.dommages);
if ( rollData.selectedCarac.label == "Mêlée" ) // +dom only for Melee
rollData.degats += parseInt(this.data.data.attributs.plusdom.value);
rollData.domArmePlusDom += parseInt(this.data.data.attributs.plusdom.value);
if ( rollData.selectedCarac.label == "Lancer" ) { // +dom only for Melee/Lancer
let bdom = parseInt(this.data.data.attributs.plusdom.value);
if ( bdom > parseInt(rollData.arme.data.dommages)*2 )
bdom = parseInt(rollData.arme.data.dommages)*2;
rollData.degats += bdom
rollData.domArmePlusDom += bdom
}
rollData.degats = parseInt(myroll.result) + rollData.domArmePlusDom;
rollData.loc = RdDUtility.getLocalisation();
for (let target of game.user.targets) {
defenseMsg = RdDUtility.buildDefenseChatCard(this, target, rollData );
@ -329,7 +330,7 @@ export class RdDActor extends Actor {
nGraves++;
}
}
if ( nLegeres == 2) break;
if ( nGraves == 2) break;
}
if ( blessuresData.graves > 0 )
@ -398,17 +399,37 @@ export class RdDActor extends Actor {
equiperObjet( itemID )
{
let item = this.getOwnedItem(itemID);
if ( item && item.data.data )
item.data.data.equipe = !item.data.data.equipe;
if ( item && item.data.data ) {
let update = duplicate(item);
update.data.equipe = !update.data.equipe;
this.updateEmbeddedEntity("OwnedItem", update);
}
}
/* -------------------------------------------- */
computeArmure( locData )
computeArmure( locData, domArmePlusDom )
{
let protection = 0;
for (const item of this.data.items) {
if (item.type == "armure" && item.data.equipe) {
protection += item.data.protection;
let update = duplicate(item);
let myroll = new Roll(update.data.protection.toString());
myroll.roll();
protection += myroll.total;
update.data.deterioration += domArmePlusDom;
domArmePlusDom = 0; // Reset it
if ( update.data.deterioration >= 10) {
update.data.deterioration = 0;
if ( update.data.protection.toString().length == 1 )
update.data.protection = "d"+update.data.protection+"-0";
else {
let regex = /d\(d+)\-(\d+)/g;
let res = regex.exec( update.data.protection );
update.data.protection = "d"+res[1]+"-"+(parseInt(res[2])+1);
}
/* TODO - POST chat message */
}
this.updateEmbeddedEntity("OwnedItem", update);
}
}
console.log("Final protect", protection);
@ -419,7 +440,7 @@ export class RdDActor extends Actor {
encaisserDommages( attackerRoll )
{
//let attackerRoll = rollData.attackerRoll;
let degatsReel = attackerRoll.degats - this.computeArmure(attackerRoll.loc);
let degatsReel = attackerRoll.degats - this.computeArmure(attackerRoll.loc, attackerRoll.domArmePlusDom);
console.log("RollData from attacker!", attackerRoll, degatsReel);
let result = RdDUtility.computeBlessuresSante(degatsReel);