Merge branch 'v1.5' of https://gitlab.com/LeRatierBretonnien/foundryvtt-reve-de-dragon into v1.5
This commit is contained in:
commit
f24331865c
@ -479,7 +479,7 @@ export class RdDActor extends Actor {
|
|||||||
await this._recupererBlessures(message, "critique", blessures.critiques.liste.filter(b => b.active), blessures.graves.liste);
|
await this._recupererBlessures(message, "critique", blessures.critiques.liste.filter(b => b.active), blessures.graves.liste);
|
||||||
await this.update({ "data.blessures": blessures });
|
await this.update({ "data.blessures": blessures });
|
||||||
await this._recupererVie(message);
|
await this._recupererVie(message);
|
||||||
await this.jetDeMoral('neutre');
|
await this._jetDeMoralChateauDormant(message);
|
||||||
await this._recupereChance();
|
await this._recupereChance();
|
||||||
await this.transformerStress();
|
await this.transformerStress();
|
||||||
await this.retourSeuilDeReve(message);
|
await this.retourSeuilDeReve(message);
|
||||||
@ -503,6 +503,11 @@ export class RdDActor extends Actor {
|
|||||||
await this.unsetFlag('foundryvtt-reve-de-dragon', 'utilisationChance');
|
await this.unsetFlag('foundryvtt-reve-de-dragon', 'utilisationChance');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async _jetDeMoralChateauDormant(message) {
|
||||||
|
const jetMoral = await this._jetDeMoral('neutre');
|
||||||
|
message.content += jetMoral.ajustement == 0 ? ' -- le moral reste stable' : ' -- le moral retourne vers 0';
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _recupererBlessures(message, type, liste, moindres) {
|
async _recupererBlessures(message, type, liste, moindres) {
|
||||||
if (!this.bonusRecuperationPotion) this.bonusRecuperationPotion = 0;
|
if (!this.bonusRecuperationPotion) this.bonusRecuperationPotion = 0;
|
||||||
@ -1250,8 +1255,8 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
detectSurEncombrement() {
|
computeMalusSurEncombrement() {
|
||||||
return Math.max(0, Math.ceil(Number(this.encTotal) - this.getEncombrementMax()));
|
return Math.min(0, this.getEncombrementMax() - Math.ceil(Number(this.getEncTotal())));
|
||||||
}
|
}
|
||||||
|
|
||||||
getEncombrementMax() {
|
getEncombrementMax() {
|
||||||
@ -1292,7 +1297,7 @@ export class RdDActor extends Actor {
|
|||||||
.map(it => it.data.malus ?? 0)
|
.map(it => it.data.malus ?? 0)
|
||||||
.reduce(Misc.sum(), 0);
|
.reduce(Misc.sum(), 0);
|
||||||
// Mise à jour éventuelle du malus armure
|
// Mise à jour éventuelle du malus armure
|
||||||
if (newMalusArmure && Misc.templateData(this).attributs?.malusarmure?.value != newMalusArmure) {
|
if (Misc.templateData(this).attributs?.malusarmure?.value != newMalusArmure) {
|
||||||
await this.updateAttributeValue("malusarmure", newMalusArmure);
|
await this.updateAttributeValue("malusarmure", newMalusArmure);
|
||||||
}
|
}
|
||||||
return newMalusArmure;
|
return newMalusArmure;
|
||||||
@ -1339,23 +1344,24 @@ export class RdDActor extends Actor {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
computeEtatGeneral() {
|
computeEtatGeneral() {
|
||||||
const actorData = Misc.data(this);
|
const actorData = Misc.data(this);
|
||||||
|
const tplData = Misc.templateData(this);
|
||||||
|
|
||||||
// Pas d'état général pour les entités forçage à 0
|
// Pas d'état général pour les entités forçage à 0
|
||||||
if (this.data.type == 'entite') {
|
if (this.data.type == 'entite') {
|
||||||
actorData.data.compteurs.etat.value = 0;
|
tplData.compteurs.etat.value = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Pour les autres
|
// Pour les autres
|
||||||
let state = - (actorData.data.sante.vie.max - actorData.data.sante.vie.value);
|
let state = Math.min(tplData.sante.vie.value - tplData.sante.vie.max, 0);
|
||||||
if (ReglesOptionelles.isUsing("appliquer-fatigue") && actorData.data.sante.fatigue) {
|
if (ReglesOptionelles.isUsing("appliquer-fatigue") && tplData.sante.fatigue) {
|
||||||
state += RdDUtility.currentFatigueMalus(actorData.data.sante.fatigue.value, actorData.data.sante.endurance.max);
|
state += RdDUtility.currentFatigueMalus(tplData.sante.fatigue.value, tplData.sante.endurance.max);
|
||||||
}
|
}
|
||||||
// Ajout de l'éthylisme
|
// Ajout de l'éthylisme
|
||||||
state += Math.min(0, (actorData.data.compteurs.ethylisme?.value ?? 0));
|
state += Math.min(0, (tplData.compteurs.ethylisme?.value ?? 0));
|
||||||
|
|
||||||
actorData.data.compteurs.etat.value = state;
|
tplData.compteurs.etat.value = state;
|
||||||
if (actorData.data.compteurs?.surenc) {
|
if (tplData.compteurs?.surenc) {
|
||||||
actorData.data.compteurs.surenc.value = - this.detectSurEncombrement();
|
tplData.compteurs.surenc.value = this.computeMalusSurEncombrement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1767,19 +1773,16 @@ export class RdDActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async jetDeMoral(situation, messageReussi = undefined, messageManque = undefined) {
|
async jetDeMoral(situation, messageReussi = undefined, messageManque = undefined) {
|
||||||
let jetMoral = await this._jetMoral(situation)
|
const jetMoral = await this._jetDeMoral(situation);
|
||||||
if (jetMoral.ajustement != 0) {
|
const finMessage = (jetMoral.succes ? messageReussi : messageManque) ?? (jetMoral.ajustement == 0 ? "Vous gardez votre moral": jetMoral.ajustement > 0 ? "Vous gagnez du moral" : "Vous perdez du moral");
|
||||||
let defaultMessage = jetMoral.ajustement > 0 ? "Vous gagnez du moral" : "Vous perdez du moral";
|
ChatMessage.create({
|
||||||
let finMessage = jetMoral.succes ? (messageReussi != undefined ? messageReussi : defaultMessage) : (messageManque != undefined ? messageManque : defaultMessage);
|
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
|
||||||
ChatMessage.create({
|
content: `${finMessage} - jet ${jetMoral.succes ? "réussi" : "manqué"} en situation ${situation} (${jetMoral.jet}/${jetMoral.difficulte}).`
|
||||||
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
|
});
|
||||||
content: `${finMessage} - jet ${jetMoral.succes ? "réussi" : "manqué"} en situation ${situation} (${jetMoral.jet}/${jetMoral.difficulte}).`
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return jetMoral.ajustement;
|
return jetMoral.ajustement;
|
||||||
}
|
}
|
||||||
|
|
||||||
async _jetMoral(situation) {
|
async _jetDeMoral(situation) {
|
||||||
const moralActuel = Misc.toInt(Misc.templateData(this).compteurs.moral.value);
|
const moralActuel = Misc.toInt(Misc.templateData(this).compteurs.moral.value);
|
||||||
const jet = await RdDDice.rollTotal("1d20", { showDice: true });
|
const jet = await RdDDice.rollTotal("1d20", { showDice: true });
|
||||||
const difficulte = 10 + moralActuel;
|
const difficulte = 10 + moralActuel;
|
||||||
@ -1972,7 +1975,7 @@ export class RdDActor extends Actor {
|
|||||||
ethylismeData.perteEndurance = await this.santeIncDec("endurance", -perte);
|
ethylismeData.perteEndurance = await this.santeIncDec("endurance", -perte);
|
||||||
|
|
||||||
if (!ethylisme.jet_moral) {
|
if (!ethylisme.jet_moral) {
|
||||||
ethylismeData.jetMoral = await this._jetMoral('heureuse');
|
ethylismeData.jetMoral = await this._jetDeMoral('heureuse');
|
||||||
if (ethylismeData.jetMoral.ajustement == 1) {
|
if (ethylismeData.jetMoral.ajustement == 1) {
|
||||||
ethylismeData.moralAlcool = 'heureux';
|
ethylismeData.moralAlcool = 'heureux';
|
||||||
ethylisme.jet_moral = true;
|
ethylisme.jet_moral = true;
|
||||||
|
@ -29,7 +29,7 @@ export class DialogItemAchat extends Dialog {
|
|||||||
|
|
||||||
constructor(html, vendeur, acheteur, venteData, chatMessageIdVente) {
|
constructor(html, vendeur, acheteur, venteData, chatMessageIdVente) {
|
||||||
const isConsommable = venteData.item.type == 'nourritureboisson';
|
const isConsommable = venteData.item.type == 'nourritureboisson';
|
||||||
let options = { classes: ["dialogachat"], width: 400, height: isConsommable ? 450 : 300, 'z-index': 99999 };
|
let options = { classes: ["dialogachat"], width: 400, height: isConsommable ? 450 : 350, 'z-index': 99999 };
|
||||||
|
|
||||||
const actionAchat = venteData.prixLot > 0 ? "Acheter" : "Prendre";
|
const actionAchat = venteData.prixLot > 0 ? "Acheter" : "Prendre";
|
||||||
const buttons = {};
|
const buttons = {};
|
||||||
@ -39,7 +39,7 @@ export class DialogItemAchat extends Dialog {
|
|||||||
buttons[actionAchat] = { label: actionAchat, callback: it => { this.onAchat(); } };
|
buttons[actionAchat] = { label: actionAchat, callback: it => { this.onAchat(); } };
|
||||||
buttons["decliner"] = { label: "Décliner", callback: it => { } };
|
buttons["decliner"] = { label: "Décliner", callback: it => { } };
|
||||||
let conf = {
|
let conf = {
|
||||||
title: actionAchat,
|
title: venteData.acheteur? venteData.acheteur.name + " - " + actionAchat : actionAchat,
|
||||||
content: html,
|
content: html,
|
||||||
default: actionAchat,
|
default: actionAchat,
|
||||||
buttons: buttons
|
buttons: buttons
|
||||||
|
BIN
styles/img/ui/icon_echoppe.webp
Normal file
BIN
styles/img/ui/icon_echoppe.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
@ -1,14 +1,24 @@
|
|||||||
<form class="rdddialog">
|
<form class="rdddialog">
|
||||||
<div>
|
<div>
|
||||||
{{#if vendeur}}
|
<div class="flexrow flex-center">
|
||||||
<img class="chat-icon" src="{{vendeur.img}}" title="{{vendeur.name}}" alt="{{vendeur.name}}" />
|
<div>
|
||||||
{{/if}}
|
{{#if vendeur}}
|
||||||
<img class="chat-icon" src="{{item.img}}" title="{{item.name}}" alt="{{item.name}}" />
|
<img class="chat-icon" src="{{vendeur.img}}" title="{{vendeur.name}}" alt="{{vendeur.name}}" />
|
||||||
{{!--
|
{{else}}
|
||||||
{{#if acheteur}}
|
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/icon_echoppe.webp" title="Un commerçant" alt="Vendeur MJ" />
|
||||||
<img class="chat-icon" src="{{acheteur.img}}" title="{{acheteur.name}}" alt="{{acheteur.name}}" />
|
{{/if}}
|
||||||
{{/if}}
|
</div>
|
||||||
--}}
|
<div><i class="fas fa-sign-out-alt"></i></div>
|
||||||
|
<div><img class="chat-icon" src="{{item.img}}" title="{{item.name}}" alt="{{item.name}}" /></div>
|
||||||
|
<div><i class="fas fa-sign-in-alt"></i></div>
|
||||||
|
<div>
|
||||||
|
{{#if acheteur}}
|
||||||
|
<img class="chat-icon" src="{{acheteur.img}}" title="{{acheteur.name}}" alt="{{acheteur.name}}" />
|
||||||
|
{{else}}
|
||||||
|
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/styles/img/ui/icon_echoppe.webp" title="Un acheteur" alt="Acheteur MJ" />
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<h4>
|
<h4>
|
||||||
{{#if isVente}}Acheter{{else}}Prendre{{/if}}
|
{{#if isVente}}Acheter{{else}}Prendre{{/if}}
|
||||||
{{#if vendeur}}à {{vendeur.name}}{{/if}}:
|
{{#if vendeur}}à {{vendeur.name}}{{/if}}:
|
||||||
|
Loading…
Reference in New Issue
Block a user