Les services sont inquantifiables

Ne pas décrémenter leur quantité, et leur quantite disponible est
undefined (ie: infinie)
This commit is contained in:
Vincent Vandemeulebrouck 2023-01-03 13:38:04 +01:00
parent 5bddc548de
commit 2e0abaa284
3 changed files with 15 additions and 10 deletions

View File

@ -220,7 +220,7 @@ export class RdDBaseActor extends Actor {
/* -------------------------------------------- */
getQuantiteDisponible(item) {
return item?.getQuantite();
return item?.isService() ? undefined : item?.getQuantite();
}
/* -------------------------------------------- */
@ -310,6 +310,9 @@ export class RdDBaseActor extends Actor {
async decrementerQuantiteItem(item, quantite, options = { supprimerSiZero: true }) {
if (itemVendu.isService()) {
return;
}
let resteQuantite = (item.system.quantite ?? 1) - quantite;
if (resteQuantite <= 0) {
if (options.supprimerSiZero) {

View File

@ -2,7 +2,7 @@ import { Misc } from "../misc.js";
import { RdDBaseActor } from "./base-actor.js";
export class RdDCommerce extends RdDBaseActor {
static get defaultIcon() {
return "systems/foundryvtt-reve-de-dragon/icons/services/commerce.webp";
}
@ -15,16 +15,16 @@ export class RdDCommerce extends RdDBaseActor {
}
canReceive(item) {
if (item.isInventaire('all')) {
if (item.isInventaire('all')) {
return true;
}
return super.canReceive(item);
}
getQuantiteDisponible(item) {
return this.system.illimite ? undefined : item.getQuantite();
return this.system.illimite || item.isService() ? undefined : item.getQuantite();
}
verifierFortune(cout) {
return this.system.illimite || super.verifierFortune(cout);
}
@ -43,11 +43,11 @@ export class RdDCommerce extends RdDBaseActor {
if (this.system.illimite) {
return;
}
await super.decrementerQuantiteItem(itemVendu, quantite, {supprimerSiZero: false});
await super.decrementerQuantiteItem(itemVendu, quantite, { supprimerSiZero: false });
}
calculerPrix(item) {
const pourcentage = this.system.pourcentage ?? 100;
return Misc.keepDecimals(Math.ceil(item.system.cout * pourcentage)/100, 2);
return Misc.keepDecimals(Math.ceil(item.system.cout * pourcentage) / 100, 2);
}
}

View File

@ -223,15 +223,17 @@ export class RdDItem extends Item {
}
getQuantite() {
return Math.round(this.system.quantite ?? 0)
return this.isService() ? undefined : Math.round(this.system.quantite ?? 0)
}
getEncTotal() {
return this.getEnc() * this.getQuantite();
return (this.isService() ? 0 : this.getQuantite()) * this.getEnc();
}
getEnc() {
switch (this.type) {
case 'service':
return 0;
case 'herbe':
return this.getEncHerbe();
case 'gemme':
@ -250,7 +252,7 @@ export class RdDItem extends Item {
}
valeurTotale() {
return this.getQuantite() * this.valeur()
return (this.isService() ? 1 : this.getQuantite()) * this.valeur()
}
valeur() {