forked from public/foundryvtt-reve-de-dragon
43 Init et attaque vie HUD ou fiche de perso
This commit is contained in:
@ -163,6 +163,13 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
computeDeteriorationArme( rollData ) {
|
||||
if ( rollData.arme && rollData.attackerRoll) { // C'est une parade
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async continueRoll(rollData, attacker = undefined) {
|
||||
let rolled = rollData.rolled;
|
||||
@ -198,6 +205,7 @@ export class RdDActor extends Actor {
|
||||
// In case of fight, replace the message per dommages + localization. it indicates if result is OK or not
|
||||
if (rollData.attackerRoll) { // Defense case !
|
||||
if (rolled.isSign || (!rollData.needSignificative && rolled.isSuccess)) {
|
||||
this.computeDeteriorationArme( rollData );
|
||||
explications += "<br><strong>Attaque parée/esquivée !</strong>";
|
||||
} else {
|
||||
explications += "<br><strong>Esquive/Parade échouée, encaissement !</strong>";
|
||||
@ -277,6 +285,7 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static _calculMortaliteEncaissement(rollData, target) {
|
||||
const mortalite = target.actor.isEntiteCauchemar() ? "cauchemar" : (rollData.mortalite ? rollData.mortalite : "mortel");
|
||||
console.log("Mortalité : ", mortalite, target.actor.data.type);
|
||||
@ -410,6 +419,7 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_retrograderBlessure(type, blessure, blessuresMoindres)
|
||||
{
|
||||
if (type != "legere") {
|
||||
@ -423,10 +433,12 @@ export class RdDActor extends Actor {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_supprimerBlessure(blessure) {
|
||||
mergeObject(blessure, { "active": false, "premiers_soins": 0, "soins_complets": 0, "jours": 0, "localisation": "" });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _recupererVie(message) {
|
||||
let blessures = [].concat(this.data.data.blessures.legeres.liste).concat(this.data.data.blessures.graves.liste).concat(this.data.data.blessures.critiques.liste);
|
||||
let nbBlessures = blessures.filter(b => b.active);
|
||||
@ -452,7 +464,8 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _jetRecuperationConstitution(bonusSoins, message = undefined) {
|
||||
let difficulte = Misc.toInt(bonusSoins) + Math.min(0, this.data.data.sante.vie.value - this.data.data.sante.vie.max);
|
||||
let rolled = await RdDResolutionTable.roll(this.data.data.carac.constitution.value, difficulte);
|
||||
@ -462,7 +475,7 @@ export class RdDActor extends Actor {
|
||||
return rolled;
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async remiseANeuf() {
|
||||
let message = {
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ),
|
||||
@ -568,6 +581,8 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async retourSeuilDeReve(message) {
|
||||
const seuil = this.data.data.reve.seuil.value;
|
||||
const reveActuel = this.getReveActuel();
|
||||
@ -733,10 +748,6 @@ export class RdDActor extends Actor {
|
||||
contenu.splice(index, 1);
|
||||
index = contenu.indexOf(itemId);
|
||||
}
|
||||
//console.log("REMOVED: ", itemId, contenu );
|
||||
//let newContenu = conteneur.data.data.contenu.filter( function(value, index, arr) { return value != itemId } );
|
||||
//console.log("Suppression du conteneur2", conteneurId, itemId, newContenu);
|
||||
//let update = {_id: conteneurId, "data.contenu": newContenu };
|
||||
await this.updateEmbeddedEntity("OwnedItem", data2use);
|
||||
}
|
||||
}
|
||||
@ -1330,6 +1341,7 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getTarget() {
|
||||
if (game.user.targets && game.user.targets.size == 1) {
|
||||
for (let target of game.user.targets) {
|
||||
@ -1363,13 +1375,13 @@ export class RdDActor extends Actor {
|
||||
if ( update.data.deterioration >= 10) {
|
||||
update.data.deterioration = 0;
|
||||
if ( update.data.protection.toString().length == 1 )
|
||||
update.data.protection = "d"+update.data.protection+"-0";
|
||||
update.data.protection = "1d"+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);
|
||||
update.data.protection = "1d"+res[1]+"-"+(parseInt(res[2])+1);
|
||||
}
|
||||
/* TODO - POST chat message */
|
||||
ChatMessage.create( {content: "Détérioration d'armure: " + update.data.protection } );
|
||||
}
|
||||
this.updateEmbeddedEntity("OwnedItem", update);
|
||||
}
|
||||
@ -1442,6 +1454,7 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* -- entites -- */
|
||||
/* retourne true si on peut continuer, false si on ne peut pas continuer */
|
||||
async targetEntiteNonAccordee(target, when='avant-encaissement')
|
||||
@ -1453,6 +1466,7 @@ export class RdDActor extends Actor {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async accorder(entite, when = 'avant-encaissement')
|
||||
{
|
||||
if (when != game.settings.get("foundryvtt-reve-de-dragon", "accorder-entite-cauchemar")
|
||||
@ -1480,11 +1494,13 @@ export class RdDActor extends Actor {
|
||||
return rolled.isSuccess;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
isEntiteCauchemar()
|
||||
{
|
||||
return this.data.type == 'entite';
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
isEntiteCauchemarAccordee(attaquant)
|
||||
{
|
||||
if (!this.isEntiteCauchemar()) { return true; }
|
||||
@ -1492,6 +1508,7 @@ export class RdDActor extends Actor {
|
||||
return (resonnance.actors.find(it => it == attaquant._id));
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async setEntiteReveAccordee(attaquant)
|
||||
{
|
||||
if (!this.isEntiteCauchemar()) {
|
||||
|
Reference in New Issue
Block a user