12.0.36 - L'alchimie d'Astrobazzarh #740
@ -1,4 +1,10 @@
|
|||||||
# 12.0
|
# 12.0
|
||||||
|
## 12.0.36 - La cartte d'Astrobazzarh
|
||||||
|
- Fix: la commande /tmra fonctionne correctement sans paramètres
|
||||||
|
|
||||||
|
## 12.0.35 - La Solution d'Astrobazzarh
|
||||||
|
- Fix problème d'initialisation des feuilles d'items
|
||||||
|
|
||||||
## 12.0.34 - la tête d'Astrobazzarh
|
## 12.0.34 - la tête d'Astrobazzarh
|
||||||
- support de liens "jets de dés"
|
- support de liens "jets de dés"
|
||||||
- on peut ajouter des liens "jet de dés" dans les journaux, descriptions, notes, maladresses, ...
|
- on peut ajouter des liens "jet de dés" dans les journaux, descriptions, notes, maladresses, ...
|
||||||
|
@ -361,13 +361,14 @@ export class RdDCommands {
|
|||||||
async getTMRAleatoire(msg, params) {
|
async getTMRAleatoire(msg, params) {
|
||||||
if (params.length < 2) {
|
if (params.length < 2) {
|
||||||
let type = params[0]
|
let type = params[0]
|
||||||
const solvedTerrain = TMRUtility.findTMRLike(type)?.type
|
const solvedTerrain = type ? TMRUtility.findTMRLike(type)?.type : undefined
|
||||||
if (solvedTerrain){
|
const filter = solvedTerrain ? (it => it.type == solvedTerrain) : (it => true)
|
||||||
const tmr = await TMRUtility.getTMRAleatoire(type ? (it => it.type == solvedTerrain) : (it => true))
|
if (type == undefined || solvedTerrain != undefined) {
|
||||||
|
const tmr = await TMRUtility.getTMRAleatoire(filter)
|
||||||
return RdDCommands._chatAnswer(msg, `Case aléatoire: ${tmr.coord} - ${tmr.label}`)
|
return RdDCommands._chatAnswer(msg, `Case aléatoire: ${tmr.coord} - ${tmr.label}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
async findTMR(msg, params) {
|
async findTMR(msg, params) {
|
||||||
|
@ -26,7 +26,7 @@ export class TMRRencontres {
|
|||||||
* @param {*} forcedRoll
|
* @param {*} forcedRoll
|
||||||
*/
|
*/
|
||||||
async rollRencontre(terrain, forcedRoll) {
|
async rollRencontre(terrain, forcedRoll) {
|
||||||
const tmrType = TMRUtility.findTMRLike(terrain)?.type
|
const tmrType = TMRUtility.findTMRLike(terrain, { inclusMauvaise: true })?.type
|
||||||
if (tmrType == undefined) {
|
if (tmrType == undefined) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
@ -38,7 +38,7 @@ export class TMRRencontres {
|
|||||||
const frequence = it => it.system.frequence[tmrType];
|
const frequence = it => it.system.frequence[tmrType];
|
||||||
const row = await this.table.getRandom(frequence, filtreMauvaise, forcedRoll);
|
const row = await this.table.getRandom(frequence, filtreMauvaise, forcedRoll);
|
||||||
if (row) {
|
if (row) {
|
||||||
await CompendiumTableHelpers.tableRowToChatMessage(row, 'Item', {showSource: false});
|
await CompendiumTableHelpers.tableRowToChatMessage(row, 'Item', { showSource: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
return row?.document;
|
return row?.document;
|
||||||
|
@ -22,7 +22,7 @@ export const TMRType = {
|
|||||||
export const FLEUVE_COORD = 'Fleuve'
|
export const FLEUVE_COORD = 'Fleuve'
|
||||||
|
|
||||||
const TMRMapping = {
|
const TMRMapping = {
|
||||||
Fleuve: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
Fleuve: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli", generique: 'fleuve' },
|
||||||
A1: { type: TMRType.cite.type, label: "Cité Vide" },
|
A1: { type: TMRType.cite.type, label: "Cité Vide" },
|
||||||
B1: { type: TMRType.plaines.type, label: "Plaines d’Assorh" },
|
B1: { type: TMRType.plaines.type, label: "Plaines d’Assorh" },
|
||||||
C1: { type: TMRType.necropole.type, label: "Nécropole de Kroak" },
|
C1: { type: TMRType.necropole.type, label: "Nécropole de Kroak" },
|
||||||
@ -281,18 +281,18 @@ export class TMRUtility {
|
|||||||
return Grammar.articleDetermine(tmr.type) + ' ' + tmr.label;
|
return Grammar.articleDetermine(tmr.type) + ' ' + tmr.label;
|
||||||
}
|
}
|
||||||
|
|
||||||
static findTMRLike(type, options = { inclusMauvaise: true }) {
|
static findTMRLike(type, options = { inclusMauvaise: false }) {
|
||||||
const choix = [...Object.values(TMRType)]
|
const choix = [...Object.values(TMRType)]
|
||||||
if (options.inclusMauvaise) {
|
if (options.inclusMauvaise) {
|
||||||
choix.push({ name: 'Mauvaise', type: 'mauvaise'});
|
choix.push({ name: 'Mauvaise', type: 'mauvaise'});
|
||||||
}
|
}
|
||||||
const selection = Misc.findAllLike(type, choix)
|
const selection = Misc.findAllLike(type, choix)
|
||||||
if (selection.length == 0) {
|
if (selection.length == 0) {
|
||||||
ui.notifications.warn(`Un type de TMR doit être indiqué, '${type}' n'est pas trouvé dans ${choix}`);
|
ui.notifications.warn(`Un type de TMR doit être indiqué, '${type}' n'est pas trouvé dans ${choix.map(it => it.name).reduce(Misc.joining(', '))}`);
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
if (selection.length > 1) {
|
if (selection.length > 1) {
|
||||||
ui.notifications.warn(`Plusieurs types de TMR pourraient correspondre à '${type}': ${selection.map(it => it.name)}`);
|
ui.notifications.warn(`Plusieurs types de TMR pourraient correspondre à '${type}': ${selection.map(it => it.name).reduce(Misc.joining(', '))}`);
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
return selection[0]
|
return selection[0]
|
||||||
@ -357,7 +357,7 @@ export class TMRUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static filterTMR(filter) {
|
static filterTMR(filter) {
|
||||||
return Object.values(TMRMapping).filter(filter);
|
return Object.values(TMRMapping).filter(it => !it.generique && filter(it))
|
||||||
}
|
}
|
||||||
|
|
||||||
static getCasesType(type) {
|
static getCasesType(type) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user