Import de foundry.applications.handlebars.renderTemplate au travers d'une constante pour éliminer les warnings
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { renderTemplate, SYSTEM_RDD } from "../constants.js";
 | |
| import { RdDUtility } from "../rdd-utility.js";
 | |
| 
 | |
| const DETAIL_VENTE = 'detailVente';
 | |
| const NB_LOTS = 'nbLotss';
 | |
| 
 | |
| export class ChatVente {
 | |
| 
 | |
|   static getDetailVente(chatMessageId) {
 | |
|     const chatMessage = game.messages.get(chatMessageId)
 | |
|     if (!chatMessage) {
 | |
|       return undefined;
 | |
|     }
 | |
|     const nbLots = chatMessage.getFlag(SYSTEM_RDD, NB_LOTS)
 | |
|     const detail = foundry.utils.duplicate(chatMessage.getFlag(SYSTEM_RDD, DETAIL_VENTE))
 | |
|     if (!detail.item) {
 | |
|       ui.notifications.warn("Impossible d'acheter: informations sur l'objet manquantes")
 | |
|       return undefined;
 | |
|     }
 | |
| 
 | |
|     const vendeur = detail.vendeurId ? game.actors.get(detail.vendeurId) : undefined;
 | |
|     return foundry.utils.mergeObject(detail,
 | |
|       {
 | |
|         alias: vendeur?.name ?? game.user.name,
 | |
|         vendeur,
 | |
|         nbLots: nbLots,
 | |
|         chatMessageIdVente: chatMessageId
 | |
|       })
 | |
|   }
 | |
| 
 | |
|   static getDetailAchatVente(chatMessageId) {
 | |
|     const acheteur = RdDUtility.getSelectedActor()
 | |
|     const detail = ChatVente.getDetailVente(chatMessageId)
 | |
|     if (!acheteur && !detail.vendeur) {
 | |
|       ui.notifications.info("Pas d'acheteur ni de vendeur, aucun changement");
 | |
|       return undefined;
 | |
|     }
 | |
|     return foundry.utils.mergeObject(detail, { acheteur })
 | |
|   }
 | |
| 
 | |
|   static async diminuerQuantiteAchatVente(chatMessageId, quantite) {
 | |
|     const chatMessage = game.messages.get(chatMessageId)
 | |
|     const vente = ChatVente.getDetailVente(chatMessageId)
 | |
|     vente.nbLots = Math.max(0, vente.nbLots - quantite)
 | |
|     await chatMessage.setFlag(SYSTEM_RDD, NB_LOTS, vente.nbLots)
 | |
| 
 | |
|     const html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-vente-item.hbs', vente);
 | |
|     chatMessage.update({ content: html });
 | |
|     chatMessage.render(true);
 | |
|   }
 | |
| 
 | |
|   static async displayAchatVente(vente) {
 | |
|     const html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-vente-item.hbs', vente);
 | |
|     const chatMessage = await ChatMessage.create(RdDUtility.chatDataSetup(html))
 | |
|     await chatMessage.setFlag(SYSTEM_RDD, NB_LOTS, vente.nbLots)
 | |
|     await chatMessage.setFlag(SYSTEM_RDD, DETAIL_VENTE, {
 | |
|       item: vente.item,
 | |
|       properties: vente.item.getProprietes(),
 | |
|       vendeurId: vente.vendeurId,
 | |
|       tailleLot: vente.tailleLot,
 | |
|       quantiteIllimite: vente.quantiteIllimite,
 | |
|       prixLot: vente.prixLot
 | |
|     })
 | |
|   }
 | |
| } |