forked from public/foundryvtt-reve-de-dragon
Preliminary verssion for fight
This commit is contained in:
@ -74,9 +74,11 @@ export class RdDUtility {
|
||||
'systems/foundryvtt-reve-de-dragon/templates/actor-sheet.html',
|
||||
//Items
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item-competence-sheet.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/item-arme-sheet.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/competence-categorie.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/competence-carac-defaut.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/competence-base.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/arme-competence.html',
|
||||
// Dialogs
|
||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-competence.html'
|
||||
];
|
||||
@ -214,12 +216,15 @@ export class RdDUtility {
|
||||
data.carac.lancer.value = Math.floor( (parseInt(data.carac.tir.value) + parseInt(data.carac.force.value)) / 2);
|
||||
|
||||
data.sante.vie.max = Math.ceil( parseInt(data.carac.taille.value) + parseInt(data.carac.constitution.value) /2 );
|
||||
data.sante.vie.value = data.sante.vie.max;
|
||||
if ( data.sante.vie.value > data.sante.vie.max)
|
||||
data.sante.vie.value = data.sante.vie.max;
|
||||
let endurance = Math.max( parseInt(data.carac.taille.value) + parseInt(data.carac.constitution.value), parseInt(data.sante.vie.max) + parseInt(data.carac.volonte.value) );
|
||||
data.sante.endurance.max = endurance;
|
||||
data.sante.endurance.value = endurance;
|
||||
if ( data.sante.endurance.value > endurance)
|
||||
data.sante.endurance.value = endurance;
|
||||
data.sante.fatigue.max = endurance*2;
|
||||
data.sante.fatigue.value = 0;
|
||||
if ( data.sante.fatigue.value > data.sante.fatigue.max )
|
||||
data.sante.fatigue.value = data.sante.fatigue.max;
|
||||
|
||||
data.attributs.sconst.value = 5; // Max !
|
||||
if ( data.carac.constitution.value < 9 )
|
||||
@ -236,9 +241,9 @@ export class RdDUtility {
|
||||
data.attributs.sust.value = 3;
|
||||
|
||||
//Compteurs
|
||||
data.compteurs.reve.value = data.carac.reve.value;
|
||||
//data.compteurs.reve.value = data.carac.reve.value;
|
||||
data.compteurs.reve.max = data.carac.reve.value;
|
||||
data.compteurs.chance.value = data.carac.chance.value;
|
||||
//data.compteurs.chance.value = data.carac.chance.value;
|
||||
data.compteurs.chance.max = data.carac.chance.value;
|
||||
}
|
||||
|
||||
@ -289,16 +294,57 @@ export class RdDUtility {
|
||||
let myroll = new Roll("d20");
|
||||
myroll.roll();
|
||||
let result = myroll.total;
|
||||
if ( result <= 3 ) return "Jambe, genou, pied, jarret";
|
||||
if ( result <= 7 ) return "Hanche, cuisse, fesse";
|
||||
if ( result <= 9 ) return "Ventre, reins";
|
||||
if ( result <= 12 ) return "Poitrine, dos";
|
||||
if ( result <= 14 ) return "Avant-bras, main, coude";
|
||||
if ( result <= 18 ) return "Epaule, bras, omoplate";
|
||||
if ( result == 19) return "Tête autre";
|
||||
if ( result == 20) return "Tête visage";
|
||||
let txt = ""
|
||||
if ( result <= 3 ) txt = "Jambe, genou, pied, jarret";
|
||||
else if ( result <= 7 ) txt = "Hanche, cuisse, fesse";
|
||||
else if ( result <= 9 ) txt = "Ventre, reins";
|
||||
else if ( result <= 12 ) txt = "Poitrine, dos";
|
||||
else if ( result <= 14 ) txt = "Avant-bras, main, coude";
|
||||
else if ( result <= 18 ) txt = "Epaule, bras, omoplate";
|
||||
else if ( result == 19) txt = "Tête autre";
|
||||
else if ( result == 20) txt = "Tête visage";
|
||||
|
||||
return { result: result, label: txt };
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static computeBlessuresSante( degats )
|
||||
{
|
||||
console.log("Degats !!", degats);
|
||||
let result = { "vie": 0,
|
||||
"endurance": 0,
|
||||
"legeres": 0,
|
||||
"graves": 0,
|
||||
"critiques": 0
|
||||
};
|
||||
|
||||
if ( degats < 11 ) {
|
||||
result.type = "contusion";
|
||||
let myroll = new Roll("1d4");
|
||||
myroll.roll();
|
||||
result.endurance = - myroll.result;
|
||||
} else if ( degats < 16 ) {
|
||||
result.type = "blessure légère";
|
||||
let myroll = new Roll("1d6");
|
||||
myroll.roll();
|
||||
result.endurance = - myroll.result;
|
||||
result.legeres = 1
|
||||
} else if (degats < 20 ) {
|
||||
result.type = "blessure grave";
|
||||
let myroll = new Roll("2d6");
|
||||
myroll.roll();
|
||||
result.endurance = - myroll.result;
|
||||
result.vie = -2;
|
||||
result.graves = 1;
|
||||
} else {
|
||||
result.type = "critique";
|
||||
result.endurance = -100; // Force endurance to 0
|
||||
result.vie = -4 - (degats - 20);
|
||||
result.critiques = 1;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static currentFatigueMalus( value, max)
|
||||
{
|
||||
@ -330,4 +376,16 @@ export class RdDUtility {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async chatListeners( html )
|
||||
{
|
||||
html.on("click", '#encaisser-button', event => {
|
||||
event.preventDefault();
|
||||
console.log("Encaisser button", event);
|
||||
let attackerActor = game.actors.get(event.currentTarget.attributes['data-attackerid'].value );
|
||||
let defenderActor = game.actors.get(event.currentTarget.attributes['data-defenderid'].value );
|
||||
defenderActor.encaisserDommages( attackerActor);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user