foundryvtt-reve-de-dragon/module/actor/commerce.js

51 lines
1.2 KiB
JavaScript
Raw Normal View History

import { Misc } from "../misc.js";
2023-01-01 22:21:30 +01:00
import { RdDBaseActor } from "./base-actor.js";
export class RdDCommerce extends RdDBaseActor {
2023-01-01 22:21:30 +01:00
static get defaultIcon() {
return "systems/foundryvtt-reve-de-dragon/icons/services/commerce.webp";
}
prepareData() {
super.prepareData();
}
prepareDerivedData() {
super.prepareDerivedData();
}
canReceive(item) {
2023-11-03 20:21:17 +01:00
return item.isInventaire('all');
2023-01-01 22:21:30 +01:00
}
getQuantiteDisponible(item) {
return (this.system.illimite || item?.isService()) ? undefined : item.getQuantite();
2023-01-01 22:21:30 +01:00
}
2023-01-01 22:21:30 +01:00
verifierFortune(cout) {
return this.system.illimite || super.verifierFortune(cout);
}
2023-01-01 22:21:30 +01:00
async depenserSols(cout) {
if (this.system.illimite) {
return
}
await super.depenserSols(cout)
}
async consommerNourritureAchetee(achat, vente, createdItemId) {
// ne pas consommer pour un commerce
}
2023-01-05 14:32:35 +01:00
async decrementerQuantiteItem(item, quantite) {
2023-01-01 22:21:30 +01:00
if (this.system.illimite) {
return;
}
2023-01-05 14:32:35 +01:00
await super.decrementerQuantiteItem(item, quantite, { supprimerSiZero: false });
2023-01-01 22:21:30 +01:00
}
calculerPrix(item) {
const pourcentage = this.system.pourcentage ?? 100;
return Misc.keepDecimals(Math.ceil(item.system.cout * pourcentage) / 100, 2);
}
2023-01-01 22:21:30 +01:00
}