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) { 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 }) { async decrementerQuantiteItem(item, quantite, options = { supprimerSiZero: true }) {
if (itemVendu.isService()) {
return;
}
let resteQuantite = (item.system.quantite ?? 1) - quantite; let resteQuantite = (item.system.quantite ?? 1) - quantite;
if (resteQuantite <= 0) { if (resteQuantite <= 0) {
if (options.supprimerSiZero) { if (options.supprimerSiZero) {

View File

@ -15,14 +15,14 @@ export class RdDCommerce extends RdDBaseActor {
} }
canReceive(item) { canReceive(item) {
if (item.isInventaire('all')) { if (item.isInventaire('all')) {
return true; return true;
} }
return super.canReceive(item); return super.canReceive(item);
} }
getQuantiteDisponible(item) { getQuantiteDisponible(item) {
return this.system.illimite ? undefined : item.getQuantite(); return this.system.illimite || item.isService() ? undefined : item.getQuantite();
} }
verifierFortune(cout) { verifierFortune(cout) {
@ -43,11 +43,11 @@ export class RdDCommerce extends RdDBaseActor {
if (this.system.illimite) { if (this.system.illimite) {
return; return;
} }
await super.decrementerQuantiteItem(itemVendu, quantite, {supprimerSiZero: false}); await super.decrementerQuantiteItem(itemVendu, quantite, { supprimerSiZero: false });
} }
calculerPrix(item) { calculerPrix(item) {
const pourcentage = this.system.pourcentage ?? 100; 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() { getQuantite() {
return Math.round(this.system.quantite ?? 0) return this.isService() ? undefined : Math.round(this.system.quantite ?? 0)
} }
getEncTotal() { getEncTotal() {
return this.getEnc() * this.getQuantite(); return (this.isService() ? 0 : this.getQuantite()) * this.getEnc();
} }
getEnc() { getEnc() {
switch (this.type) { switch (this.type) {
case 'service':
return 0;
case 'herbe': case 'herbe':
return this.getEncHerbe(); return this.getEncHerbe();
case 'gemme': case 'gemme':
@ -250,7 +252,7 @@ export class RdDItem extends Item {
} }
valeurTotale() { valeurTotale() {
return this.getQuantite() * this.valeur() return (this.isService() ? 1 : this.getQuantite()) * this.valeur()
} }
valeur() { valeur() {