forked from public/foundryvtt-reve-de-dragon
88 Gestion argent/commerce
This commit is contained in:
@ -98,35 +98,35 @@ export class RdDActor extends Actor {
|
||||
/**
|
||||
* Prepare Character type specific data
|
||||
*/
|
||||
_prepareCharacterData(actorData) {
|
||||
async _prepareCharacterData(actorData) {
|
||||
// Initialize empty items
|
||||
RdDUtility.computeCarac(actorData.data);
|
||||
this.computeEncombrementTotalEtMalusArmure();
|
||||
this.computeEtatGeneral();
|
||||
this.checkMonnaiePresence();
|
||||
await this.checkMonnaiePresence();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
checkMonnaiePresence( ) { // Ajout opportuniste si les pièces n'existent pas.
|
||||
async checkMonnaiePresence( ) { // Ajout opportuniste si les pièces n'existent pas.
|
||||
let piece = this.data.items.find( item => item.type =='monnaie' && Number(item.data.valeur_deniers) == 1);
|
||||
if (!piece) {
|
||||
let piece = RdDUtility.createMonnaie("Etain (1 denier)", 1);
|
||||
this.createOwnedItem( piece );
|
||||
let piece = RdDUtility.createMonnaie("Etain (1 denier)", 1, "systems/foundryvtt-reve-de-dragon/icons/objets/piece_etain_poisson.webp" );
|
||||
const updated = await this.createOwnedItem( piece );
|
||||
}
|
||||
piece = this.data.items.find( item => item.type =='monnaie' && Number(item.data.valeur_deniers) == 10);
|
||||
if (!piece) {
|
||||
let piece = RdDUtility.createMonnaie("Bronze (10 deniers)", 10);
|
||||
this.createOwnedItem( piece );
|
||||
let piece = RdDUtility.createMonnaie("Bronze (10 deniers)", 10, "systems/foundryvtt-reve-de-dragon/icons/objets/piece_bronze_epees.webp");
|
||||
const updated = await this.createOwnedItem( piece );
|
||||
}
|
||||
piece = this.data.items.find( item => item.type =='monnaie' && Number(item.data.valeur_deniers) == 100);
|
||||
if (!piece) {
|
||||
let piece = RdDUtility.createMonnaie("Argent (1 sol)", 100);
|
||||
this.createOwnedItem( piece );
|
||||
let piece = RdDUtility.createMonnaie("Argent (1 sol)", 100, "systems/foundryvtt-reve-de-dragon/icons/objets/piece_argent_sol.webp");
|
||||
const updated = await this.createOwnedItem( piece );
|
||||
}
|
||||
piece = this.data.items.find( item => item.type =='monnaie' && Number(item.data.valeur_deniers) == 1000);
|
||||
if (!piece) {
|
||||
let piece = RdDUtility.createMonnaie("Or (10 sols)", 1000);
|
||||
this.createOwnedItem( piece );
|
||||
let piece = RdDUtility.createMonnaie("Or (10 sols)", 1000, "systems/foundryvtt-reve-de-dragon/icons/objets/piece_or_sol.webp");
|
||||
const updated = await this.createOwnedItem( piece );
|
||||
}
|
||||
}
|
||||
|
||||
@ -2147,7 +2147,7 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
payerDenier( sumDenier ) {
|
||||
async payerDenier( sumDenier, dataObj ) {
|
||||
sumDenier = Number(sumDenier);
|
||||
let denierDisponible = 0;
|
||||
let monnaie = this.data.items.filter( item => item.type =='monnaie');
|
||||
@ -2155,16 +2155,27 @@ export class RdDActor extends Actor {
|
||||
denierDisponible += piece.data.valeur_deniers * Number(piece.data.quantite);
|
||||
}
|
||||
console.log("DENIER", game.user.character, sumDenier, denierDisponible);
|
||||
|
||||
let msg = "";
|
||||
if ( denierDisponible >= sumDenier) {
|
||||
denierDisponible -= sumDenier;
|
||||
this.optimizeArgent(denierDisponible);
|
||||
msg = `Vous avez payé <strong>${sumDenier} Deniers</strong>, qui ont été soustraits de votre argent.`;
|
||||
} else {
|
||||
let message = {
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ),
|
||||
content : "Vous n'avez pas assez d'argent pour paye cette somme !"
|
||||
};
|
||||
ChatMessage.create( message );
|
||||
msg = "Vous n'avez pas assez d'argent pour paye cette somme !";
|
||||
}
|
||||
|
||||
if ( dataObj ) {
|
||||
dataObj.payload.data.cout = sumDenier / 100; // Mise à jour du prix en sols , avec le prix acheté
|
||||
await this.createOwnedItem( dataObj.payload );
|
||||
msg += `<br>Et l'objet <strong>${dataObj.payload.name}</strong> a été ajouté à votre inventaire.`;
|
||||
}
|
||||
|
||||
let message = {
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ),
|
||||
content : msg
|
||||
};
|
||||
ChatMessage.create( message );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
Reference in New Issue
Block a user