foundryvtt-reve-de-dragon/module/item.js

559 lines
19 KiB
JavaScript
Raw Normal View History

2021-05-07 17:27:02 +02:00
import { DialogItemVente } from "./dialog-item-vente.js";
2021-04-12 00:16:23 +02:00
import { Grammar } from "./grammar.js";
import { Misc } from "./misc.js";
import { RdDHerbes } from "./rdd-herbes.js";
2021-01-01 21:11:56 +01:00
import { RdDUtility } from "./rdd-utility.js";
2022-06-12 08:17:59 +02:00
const typesObjetsEquipement = ["objet", "arme", "armure", "gemme", "conteneur", "herbe", "ingredient", "livre", "potion", "munition", "nourritureboisson", "monnaie"]
const typesObjetsOeuvres = ["oeuvre", "recettecuisine", "musique", "chant", "danse", "jeu"]
2021-04-13 22:42:39 +02:00
const encBrin = 0.00005;// un brin = 1 décigramme = 1/10g = 1/10000kg = 1/20000 enc
export const defaultItemImg = {
competence: "systems/foundryvtt-reve-de-dragon/icons/competence_defaut.webp",
compcreature: "systems/foundryvtt-reve-de-dragon/icons/competence_defaut.webp",
arme: "systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_gnome.webp",
armure: "systems/foundryvtt-reve-de-dragon/icons/armes_armures/armure_plaques.webp",
conteneur: "systems/foundryvtt-reve-de-dragon/icons/objets/sac_a_dos.webp",
sort: "systems/foundryvtt-reve-de-dragon/icons/competence_oniros.webp",
2021-11-10 20:03:04 +01:00
herbe: "systems/foundryvtt-reve-de-dragon/icons/botanique/Endorlotte.webp",
ingredient: "systems/foundryvtt-reve-de-dragon/icons/objets/sable_poudre.webp",
livre: "systems/foundryvtt-reve-de-dragon/icons/objets/livre.webp",
potion: "systems/foundryvtt-reve-de-dragon/icons/objets/liqueur_de_bagdol.webp",
queue: "systems/foundryvtt-reve-de-dragon/icons/queue_dragon.webp",
ombre: "systems/foundryvtt-reve-de-dragon/icons/queue_dragon.webp",
souffle: "systems/foundryvtt-reve-de-dragon/icons/souffle_dragon.webp",
tete: "systems/foundryvtt-reve-de-dragon/icons/tete_dragon.webp",
meditation: "systems/foundryvtt-reve-de-dragon/icons/meditations_ecrits/meditation_alchimie.webp",
recettealchimique: "systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.webp",
chant: "systems/foundryvtt-reve-de-dragon/icons/arts/chant_0.webp",
danse: "systems/foundryvtt-reve-de-dragon/icons/arts/danse_0.webp",
jeu: "systems/foundryvtt-reve-de-dragon/icons/arts/jeux_petasse.webp",
recettecuisine: "systems/foundryvtt-reve-de-dragon/icons/arts/recette_cuisine_1.webp",
musique: "systems/foundryvtt-reve-de-dragon/icons/arts/chant_0.webp",
maladie: "systems/foundryvtt-reve-de-dragon/icons/maladies_venins/maladie.webp",
poison: "systems/foundryvtt-reve-de-dragon/icons/maladies_venins/venin.webp",
oeuvre: "systems/foundryvtt-reve-de-dragon/icons/competence_comedie.webp",
nourritureboisson: "systems/foundryvtt-reve-de-dragon/icons/objets/provision_crue.webp",
signedraconique: "systems/foundryvtt-reve-de-dragon/icons/tmr/signe_draconique.webp",
2022-06-12 08:17:59 +02:00
gemme: "systems/foundryvtt-reve-de-dragon/icons/gemmes/almaze.webp",
possession: "systems/foundryvtt-reve-de-dragon/icons/entites/possession2.webp"
}
2021-01-01 21:11:56 +01:00
/* -------------------------------------------- */
export class RdDItem extends Item {
constructor(itemData, context) {
if (!itemData.img) {
itemData.img = defaultItemImg[itemData.type];
}
super(itemData, context);
}
static getTypeObjetsEquipement() {
2022-06-12 08:17:59 +02:00
return typesObjetsEquipement
}
2021-04-11 18:43:32 +02:00
static getTypesOeuvres() {
2022-06-12 08:17:59 +02:00
return typesObjetsOeuvres
}
2021-04-11 18:43:32 +02:00
2021-05-06 21:34:07 +02:00
isCompetence() {
2022-04-30 23:42:55 +02:00
return this.type == 'competence';
2021-05-06 21:34:07 +02:00
}
2021-04-13 22:42:39 +02:00
isConteneur() {
2022-04-30 23:42:55 +02:00
return this.type == 'conteneur';
2021-04-13 22:42:39 +02:00
}
isConteneurNonVide() {
2022-04-30 23:42:55 +02:00
return this.isConteneur() && (this.system.contenu?.length ?? 0) > 0;
}
isConteneurVide() {
2022-04-30 23:42:55 +02:00
return this.isConteneur() && (this.system.contenu?.length ?? 0) == 0;
}
isVideOuNonConteneur() {
2022-04-30 23:42:55 +02:00
return !this.isConteneur() || (this.system.contenu?.length ?? 0) == 0;
2021-05-07 17:27:02 +02:00
}
2021-04-13 22:42:39 +02:00
isAlcool() {
2022-04-30 23:42:55 +02:00
return this.type == 'nourritureboisson' && this.system.boisson && this.system.alcoolise;
2021-04-13 22:42:39 +02:00
}
2021-12-05 23:30:57 +01:00
isHerbeAPotion() {
2022-04-30 23:42:55 +02:00
return this.type == 'herbe' && (this.system.categorie == 'Soin' || this.system.categorie == 'Repos');
2021-12-05 23:30:57 +01:00
}
2021-04-13 22:42:39 +02:00
isPotion() {
2022-06-12 09:46:58 +02:00
return this.type == 'potion';
2021-04-13 22:42:39 +02:00
}
isEquipement() {
2022-04-30 23:42:55 +02:00
return RdDItem.getTypeObjetsEquipement().includes(this.type)
2021-04-13 22:42:39 +02:00
}
2021-05-07 17:27:02 +02:00
2021-04-20 23:16:18 +02:00
isCristalAlchimique() {
2022-04-30 23:42:55 +02:00
return this.type == 'objet' && Grammar.toLowerCaseNoAccent(this.name) == 'cristal alchimique' && this.system.quantite > 0;
2021-04-20 23:16:18 +02:00
}
2021-05-07 17:27:02 +02:00
isMagique() {
2022-06-12 08:17:59 +02:00
return this.system.magique
}
2021-04-13 22:42:39 +02:00
getEncTotal() {
2022-06-12 08:17:59 +02:00
return Number(this.system.encombrement ?? 0) * Number(this.system.quantite ?? 1)
}
2021-04-13 22:42:39 +02:00
getEnc() {
2022-06-12 08:17:59 +02:00
switch (this.type) {
2021-04-13 22:42:39 +02:00
case 'herbe':
return encBrin;
}
2022-06-12 08:17:59 +02:00
return this.system.encombrement ?? 0;
2021-04-13 22:42:39 +02:00
}
prepareDerivedData() {
super.prepareDerivedData();
2021-12-05 16:48:18 +01:00
if (this.isEquipement()) {
this._calculsEquipement();
2021-12-05 16:48:18 +01:00
if (this.isPotion()) {
this.prepareDataPotion()
}
this.system.actionPrincipale = this.getActionPrincipale({ warnIfNot: false });
}
2021-04-12 00:16:23 +02:00
}
prepareDataPotion() {
2022-06-12 08:17:59 +02:00
const categorie = Grammar.toLowerCaseNoAccent(this.system.categorie);
this.system.magique = categorie.includes('enchante');
if (this.system.magique) {
2021-04-12 00:16:23 +02:00
if (categorie.includes('soin') || categorie.includes('repos')) {
// TODO: utiliser calculePointsRepos / calculePointsGuerison
this.system.puissance = RdDHerbes.calculePuissancePotion(this);
2021-04-12 00:16:23 +02:00
}
}
}
_calculsEquipement() {
2022-06-12 08:17:59 +02:00
const quantite = this.isConteneur() ? 1 : (this.system.quantite ?? 0);
2021-04-11 23:01:57 +02:00
const enc = this.getEnc();
if (enc != undefined) {
2022-06-12 08:17:59 +02:00
this.system.encTotal = Math.max(enc, 0) * quantite;
}
2022-06-12 08:17:59 +02:00
if (this.cout != undefined) {
this.system.prixTotal = Math.max(this.cout, 0) * quantite;
}
}
2021-04-12 00:16:23 +02:00
getActionPrincipale(options = { warnIfNot: true }) {
2022-09-16 23:27:26 +02:00
const warn = options.warnIfNot;
switch (this.type) {
case 'nourritureboisson': return this._actionOrWarnQuantiteZero(this.boisson ? 'Boire' : 'Manger', warn);
case 'potion': return this._actionOrWarnQuantiteZero('Boire', warn);
case 'livre': return this._actionOrWarnQuantiteZero('Lire', warn);
case 'conteneur': return this._actionOrWarnQuantiteZero('Ouvrir', warn);
case 'herbe': return this.isHerbeAPotion() ? this._actionOrWarnQuantiteZero('Décoction', warn) : undefined;
case 'queue': case 'ombre': return this.system.refoulement>0 ? 'Refouler' : undefined;
}
return undefined;
}
_actionOrWarnQuantiteZero(actionName, warn){
if ((this.system.quantite ?? 0) <= 0) {
if (warn) {
2022-06-12 08:17:59 +02:00
ui.notifications.warn(`Vous n'avez plus de ${this.name}.`);
2021-04-11 23:01:10 +02:00
}
2021-04-12 00:16:23 +02:00
return undefined;
2021-04-11 23:01:10 +02:00
}
2022-09-16 23:27:26 +02:00
else {
return actionName;
2021-04-11 23:01:10 +02:00
}
}
2021-04-12 01:03:37 +02:00
async diminuerQuantite(nombre, options = { diminuerQuantite: true, supprimerSiZero: false }) {
if (options.diminuerQuantite == false) return;
2021-04-13 22:42:39 +02:00
await this.quantiteIncDec(-nombre, options);
}
async quantiteIncDec(nombre, options = { diminuerQuantite: true, supprimerSiZero: false }) {
2022-06-12 08:17:59 +02:00
const quantite = Number(this.system.quantite ?? -1);
2021-05-07 17:27:02 +02:00
if (quantite >= 0) {
2021-04-14 21:51:29 +02:00
const reste = Math.max(quantite + Number(nombre), 0);
2021-04-13 22:42:39 +02:00
if (reste == 0) {
2021-05-07 17:27:02 +02:00
if (options.supprimerSiZero) {
2022-06-12 08:17:59 +02:00
ui.notifications.notify(`${this.name} supprimé de votre équipement`);
2021-04-13 22:42:39 +02:00
await this.delete();
}
else {
2022-06-12 08:17:59 +02:00
ui.notifications.notify(`Il ne vous reste plus de ${this.name}, vous pouvez le supprimer de votre équipement, ou trouver un moyen de vous en procurer.`);
await this.update({ "system.quantite": 0 });
2021-04-13 22:42:39 +02:00
}
2021-04-12 01:03:37 +02:00
}
else {
await this.update({ "system.quantite": reste });
2021-04-12 01:03:37 +02:00
}
}
}
2021-04-13 22:42:39 +02:00
/* -------------------------------------------- */
// détermine si deux équipements sont similaires: de même type, et avec les même champs hormis la quantité
isEquipementSimilaire(other) {
if (!this.isEquipement()) return false;
let message = undefined;
if (this.type != other.type) {
message = `Impossible de regrouper ${this.type} avec ${other.type}`;
}
else if (this.name != other.name) {
message = `Impossible de regrouper ${this.name} avec ${other.name}`;
}
else if (this.system.quantite == undefined) {
message = `Impossible de regrouper des ${this.type}, ils ne sont pas empilables`;
}
else {
const differences = Object.entries(this.system)
.filter(([key, value]) => !['quantite', 'encTotal', 'prixTotal', 'cout'].includes(key) && value != other.system[key]);
if (differences.length > 0) {
message = `Impossible de regrouper les ${this.type} ${this.name}: `;
for (const [key, value] of differences) {
message += `<br>${key}: ${value} vs ${other.system[key]}`;
}
2021-06-02 23:41:25 +02:00
}
}
if (message){
2021-06-02 23:41:25 +02:00
ui.notifications.info(message)
return false;
2021-04-13 22:42:39 +02:00
}
return true;
}
2021-05-07 17:27:02 +02:00
async proposerVente() {
console.log(this);
if (this.isConteneurNonVide()) {
ui.notifications.warn(`Votre ${this.name} n'est pas vide, pas possible de le donner ou le vendre`);
return;
}
2021-05-07 17:27:02 +02:00
const dialog = await DialogItemVente.create(this, (vente) => this._onProposerVente(vente))
dialog.render(true);
}
async _onProposerVente(venteData) {
venteData["properties"] = this.getProprietes();
2021-05-07 17:27:02 +02:00
if (venteData.isOwned) {
if (venteData.quantiteNbLots * venteData.tailleLot > venteData.quantiteMax) {
ui.notifications.warn(`Vous avez ${venteData.quantiteMax} ${venteData.item.name}, ce n'est pas suffisant pour vendre ${venteData.quantiteNbLots} de ${venteData.tailleLot}`)
return;
}
}
venteData.jsondata = JSON.stringify(venteData.item);
console.log(venteData);
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-vente-item.html', venteData);
ChatMessage.create(RdDUtility.chatDataSetup(html));
2021-05-07 17:27:02 +02:00
}
2021-04-13 22:42:39 +02:00
2021-10-29 21:31:58 +02:00
/* -------------------------------------------- */
getProprietes() {
2022-06-12 09:46:58 +02:00
return this[`_${this.type}ChatData`]();
}
2021-01-01 21:11:56 +01:00
/* -------------------------------------------- */
2021-12-05 16:48:18 +01:00
async postItem(modeOverride) {
2021-01-01 21:11:56 +01:00
console.log(this);
2022-06-12 09:46:58 +02:00
let chatData = duplicate(this);
const properties = this.getProprietes();
2021-01-01 21:11:56 +01:00
chatData["properties"] = properties
2021-05-07 17:27:02 +02:00
if (this.actor) {
chatData.actor = { id: this.actor.id };
2021-04-14 22:40:12 +02:00
}
2021-01-01 21:11:56 +01:00
// JSON object for easy creation
chatData.jsondata = JSON.stringify(
{
compendium: "postedItem",
payload: chatData,
});
2021-01-01 21:11:56 +01:00
renderTemplate('systems/foundryvtt-reve-de-dragon/templates/post-item.html', chatData).then(html => {
2021-10-29 21:31:58 +02:00
let chatOptions = RdDUtility.chatDataSetup(html, modeOverride);
2021-01-01 21:11:56 +01:00
ChatMessage.create(chatOptions)
});
}
2021-05-07 17:27:02 +02:00
static propertyIfDefined(name, val, condition = (it) => true) {
return condition ? [`<b>${name}</b>: ${val}`] : [];
}
2021-01-01 21:11:56 +01:00
/* -------------------------------------------- */
_objetChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-05-07 17:27:02 +02:00
let properties = [].concat(
RdDItem.propertyIfDefined('Résistance', tplData.resistance, tplData.resistance),
RdDItem.propertyIfDefined('Qualité', tplData.qualite, tplData.qualite),
RdDItem.propertyIfDefined('Encombrement', tplData.encombrement),
);
2021-01-01 21:11:56 +01:00
return properties;
}
/* -------------------------------------------- */
_nourritureboissonChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
let properties = [].concat(
RdDItem.propertyIfDefined('Sustentation', tplData.sust, tplData.sust > 0),
RdDItem.propertyIfDefined('Désaltère', tplData.desaltere, tplData.boisson),
RdDItem.propertyIfDefined('Force alcool', tplData.force, tplData.boisson && tplData.alcoolise),
2021-04-16 00:29:08 +02:00
RdDItem.propertyIfDefined('Exotisme', tplData.exotisme, tplData.exotisme < 0),
2021-05-07 17:27:02 +02:00
RdDItem.propertyIfDefined('Qualité', tplData.qualite, tplData.qualite),
RdDItem.propertyIfDefined('Encombrement', tplData.encombrement),
);
return properties;
}
2021-01-01 21:11:56 +01:00
/* -------------------------------------------- */
_armeChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Compétence</b>: ${tplData.competence}`,
`<b>Dommages</b>: ${tplData.dommages}`,
`<b>Force minimum</b>: ${tplData.force}`,
`<b>Resistance</b>: ${tplData.resistance}`,
`<b>Encombrement</b>: ${tplData.encombrement}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_conteneurChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Capacité</b>: ${tplData.capacite} Enc.`,
`<b>Encombrement</b>: ${tplData.encombrement}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_munitionChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Encombrement</b>: ${tplData.encombrement}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_armureChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Protection</b>: ${tplData.protection}`,
`<b>Détérioration</b>: ${tplData.deterioration}`,
`<b>Malus armure</b>: ${tplData.malus}`,
`<b>Encombrement</b>: ${tplData.encombrement}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_competenceChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Catégorie</b>: ${tplData.categorie}`,
`<b>Niveau</b>: ${tplData.niveau}`,
`<b>Caractéristique par défaut</b>: ${tplData.carac_defaut}`,
`<b>XP</b>: ${tplData.xp}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_competencecreatureChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Catégorie</b>: ${tplData.categorie}`,
`<b>Niveau</b>: ${tplData.niveau}`,
`<b>Caractéristique</b>: ${tplData.carac_value}`,
`<b>XP</b>: ${tplData.xp}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_sortChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Draconic</b>: ${tplData.draconic}`,
`<b>Difficulté</b>: ${tplData.difficulte}`,
`<b>Case TMR</b>: ${tplData.caseTMR}`,
`<b>Points de Rêve</b>: ${tplData.ptreve}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_herbeChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Milieu</b>: ${tplData.milieu}`,
`<b>Rareté</b>: ${tplData.rarete}`,
`<b>Catégorie</b>: ${tplData.categorie}`,
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_ingredientChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Milieu</b>: ${tplData.milieu}`,
`<b>Rareté</b>: ${tplData.rarete}`,
`<b>Catégorie</b>: ${tplData.categorie}`,
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_tacheChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Caractéristique</b>: ${tplData.carac}`,
`<b>Compétence</b>: ${tplData.competence}`,
`<b>Périodicité</b>: ${tplData.periodicite}`,
`<b>Fatigue</b>: ${tplData.fatigue}`,
2022-01-25 22:06:10 +01:00
`<b>Difficulté</b>: ${tplData.difficulte}`
].concat([
tplData.cacher_points_de_tache ? [] :`<b>Points de Tâche</b>: ${tplData.points_de_tache}`
]).concat([
`<b>Points de Tâche atteints</b>: ${tplData.points_de_tache_courant}`]
);
2021-01-01 21:11:56 +01:00
return properties;
}
/* -------------------------------------------- */
_livreChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Compétence</b>: ${tplData.competence}`,
`<b>Auteur</b>: ${tplData.auteur}`,
`<b>Difficulté</b>: ${tplData.difficulte}`,
`<b>Points de Tâche</b>: ${tplData.points_de_tache}`,
`<b>Encombrement</b>: ${tplData.encombrement}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_potionChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Rareté</b>: ${tplData.rarete}`,
`<b>Catégorie</b>: ${tplData.categorie}`,
`<b>Encombrement</b>: ${tplData.encombrement}`,
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_queueChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Refoulement</b>: ${tplData.refoulement}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_ombreChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Refoulement</b>: ${tplData.refoulement}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_souffleChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [];
return properties;
}
/* -------------------------------------------- */
_teteChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [];
return properties;
}
/* -------------------------------------------- */
_tarotChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Concept</b>: ${tplData.concept}`,
`<b>Aspect</b>: ${tplData.aspect}`,
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_nombreastralChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Valeur</b>: ${tplData.value}`,
`<b>Jour</b>: ${tplData.jourlabel}`,
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_monnaieChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Valeur en Deniers</b>: ${tplData.valeur_deniers}`,
`<b>Encombrement</b>: ${tplData.encombrement}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_meditationChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Thème</b>: ${tplData.theme}`,
`<b>Compétence</b>: ${tplData.competence}`,
`<b>Support</b>: ${tplData.support}`,
`<b>Heure</b>: ${tplData.heure}`,
`<b>Purification</b>: ${tplData.purification}`,
`<b>Vêture</b>: ${tplData.veture}`,
`<b>Comportement</b>: ${tplData.comportement}`,
`<b>Case TMR</b>: ${tplData.tmr}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
/* -------------------------------------------- */
_casetmrChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-01-01 21:11:56 +01:00
let properties = [
`<b>Coordonnée</b>: ${tplData.coord}`,
`<b>Spécificité</b>: ${tplData.specific}`
2021-01-01 21:11:56 +01:00
]
return properties;
}
2021-10-29 21:31:58 +02:00
/* -------------------------------------------- */
_maladieChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-10-29 21:31:58 +02:00
let properties
if (tplData.identifie) {
properties = [
`<b>Malignité</b>: ${tplData.malignite}`,
`<b>Périodicité</b>: ${tplData.periodicite}`,
`<b>Dommages</b>: ${tplData.dommages}`
]
if (tplData.remedesconnus) {
2021-12-05 16:48:18 +01:00
properties.push(`<b>Remedes</b>: ${tplData.remedes}`)
2021-10-29 21:31:58 +02:00
}
} else {
properties = [
2021-12-05 16:48:18 +01:00
`<b>Inconnue</b>`]
2021-10-29 21:31:58 +02:00
}
return properties;
}
/* -------------------------------------------- */
_poisonChatData() {
return this._maladieChatData();
}
/* -------------------------------------------- */
_gemmeChatData() {
2022-06-12 09:46:58 +02:00
const tplData = this.system
2021-10-29 21:31:58 +02:00
let properties = [
`<b>Pureté</b>: ${tplData.purete}`,
`<b>Taille</b>: ${tplData.taille}`,
`<b>Inertie</b>: ${tplData.inertie}`,
`<b>Enchantabilité</b>: ${tplData.enchantabilite}`,
`<b>Prix</b>: ${tplData.cout}`,
]
return properties;
}
2021-01-01 21:11:56 +01:00
}