Enchantement des gemmes et potions

This commit is contained in:
2025-01-21 03:07:58 +01:00
parent b29027c61a
commit d917f80e88
42 changed files with 746 additions and 413 deletions

View File

@ -41,9 +41,6 @@ const typesObjetsTemporels = [ITEM_TYPES.blessure, ITEM_TYPES.poison, ITEM_TYPES
const typesObjetsEquipable = [ITEM_TYPES.arme, ITEM_TYPES.armure, ITEM_TYPES.objet];
const typesEnvironnement = typesInventaireMateriel;
const encBrin = 0.00005; // un brin = 1 décigramme = 1/10g = 1/10000kg = 1/20000 enc
const encPepin = 0.0007; /* un pépin de gemme = 1/10 cm3 = 1/1000 l = 3.5/1000 kg = 7/2000 kg = 7/1000 enc
densité 3.5 (~2.3 à 4, parfois plus) -- https://www.juwelo.fr/guide-des-pierres/faits-et-chiffres/
*/
export const defaultItemImg = {
arme: "systems/foundryvtt-reve-de-dragon/icons/armes_armures/epee_gnome.webp",
@ -85,7 +82,6 @@ export const defaultItemImg = {
/* -------------------------------------------- */
export class RdDItem extends Item {
static get defaultIcon() {
return undefined;
}
@ -184,7 +180,6 @@ export class RdDItem extends Item {
isCompetenceCreature() { return this.type == ITEM_TYPES.competencecreature }
isConteneur() { return this.type == ITEM_TYPES.conteneur; }
isMonnaie() { return this.type == ITEM_TYPES.monnaie; }
isPotion() { return this.type == ITEM_TYPES.potion; }
isNourritureBoisson() { return this.type == ITEM_TYPES.nourritureboisson; }
isService() { return this.type == ITEM_TYPES.service; }
@ -223,6 +218,12 @@ export class RdDItem extends Item {
return this.getEnvironnements(milieux).length > 0
}
get nameDisplay() {
return this.isMagique ? (this.name + ' <i class="fa-solid fa-sparkles"></i>') : this.name
}
get isEnchantementPossible() { return false }
getEnvironnements(milieux = undefined) {
const environnements = this.isInventaire() ? this.system.environnement : undefined;
if (milieux == undefined || !environnements) {
@ -331,7 +332,7 @@ export class RdDItem extends Item {
return this.type == ITEM_TYPES.objet && Grammar.includesLowerCaseNoAccent(this.name, 'cristal alchimique') && this.system.quantite > 0;
}
isMagique() {
get isMagique() {
return this.system.magique
}
@ -342,6 +343,7 @@ export class RdDItem extends Item {
isNomLike(texte) {
return Grammar.includesLowerCaseNoAccent(this.name, texte)
}
isNomTypeLike(texte) {
return this.isNomLike(texte) || Grammar.includesLowerCaseNoAccent(Misc.typeName(this.type, 'Item'), texte)
}
@ -360,8 +362,6 @@ export class RdDItem extends Item {
return 0;
case ITEM_TYPES.herbe:
return this.getEncHerbe();
case ITEM_TYPES.gemme:
return encPepin * this.system.taille;
}
return Math.max(this.system.encombrement ?? 0, 0);
}
@ -427,10 +427,6 @@ export class RdDItem extends Item {
itemSpecificActions() {
const actions = ITEM_ACTIONS[this.type] ?? []
// const actorTypes = actions.actorTypes ?? [ACTOR_TYPES.personnage]
// if (!actorTypes.includes(this.actor?.type)) {
// return []
// }
return actions
}