Vincent Vandemeulebrouck
9fc21e6d97
- dans la liste d'équipement, liste d'actions fournie par code - support d'actions multiples - listener générique Utilisation du mécanisme pour tous les items, standardisation de l'apparence des boutons d'items
59 lines
2.4 KiB
JavaScript
59 lines
2.4 KiB
JavaScript
import { ITEM_TYPES } from "../constants.js";
|
|
import { RdDTimestamp } from "../time/rdd-timestamp.js";
|
|
import { RdDItemPotion } from "./potion.js";
|
|
import { RdDItemInventaireSheet } from "./sheet-base-inventaire.js";
|
|
|
|
|
|
export class RdDPotionItemSheet extends RdDItemInventaireSheet {
|
|
|
|
static get ITEM_TYPE() { return ITEM_TYPES.potion };
|
|
|
|
static $calculBonusHerbe(formData, herbesList, max) {
|
|
if (Number(formData.system.herbebrins)) {
|
|
let herbe = herbesList.find(h => h.name.toLowerCase() == formData.system.herbe.toLowerCase());
|
|
if (herbe) {
|
|
const brinsRequis = max - herbe.system.niveau;
|
|
const brinsManquants = Math.max(brinsRequis - formData.system.herbebrins, 0);
|
|
formData.system.herbebonus = Math.max(herbe.system.niveau - brinsManquants, 0);
|
|
}
|
|
}
|
|
}
|
|
get potion(){ return this.item }
|
|
|
|
async getData() {
|
|
const formData = await super.getData()
|
|
formData.enchantable = this.potion.isEnchantable()
|
|
const enchantement = this.potion.categorieEnchantement()
|
|
formData.isSoins = enchantement.basique == 'Soin'
|
|
formData.isRepos = enchantement.basique == 'Repos'
|
|
if (formData.isSoins) {
|
|
const herbesSoins = await RdDItemPotion.herbesSoins()
|
|
RdDPotionItemSheet.$calculBonusHerbe(formData, herbesSoins, 12);
|
|
formData.herbesSoins = RdDItemPotion.buildHerbesList(herbesSoins, 12)
|
|
}
|
|
if (formData.isRepos) {
|
|
const herbesRepos = await RdDItemPotion.herbesRepos()
|
|
RdDPotionItemSheet.$calculBonusHerbe(formData, herbesRepos, 7);
|
|
formData.herbesRepos = RdDItemPotion.buildHerbesList(herbesRepos, 7)
|
|
}
|
|
formData.dateActuelle = game.system.rdd.calendrier.dateCourante()
|
|
formData.enchantement = RdDTimestamp.splitIndexDate(this.potion.system.prdate)
|
|
return formData
|
|
}
|
|
|
|
activateListeners(html) {
|
|
super.activateListeners(html);
|
|
|
|
this.html.find('.item-enchanter').click((event) => this.potion.enchanterPotion())
|
|
|
|
this.html.find('.date-enchantement').change((event) => {
|
|
const jour = Number(this.html.find('input.date-enchantement[name="enchantement.jour"]').val())
|
|
const mois = RdDTimestamp.definition(this.html.find('select.date-enchantement[name="enchantement.mois"]').val())
|
|
const indexDate = game.system.rdd.calendrier.getIndexFromDate(jour, mois.heure)
|
|
this.potion.update({ 'system.prdate': indexDate })
|
|
console.warn(`Date d'enchantement modifiée ${jour}/${mois.heure}: ${indexDate}`)
|
|
});
|
|
|
|
}
|
|
}
|