forked from public/foundryvtt-reve-de-dragon
		
	Reprise du journal d'expérience pour: - afficher ancienne/nouvelle valeur - la valeur du changement - si c'est manuel / automatique - identifier les dépenses de stress - identifier les augmentations de compétences - les changements des compteurs
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
 | |
| export const XP_TOPIC = {
 | |
|   XP: { code: 'xp', label: 'xp' },
 | |
|   XPSORT: { code: 'xpsort', label: 'xp sort' },
 | |
|   NIVEAU: { code: 'niveau', label: 'Niveau' },
 | |
|   XPCARAC: { code: 'xpcarac', label: 'xp carac' },
 | |
|   CARAC: { code: 'carac', label: 'Carac' },
 | |
|   STRESS: { code: 'stress', label: 'Stress' },
 | |
|   TRANSFORM: { code: 'xps', label: 'Transformé' },
 | |
| }
 | |
| 
 | |
| export class ExperienceLog {
 | |
| 
 | |
|   static async add(actor, topic, from, to, raison, manuel = false) {
 | |
|     if (!actor.hasPlayerOwner || !actor.isPersonnage()) {
 | |
|       return
 | |
|     }
 | |
|     if (from == to) {
 | |
|       return
 | |
|     }
 | |
|     const newXpLog = {
 | |
|       mode: topic?.code ?? topic,
 | |
|       raison: (manuel ? '(manuel) ' : '') + raison,
 | |
|       from: from,
 | |
|       to: to,
 | |
|       valeur: to - from,
 | |
|       daterdd: game.system.rdd.calendrier.dateCourante(),
 | |
|       datereel: game.system.rdd.calendrier.dateReel().replace('T', ' ')
 | |
|     };
 | |
|     console.log('ExperienceLog.add', newXpLog)
 | |
|     const newExperienceLog = (actor.system.experiencelog ?? []).concat([newXpLog]);
 | |
|     await actor.update({ [`system.experiencelog`]: newExperienceLog });
 | |
|   }
 | |
| 
 | |
|   static labelTopic(topic) {
 | |
|     const xpt = Object.values(XP_TOPIC).find(it => it.code == topic);
 | |
|     return xpt?.label ?? xpt?.code ?? topic;
 | |
|   }
 | |
| } |