/* -------------------------------------------- */ import { Misc } from "./misc.js"; /* -------------------------------------------- */ export class RdDAlchimie { /* -------------------------------------------- */ static processManipulation( recette, actorId = undefined ) { //console.log("CALLED", recette, recette.isOwned, actorId ); let manip = duplicate(recette.data.manipulation); let reg1 = new RegExp(/@(\w*){([\w\-]+)}/ig); let matchArray = manip.match( reg1 ); if ( matchArray ) { for( let matchStr of matchArray) { let reg2 = new RegExp(/@(\w*){([\w\-]+)}/i); let result = matchStr.match(reg2); //console.log("RESULT ", result); if ( result[1] && result[2]) { let commande = Misc.upperFirst( result[1] ); let replacement = this[`_alchimie${commande}`](recette, result[2], actorId); manip = manip.replace( result[0], replacement); } } } recette.data.manipulation_update = manip; } /* -------------------------------------------- */ static _alchimieCouleur( recette, couleurs, actorId ) { let replacement if ( actorId ) { replacement = `couleur ${couleurs}`; } else { replacement = `couleur ${couleurs} `; } return replacement; } /* -------------------------------------------- */ static _alchimieConsistance( recette, consistances, actorId ) { let replacement if ( actorId ) { replacement = `consistance ${consistances}`; } else { replacement = `consistance ${consistances} `; } return replacement; } /* -------------------------------------------- */ static getDifficulte(aspects) { let elements = aspects.split('-'); let composantes = elements.length; let distincts = Object.keys(Misc.classifyFirst(elements, it => it)).length; if (distincts == 1) { composantes--; } return Math.min(0, -composantes); } }