diff options
Diffstat (limited to 'resources/js/ui.js')
-rw-r--r-- | resources/js/ui.js | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/resources/js/ui.js b/resources/js/ui.js index 6c077b7..f6c490f 100644 --- a/resources/js/ui.js +++ b/resources/js/ui.js @@ -9,7 +9,7 @@ const Template = { battleMonster: document.querySelector('#tpl___battle__monster'), battleHpBar: document.querySelector('#tpl___battle__hp-bar'), battleExpBar: document.querySelector('#tpl___battle__exp-bar'), - battleDamage: document.querySelector('#tpl___battle__damage'), + battleActionFeedback: document.querySelector('#tpl___battle__action-feedback'), techniques: document.querySelector('#tpl___techniques'), technique: document.querySelector('#tpl___technique'), @@ -244,7 +244,7 @@ const UI = { createElementTypeIcon (type) { const img = document.createElement('img'); img.src = `/modules/tuxemon/mods/tuxemon/gfx/ui/icons/element/${type}_type.png`; - img.title = slugToName(type); + img.title = translate(type) || slugToName(type); return img; }, @@ -425,7 +425,7 @@ const UI = { }, - /* Battle - Damage */ + /* Battle - Action Feedback */ /** * @type {MouseEvent} @@ -442,7 +442,7 @@ const UI = { * @returns {HTMLElement} */ createActionFeedback (feedback) { - const feedbackNode = UI.createTemplate(Template.battleDamage); + const feedbackNode = UI.createTemplate(Template.battleActionFeedback); feedbackNode.innerHTML = feedback; feedbackNode.style.top = UI.battleClickEvent.pageY - UI.elements.battleOpponent.offsetTop + (Math.random() * 40 - 20) + 'px'; @@ -644,12 +644,25 @@ const UI = { for (const item of Memory.state.player.inventory) { const inventoryItemNode = UI.createTemplate(Template.inventoryItem); + inventoryItemNode.title = item.description; + inventoryItemNode.querySelector('[data-template-slot="sprite"]').src = `/modules/tuxemon/mods/tuxemon/${item.sprite}`; inventoryItemNode.querySelector('[data-template-slot="name"]').textContent = item.name; inventoryItemNode.querySelector('[data-template-slot="quantity"]').textContent = item.quantity; - inventoryItemNode.addEventListener('click', () => { - alert(item.conditions + item.effects); + inventoryItemNode.addEventListener('click', async () => { + for (const itemEffectCode of item.effects) { + const itemEffect = new ItemEffect(itemEffectCode); + + if (itemEffect.type === 'evolve') { + const evolution = Memory.state.player.activeMonster.getPossibleEvolutions('item')[0]; + if (evolution) { + await fetchMonster(evolution.monster_slug); + Memory.state.player.activeMonster.evolve(evolution); + UI.drawActiveMonster(); + } + } + } }); if (['potion', 'revive'].includes(item.category)) { @@ -784,6 +797,8 @@ const UI = { const technique = await fetchTechnique(move.technique); const movesetItemNode = UI.createTemplate(Template.movesetItem); + movesetItemNode.title = technique.description; + movesetItemNode.querySelector('[data-template-slot="name"]').textContent = technique.name; movesetItemNode.querySelector('[data-template-slot="types"]').innerHTML = technique.types.map((type) => UI.createElementTypeIcon(type).outerHTML).join(''); movesetItemNode.querySelector('[data-template-slot="power"]').textContent = technique.power; |