Fix vente/don de conteneur
Pour passer par le tchat, le conteneur doit être vide. Correction du calcul de quantité pour les conteneurs.
This commit is contained in:
parent
e02f355405
commit
508d352b0b
@ -3711,7 +3711,7 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
const itemVendu = Misc.data(vendeur?.getObjet(itemId));
|
const itemVendu = Misc.data(vendeur?.getObjet(itemId));
|
||||||
if (itemVendu) {
|
if (itemVendu) {
|
||||||
if (isItemEmpilable ? itemVendu.data.quantite < achat.quantiteTotal : achat.choix.nombreLots != 1) {
|
if (isItemEmpilable ? (itemVendu.data.quantite < achat.quantiteTotal) : (achat.choix.nombreLots != 1)) {
|
||||||
await acheteur?.ajouterDeniers(coutDeniers);
|
await acheteur?.ajouterDeniers(coutDeniers);
|
||||||
ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a plus assez de ${vente.item.name} !`);
|
ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a plus assez de ${vente.item.name} !`);
|
||||||
return;
|
return;
|
||||||
|
@ -5,6 +5,7 @@ export class DialogItemVente extends Dialog {
|
|||||||
|
|
||||||
static async create(item, callback) {
|
static async create(item, callback) {
|
||||||
const itemData = Misc.data(item);
|
const itemData = Misc.data(item);
|
||||||
|
const quantite = item.isConteneur() ? 1 : itemData.data.quantite;
|
||||||
const venteData = {
|
const venteData = {
|
||||||
item: itemData,
|
item: itemData,
|
||||||
alias: item.actor?.name ?? game.user.name,
|
alias: item.actor?.name ?? game.user.name,
|
||||||
@ -13,9 +14,9 @@ export class DialogItemVente extends Dialog {
|
|||||||
prixUnitaire: itemData.data.cout,
|
prixUnitaire: itemData.data.cout,
|
||||||
prixLot: itemData.data.cout,
|
prixLot: itemData.data.cout,
|
||||||
tailleLot: 1,
|
tailleLot: 1,
|
||||||
quantiteNbLots: itemData.data.quantite,
|
quantiteNbLots: quantite,
|
||||||
quantiteMaxLots: itemData.data.quantite,
|
quantiteMaxLots: quantite,
|
||||||
quantiteMax: itemData.data.quantite,
|
quantiteMax: quantite ,
|
||||||
quantiteIllimite: !item.isOwned,
|
quantiteIllimite: !item.isOwned,
|
||||||
isOwned: item.isOwned,
|
isOwned: item.isOwned,
|
||||||
};
|
};
|
||||||
|
@ -30,10 +30,9 @@ export class RdDItemSheet extends ItemSheet {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
_getHeaderButtons() {
|
_getHeaderButtons() {
|
||||||
let buttons = super._getHeaderButtons();
|
let buttons = super._getHeaderButtons();
|
||||||
const videSiConteneur = this.object.isConteneur() ? this.object.isVide() : true;
|
|
||||||
// Add "Post to chat" button
|
// Add "Post to chat" button
|
||||||
// We previously restricted this to GM and editable items only. If you ever find this comment because it broke something: eh, sorry!
|
// We previously restricted this to GM and editable items only. If you ever find this comment because it broke something: eh, sorry!
|
||||||
if ("cout" in Misc.templateData(this.object) && videSiConteneur) {
|
if ("cout" in Misc.templateData(this.object) && this.object.isVideOuNonConteneur()) {
|
||||||
buttons.unshift({
|
buttons.unshift({
|
||||||
class: "post",
|
class: "post",
|
||||||
icon: "fas fa-comments-dollar",
|
icon: "fas fa-comments-dollar",
|
||||||
|
@ -63,8 +63,16 @@ export class RdDItem extends Item {
|
|||||||
return Misc.data(this).type == 'conteneur';
|
return Misc.data(this).type == 'conteneur';
|
||||||
}
|
}
|
||||||
|
|
||||||
isVide() {
|
isConteneurNonVide() {
|
||||||
return this.isConteneur() && (Misc.templateData(this).contenu ?? []).length == 0;
|
return this.isConteneur() && (Misc.templateData(this).contenu?.length ?? 0) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
isConteneurVide() {
|
||||||
|
return this.isConteneur() && (Misc.templateData(this).contenu?.length ?? 0) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
isVideOuNonConteneur() {
|
||||||
|
return !this.isConteneur() || (Misc.templateData(this).contenu?.length ?? 0) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
isAlcool() {
|
isAlcool() {
|
||||||
@ -143,7 +151,7 @@ export class RdDItem extends Item {
|
|||||||
|
|
||||||
getActionPrincipale(options = { warnIfNot: true }) {
|
getActionPrincipale(options = { warnIfNot: true }) {
|
||||||
const itemData = Misc.data(this);
|
const itemData = Misc.data(this);
|
||||||
if (itemData.type != 'conteneur' && (itemData.data.quantite ?? 0) <= 0) {
|
if (!this.isConteneur() && (itemData.data.quantite ?? 0) <= 0) {
|
||||||
if (options.warnIfNot) {
|
if (options.warnIfNot) {
|
||||||
ui.notifications.warn(`Vous n'avez plus de ${itemData.name}.`);
|
ui.notifications.warn(`Vous n'avez plus de ${itemData.name}.`);
|
||||||
}
|
}
|
||||||
@ -217,6 +225,10 @@ export class RdDItem extends Item {
|
|||||||
|
|
||||||
async proposerVente() {
|
async proposerVente() {
|
||||||
console.log(this);
|
console.log(this);
|
||||||
|
if (this.isConteneurNonVide()) {
|
||||||
|
ui.notifications.warn(`Votre ${this.name} n'est pas vide, pas possible de le donner ou le vendre`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
const dialog = await DialogItemVente.create(this, (vente) => this._onProposerVente(vente))
|
const dialog = await DialogItemVente.create(this, (vente) => this._onProposerVente(vente))
|
||||||
dialog.render(true);
|
dialog.render(true);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user