Volonté ajusté par moral
This commit is contained in:
parent
15d67e72a3
commit
6f22c4ab18
@ -109,6 +109,11 @@ export class RdDActor extends Actor {
|
|||||||
return this.data.type == 'creature' || this.data.type == 'entite';
|
return this.data.type == 'creature' || this.data.type == 'entite';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
isPersonnage() {
|
||||||
|
return this.data.type == 'personnage';
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getReveActuel() {
|
getReveActuel() {
|
||||||
return this.data.data.reve.reve.value;
|
return this.data.data.reve.reve.value;
|
||||||
|
@ -92,6 +92,9 @@ export class RdDResolutionTable {
|
|||||||
let message = "<br>Difficultés <strong>libre: " + rollData.diffLibre + "</strong> / conditions: " + Misc.toSignedString(rollData.diffConditions)
|
let message = "<br>Difficultés <strong>libre: " + rollData.diffLibre + "</strong> / conditions: " + Misc.toSignedString(rollData.diffConditions)
|
||||||
+ " / état: " + rollData.etat;
|
+ " / état: " + rollData.etat;
|
||||||
message += RdDResolutionTable.explain(rollData.rolled)
|
message += RdDResolutionTable.explain(rollData.rolled)
|
||||||
|
if (rollData.selectedCarac == rollData.carac.volonte) {
|
||||||
|
message += " / moral: " + rollData.moral;
|
||||||
|
}
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ export class RdDRoll extends Dialog {
|
|||||||
ajustementsConditions: CONFIG.RDD.ajustementsConditions,
|
ajustementsConditions: CONFIG.RDD.ajustementsConditions,
|
||||||
difficultesLibres: CONFIG.RDD.difficultesLibres,
|
difficultesLibres: CONFIG.RDD.difficultesLibres,
|
||||||
etat: actor.data.data.compteurs.etat.value,
|
etat: actor.data.data.compteurs.etat.value,
|
||||||
|
moral: actor.isPersonnage() ? actor.data.data.compteurs.moral.value : 0,
|
||||||
carac: actor.data.data.carac,
|
carac: actor.data.data.carac,
|
||||||
finalLevel: 0,
|
finalLevel: 0,
|
||||||
diffConditions: rollData.arme ? RdDBonus.bonusAttaque(rollData.surpriseDefenseur) :0,
|
diffConditions: rollData.arme ? RdDBonus.bonusAttaque(rollData.surpriseDefenseur) :0,
|
||||||
@ -40,9 +41,9 @@ export class RdDRoll extends Dialog {
|
|||||||
editLibre: true,
|
editLibre: true,
|
||||||
editConditions: true,
|
editConditions: true,
|
||||||
forceValue: actor.getForceValue(),
|
forceValue: actor.getForceValue(),
|
||||||
malusArmureValue: (actor.type == 'personnage ' && actor.data.data.attributs && actor.data.data.attributs.malusarmure) ? actor.data.data.attributs.malusarmure.value : 0,
|
malusArmureValue: (actor.isPersonnage() && actor.data.data.attributs && actor.data.data.attributs.malusarmure) ? actor.data.data.attributs.malusarmure.value : 0,
|
||||||
surencMalusFlag: actor.type == 'personnage ' ? (actor.data.data.compteurs.surenc.value < 0) : false,
|
surencMalusFlag: actor.isPersonnage() ? (actor.data.data.compteurs.surenc.value < 0) : false,
|
||||||
surencMalusValue: actor.type == 'personnage ' ? actor.data.data.compteurs.surenc.value : 0,
|
surencMalusValue: actor.isPersonnage() ? actor.data.data.compteurs.surenc.value : 0,
|
||||||
surencMalusApply: false,
|
surencMalusApply: false,
|
||||||
isNatation: rollData.competence ? rollData.competence.name.toLowerCase().includes("natation") : false,
|
isNatation: rollData.competence ? rollData.competence.name.toLowerCase().includes("natation") : false,
|
||||||
useEncForNatation: false,
|
useEncForNatation: false,
|
||||||
@ -103,10 +104,11 @@ export class RdDRoll extends Dialog {
|
|||||||
|
|
||||||
var rollData = this.rollData;
|
var rollData = this.rollData;
|
||||||
var actor = this.actor;
|
var actor = this.actor;
|
||||||
|
var dialog = this;
|
||||||
|
|
||||||
function updateRollResult(rollData) {
|
function updateRollResult(rollData) {
|
||||||
let caracValue = parseInt(rollData.selectedCarac.value)
|
let caracValue = parseInt(rollData.selectedCarac.value)
|
||||||
let rollLevel = RdDRoll._computeFinalLevel(rollData);
|
let rollLevel = dialog._computeFinalLevel(rollData);
|
||||||
rollData.dmg = rollData.attackerRoll ? rollData.attackerRoll.dmg : RdDBonus.dmg(rollData, actor.getBonusDegat());
|
rollData.dmg = rollData.attackerRoll ? rollData.attackerRoll.dmg : RdDBonus.dmg(rollData, actor.getBonusDegat());
|
||||||
rollData.finalLevel = rollLevel;
|
rollData.finalLevel = rollLevel;
|
||||||
rollData.caracValue = caracValue;
|
rollData.caracValue = caracValue;
|
||||||
@ -116,7 +118,8 @@ export class RdDRoll extends Dialog {
|
|||||||
dmgText = '(' + dmgText + ')';
|
dmgText = '(' + dmgText + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
HtmlUtility._showControlWhen(".etat-general", !RdDRoll._isIgnoreEtatGeneral(rollData));
|
HtmlUtility._showControlWhen(".diffMoral", rollData.selectedCarac == actor.data.data.carac.volonte);
|
||||||
|
HtmlUtility._showControlWhen(".etat-general", !dialog._isIgnoreEtatGeneral(rollData));
|
||||||
|
|
||||||
// Sort management
|
// Sort management
|
||||||
if (rollData.selectedSort) {
|
if (rollData.selectedSort) {
|
||||||
@ -128,7 +131,7 @@ export class RdDRoll extends Dialog {
|
|||||||
|
|
||||||
// Mise à jour valeurs
|
// Mise à jour valeurs
|
||||||
$("#roll-param").text(rollData.selectedCarac.value + " / " + Misc.toSignedString(rollData.finalLevel));
|
$("#roll-param").text(rollData.selectedCarac.value + " / " + Misc.toSignedString(rollData.finalLevel));
|
||||||
$("#compdialogTitle").text(RdDRoll._getTitle(rollData));
|
$("#compdialogTitle").text(dialog._getTitle(rollData));
|
||||||
$('#coupsNonMortels').prop('checked', rollData.coupsNonMortels);
|
$('#coupsNonMortels').prop('checked', rollData.coupsNonMortels);
|
||||||
$("#dmg-arme-actor").text(dmgText);
|
$("#dmg-arme-actor").text(dmgText);
|
||||||
$("#defenseur-surprise").text(RdDBonus.description(rollData.surpriseDefenseur));
|
$("#defenseur-surprise").text(RdDBonus.description(rollData.surpriseDefenseur));
|
||||||
@ -213,28 +216,29 @@ export class RdDRoll extends Dialog {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static _isIgnoreEtatGeneral(rollData) {
|
_isIgnoreEtatGeneral(rollData) {
|
||||||
return rollData.selectedCarac.ignoreEtatGeneral;
|
return rollData.selectedCarac.ignoreEtatGeneral;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static _computeFinalLevel(rollData) {
|
_computeFinalLevel(rollData) {
|
||||||
const etat = RdDRoll._isIgnoreEtatGeneral(rollData) ? 0 : Misc.toInt(rollData.etat);
|
const etat = this._isIgnoreEtatGeneral(rollData) ? 0 : Misc.toInt(rollData.etat);
|
||||||
const diffConditions = Misc.toInt(rollData.diffConditions);
|
const diffConditions = Misc.toInt(rollData.diffConditions);
|
||||||
const malusEnc = (rollData.surencMalusApply) ? rollData.surencMalusValue : 0;
|
const malusEnc = (rollData.surencMalusApply) ? rollData.surencMalusValue : 0;
|
||||||
const bonusTactique = RdDBonus.bonusAttaque(rollData.tactique);
|
const bonusTactique = RdDBonus.bonusAttaque(rollData.tactique);
|
||||||
const malusEncNatation = (rollData.useEncForNatation) ? -rollData.encValueForNatation : 0;
|
const malusEncNatation = (rollData.useEncForNatation) ? -rollData.encValueForNatation : 0;
|
||||||
const ajustementChance = rollData.selectedCarac.label.toLowerCase().includes('chance') ? rollData.ajustementAstrologique : 0;
|
const ajustementChance = rollData.selectedCarac.label.toLowerCase().includes('chance') ? rollData.ajustementAstrologique : 0;
|
||||||
// Gestion malus armure
|
// Gestion malus armure
|
||||||
const malusArmureValue = RdDRoll._computeMalusArmure(rollData);
|
const malusArmureValue = this._computeMalusArmure(rollData);
|
||||||
|
|
||||||
const diffLibre = RdDRoll._computeDiffLibre(rollData);
|
const diffLibre = this._computeDiffLibre(rollData);
|
||||||
const diffCompetence = RdDRoll._computeDiffCompetence(rollData);
|
const diffCompetence = this._computeDiffCompetence(rollData);
|
||||||
|
const diffMoral = rollData.selectedCarac == this.actor.data.data.carac.volonte ? rollData.moral : 0;
|
||||||
|
|
||||||
return etat + diffCompetence + diffLibre + diffConditions + malusEnc + malusEncNatation + malusArmureValue + ajustementChance + bonusTactique;
|
return etat + diffCompetence + diffLibre + diffMoral + diffConditions + malusEnc + malusEncNatation + malusArmureValue + ajustementChance + bonusTactique;
|
||||||
}
|
}
|
||||||
|
|
||||||
static _computeDiffCompetence(rollData) {
|
_computeDiffCompetence(rollData) {
|
||||||
if (rollData.competence) {
|
if (rollData.competence) {
|
||||||
return Misc.toInt(rollData.competence.data.niveau);
|
return Misc.toInt(rollData.competence.data.niveau);
|
||||||
}
|
}
|
||||||
@ -244,7 +248,7 @@ export class RdDRoll extends Dialog {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static _computeDiffLibre(rollData) {
|
_computeDiffLibre(rollData) {
|
||||||
let diffLibre = Misc.toInt(rollData.diffLibre);
|
let diffLibre = Misc.toInt(rollData.diffLibre);
|
||||||
if (rollData.draconicList && rollData.selectedSort) {
|
if (rollData.draconicList && rollData.selectedSort) {
|
||||||
return RdDItemSort.getDifficulte(rollData.selectedSort, diffLibre);
|
return RdDItemSort.getDifficulte(rollData.selectedSort, diffLibre);
|
||||||
@ -252,7 +256,7 @@ export class RdDRoll extends Dialog {
|
|||||||
return diffLibre;
|
return diffLibre;
|
||||||
}
|
}
|
||||||
|
|
||||||
static _computeMalusArmure(rollData) {
|
_computeMalusArmure(rollData) {
|
||||||
let malusArmureValue = 0;
|
let malusArmureValue = 0;
|
||||||
if (rollData.malusArmureValue != 0 && (rollData.selectedCarac.label == "Agilité" || rollData.selectedCarac.label == "Dérobée")) {
|
if (rollData.malusArmureValue != 0 && (rollData.selectedCarac.label == "Agilité" || rollData.selectedCarac.label == "Dérobée")) {
|
||||||
$("#addon-message").text("Malus armure appliqué : " + rollData.malusArmureValue);
|
$("#addon-message").text("Malus armure appliqué : " + rollData.malusArmureValue);
|
||||||
@ -264,7 +268,7 @@ export class RdDRoll extends Dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static _getTitle(rollData) {
|
_getTitle(rollData) {
|
||||||
if (rollData.competence) {
|
if (rollData.competence) {
|
||||||
// If a weapon is there, add it in the title
|
// If a weapon is there, add it in the title
|
||||||
let armeTitle = (rollData.arme) ? " (" + rollData.arme.name + ") " : "";
|
let armeTitle = (rollData.arme) ? " (" + rollData.arme.name + ") " : "";
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
|
<label class="diffMoral" for="categorie">Moral: {{#if (gt moral 0)}}+{{/if}}{{moral}}</label>
|
||||||
</div>
|
</div>
|
||||||
{{#if arme}}
|
{{#if arme}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
|
<label class="diffMoral" for="categorie">Moral: {{#if (gt moral 0)}}+{{/if}}{{moral}}</label>
|
||||||
</div>
|
</div>
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/dialog-roll-surenc.html"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/dialog-roll-surenc.html"}}
|
||||||
<div class="form-group etat-general">
|
<div class="form-group etat-general">
|
||||||
|
Loading…
Reference in New Issue
Block a user