le Guerrier Sorde n'est pas joueur
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
## 13.0.42 - La rebellion d'Illisys
|
## 13.0.42 - La rebellion d'Illisys
|
||||||
|
|
||||||
|
- le Guerrier Sorde n'est pas joueur et ne cuisine pas (pas de message si compétence Jeu / Cuisine manquent)
|
||||||
- Corrections V14
|
- Corrections V14
|
||||||
- Les descriptions aléatoires fonctionnent de nouveau
|
- Les descriptions aléatoires fonctionnent de nouveau
|
||||||
|
|
||||||
|
|||||||
@@ -35,3 +35,10 @@ export const DIFFS = {
|
|||||||
[DIFF.AUCUN]: { key: DIFF.AUCUN, label: "", libre: false, visible: false, max: 0 },
|
[DIFF.AUCUN]: { key: DIFF.AUCUN, label: "", libre: false, visible: false, max: 0 },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class RollConstants {
|
||||||
|
static findCompetence(rollData, name) {
|
||||||
|
return rollData.active.actor.getCompetence(name, { onMessage: message => { } })
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ITEM_TYPES } from "../constants.js"
|
import { ITEM_TYPES } from "../constants.js"
|
||||||
import { CARACS } from "../rdd-carac.js"
|
import { CARACS } from "../rdd-carac.js"
|
||||||
import { ROLL_TYPE_CUISINE } from "./roll-constants.mjs"
|
import { ROLL_TYPE_CUISINE, RollConstants } from "./roll-constants.mjs"
|
||||||
import { PART_CARAC } from "./roll-part-carac.mjs"
|
import { PART_CARAC } from "./roll-part-carac.mjs"
|
||||||
import { PART_COMP } from "./roll-part-comp.mjs"
|
import { PART_COMP } from "./roll-part-comp.mjs"
|
||||||
import { RollPartSelect } from "./roll-part-select.mjs"
|
import { RollPartSelect } from "./roll-part-select.mjs"
|
||||||
@@ -18,7 +18,11 @@ export class RollPartCuisine extends RollPartSelect {
|
|||||||
|
|
||||||
get rollTypes() { return [ROLL_TYPE_CUISINE] }
|
get rollTypes() { return [ROLL_TYPE_CUISINE] }
|
||||||
|
|
||||||
isValid(rollData) { return rollData.active.actor.isPersonnage() }
|
isValid(rollData) {
|
||||||
|
return rollData.active.actor.isPersonnage()
|
||||||
|
&& RollConstants.findCompetence(rollData, 'Cuisine')
|
||||||
|
}
|
||||||
|
|
||||||
visible(rollData) { return RollPart.isRollType(rollData, ROLL_TYPE_CUISINE) }
|
visible(rollData) { return RollPart.isRollType(rollData, ROLL_TYPE_CUISINE) }
|
||||||
|
|
||||||
restore(rollData) {
|
restore(rollData) {
|
||||||
@@ -38,14 +42,18 @@ export class RollPartCuisine extends RollPartSelect {
|
|||||||
|
|
||||||
loadRefs(rollData) {
|
loadRefs(rollData) {
|
||||||
const refs = this.getRefs(rollData)
|
const refs = this.getRefs(rollData)
|
||||||
const actor = rollData.active.actor
|
refs.cuisine = this.findCompetence(rollData, 'Cuisine')
|
||||||
refs.cuisine = actor.getCompetence('Cuisine')
|
|
||||||
|
|
||||||
const recettes = actor.items
|
if (!refs.cuisine) {
|
||||||
|
refs.preparations = []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const recettes = rollData.active.actor.items
|
||||||
.filter(it => it.type == ITEM_TYPES.recettecuisine)
|
.filter(it => it.type == ITEM_TYPES.recettecuisine)
|
||||||
.map(it => RollPartCuisine.$extractPreparationRecette(refs.cuisine, it))
|
.map(it => RollPartCuisine.$extractPreparationRecette(refs.cuisine, it))
|
||||||
|
|
||||||
const ingredientsBruts = actor.items
|
const ingredientsBruts = rollData.active.actor.items
|
||||||
.filter(it => it.getUtilisationCuisine() == 'brut')
|
.filter(it => it.getUtilisationCuisine() == 'brut')
|
||||||
.map(it => RollPartCuisine.$extractPreparationBrut(refs.cuisine, it))
|
.map(it => RollPartCuisine.$extractPreparationBrut(refs.cuisine, it))
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
import { ITEM_TYPES } from "../constants.js"
|
import { ITEM_TYPES } from "../constants.js"
|
||||||
import { CARACS } from "../rdd-carac.js"
|
import { CARACS } from "../rdd-carac.js"
|
||||||
import { ROLL_TYPE_JEU } from "./roll-constants.mjs"
|
import { ROLL_TYPE_JEU, RollConstants } from "./roll-constants.mjs"
|
||||||
import { PART_CARAC } from "./roll-part-carac.mjs"
|
import { PART_CARAC } from "./roll-part-carac.mjs"
|
||||||
import { PART_COMP, RollPartComp } from "./roll-part-comp.mjs"
|
import { PART_COMP, RollPartComp } from "./roll-part-comp.mjs"
|
||||||
import { RollPartSelect } from "./roll-part-select.mjs"
|
import { RollPartSelect } from "./roll-part-select.mjs"
|
||||||
import { ROLLDIALOG_SECTION, RollPart } from "./roll-part.mjs"
|
import { ROLLDIALOG_SECTION, RollPart } from "./roll-part.mjs"
|
||||||
import { RdDItem } from "../item.js"
|
import { RdDItem } from "../item.js"
|
||||||
import { Misc } from "../misc.js"
|
import { Misc } from "../misc.js"
|
||||||
import { Grammar } from "../grammar.js"
|
|
||||||
|
|
||||||
export const PART_JEU = "jeu"
|
export const PART_JEU = "jeu"
|
||||||
|
|
||||||
@@ -19,15 +18,21 @@ export class RollPartJeu extends RollPartSelect {
|
|||||||
get section() { return ROLLDIALOG_SECTION.CHOIX }
|
get section() { return ROLLDIALOG_SECTION.CHOIX }
|
||||||
|
|
||||||
get rollTypes() { return [ROLL_TYPE_JEU] }
|
get rollTypes() { return [ROLL_TYPE_JEU] }
|
||||||
isValid(rollData) { return rollData.active.actor.isPersonnage() }
|
isValid(rollData) {
|
||||||
|
return rollData.active.actor.isPersonnage()
|
||||||
|
&& RollConstants.findCompetence(rollData, 'Jeu')
|
||||||
|
}
|
||||||
|
|
||||||
visible(rollData) { return RollPart.isRollType(rollData, ROLL_TYPE_JEU) }
|
visible(rollData) { return RollPart.isRollType(rollData, ROLL_TYPE_JEU) }
|
||||||
|
|
||||||
loadRefs(rollData) {
|
loadRefs(rollData) {
|
||||||
const refs = this.getRefs(rollData)
|
const refs = this.getRefs(rollData)
|
||||||
const actor = rollData.active.actor
|
const compJeu = RollConstants.findCompetence(rollData, 'Jeu')
|
||||||
const compJeu = actor.getCompetence(COMPETENCE_JEU)
|
if (!compJeu) {
|
||||||
|
refs.jeux = []
|
||||||
refs.jeux = actor.itemTypes[ITEM_TYPES.jeu]
|
return
|
||||||
|
}
|
||||||
|
refs.jeux = rollData.active.actor.itemTypes[ITEM_TYPES.jeu]
|
||||||
.map(it => RollPartJeu.$extractJeu(it, compJeu))
|
.map(it => RollPartJeu.$extractJeu(it, compJeu))
|
||||||
|
|
||||||
if (refs.jeux.length > 0) {
|
if (refs.jeux.length > 0) {
|
||||||
@@ -51,22 +56,22 @@ export class RollPartJeu extends RollPartSelect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static $getJeuBase(jeu, comp, caracs) {
|
static $getJeuBase(jeu, compJeu, caracs) {
|
||||||
if (jeu.system.base < comp.system.niveau) {
|
if (jeu.system.base < compJeu.system.niveau) {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
return new RdDItem({
|
return new RdDItem({
|
||||||
id: comp.id,
|
id: compJeu.id,
|
||||||
name: `Jeu ${Misc.lowerFirst(jeu.name)}`,
|
name: `Jeu ${Misc.lowerFirst(jeu.name)}`,
|
||||||
type: ITEM_TYPES.competence,
|
type: ITEM_TYPES.competence,
|
||||||
img: comp.img,
|
img: compJeu.img,
|
||||||
system: foundry.utils.mergeObject(
|
system: foundry.utils.mergeObject(
|
||||||
{
|
{
|
||||||
niveau: jeu.system.base,
|
niveau: jeu.system.base,
|
||||||
base: jeu.system.base,
|
base: jeu.system.base,
|
||||||
default_carac: caracs.length > 0 ? caracs[0] : CARACS.CHANCE
|
default_carac: caracs.length > 0 ? caracs[0] : CARACS.CHANCE
|
||||||
},
|
},
|
||||||
comp.system,
|
compJeu.system,
|
||||||
{ overwrite: false }
|
{ overwrite: false }
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
@@ -90,7 +95,7 @@ export class RollPartJeu extends RollPartSelect {
|
|||||||
|
|
||||||
static forceCompJeu(rollData) {
|
static forceCompJeu(rollData) {
|
||||||
const jeu = rollData.current[PART_JEU].base ?? rollData.current[PART_JEU].comp
|
const jeu = rollData.current[PART_JEU].base ?? rollData.current[PART_JEU].comp
|
||||||
if (jeu){
|
if (jeu) {
|
||||||
rollData.refs[PART_COMP].comps = [jeu].map(it => RollPartComp.extractComp(it))
|
rollData.refs[PART_COMP].comps = [jeu].map(it => RollPartComp.extractComp(it))
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { ITEM_TYPES } from "../constants.js"
|
import { ITEM_TYPES } from "../constants.js"
|
||||||
import { APPRECIATION } from "../moral/apprecier.mjs"
|
import { APPRECIATION } from "../moral/apprecier.mjs"
|
||||||
import { RollBasicParts } from "./roll-basic-parts.mjs"
|
import { RollBasicParts } from "./roll-basic-parts.mjs"
|
||||||
import { DIFF, ROLL_TYPE_CUISINE } from "./roll-constants.mjs"
|
import { DIFF, ROLL_TYPE_CUISINE, RollConstants } from "./roll-constants.mjs"
|
||||||
import { PART_CUISINE } from "./roll-part-cuisine.mjs"
|
import { PART_CUISINE } from "./roll-part-cuisine.mjs"
|
||||||
import { RollType } from "./roll-type.mjs"
|
import { RollType } from "./roll-type.mjs"
|
||||||
|
|
||||||
@@ -9,8 +9,11 @@ export class RollTypeCuisine extends RollType {
|
|||||||
get code() { return ROLL_TYPE_CUISINE }
|
get code() { return ROLL_TYPE_CUISINE }
|
||||||
get name() { return `Cuisiner un plat` }
|
get name() { return `Cuisiner un plat` }
|
||||||
|
|
||||||
visible(rollData) { return rollData.active.actor.isPersonnage()
|
visible(rollData) {
|
||||||
&& rollData.active.actor.getCompetence('Cuisine') != undefined }
|
return rollData.active.actor.isPersonnage()
|
||||||
|
&& RollConstants.findCompetence(rollData, 'Cuisine')
|
||||||
|
}
|
||||||
|
|
||||||
title(rollData) {
|
title(rollData) {
|
||||||
const current = rollData.current[PART_CUISINE]
|
const current = rollData.current[PART_CUISINE]
|
||||||
return current.recette ? `prépare une recette: ${current.label}` : `prépare: ${current.label}`
|
return current.recette ? `prépare une recette: ${current.label}` : `prépare: ${current.label}`
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { PART_JEU, RollPartJeu } from "./roll-part-jeu.mjs"
|
import { PART_JEU, RollPartJeu } from "./roll-part-jeu.mjs"
|
||||||
import { RollType } from "./roll-type.mjs"
|
import { RollType } from "./roll-type.mjs"
|
||||||
import { DIFF, ROLL_TYPE_JEU } from "./roll-constants.mjs"
|
import { DIFF, ROLL_TYPE_JEU, RollConstants } from "./roll-constants.mjs"
|
||||||
import { Apprecier } from "../moral/apprecier.mjs"
|
import { Apprecier } from "../moral/apprecier.mjs"
|
||||||
|
|
||||||
|
|
||||||
@@ -10,8 +10,9 @@ export class RollTypeJeu extends RollType {
|
|||||||
|
|
||||||
visible(rollData) {
|
visible(rollData) {
|
||||||
return rollData.active.actor.isPersonnage()
|
return rollData.active.actor.isPersonnage()
|
||||||
&& rollData.active.actor.getCompetence('Jeu') != undefined
|
&& RollConstants.findCompetence(rollData, 'Jeu')
|
||||||
}
|
}
|
||||||
|
|
||||||
title(rollData) {
|
title(rollData) {
|
||||||
if (rollData.opponent) {
|
if (rollData.opponent) {
|
||||||
return `joue contre`
|
return `joue contre`
|
||||||
|
|||||||
Reference in New Issue
Block a user