From 83a266ee83f5056b12c8fa03391a4b4ee90dc6d9 Mon Sep 17 00:00:00 2001 From: ShakeFlower Date: Tue, 25 Feb 2025 10:13:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E9=80=82=E9=85=8DitemEffectEvent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/ui.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/libs/ui.js b/libs/ui.js index c8cb7209..a93e1a31 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -3306,6 +3306,27 @@ ui.prototype._drawStatistics_items = function (floorId, floor, id, obj) { core.setFlag("__statistics__", true); var ratio = core.status.thisMap.ratio; core.status.thisMap.ratio = core.clone(core.status.maps[floorId].ratio); + const itemInfo = core.material.items[id]; + if (itemInfo.hasOwnProperty('itemEffectEvent') && itemInfo.itemEffectEvent.hasOwnProperty('value')) { + const values = itemInfo.itemEffectEvent.value; + for (let statusName in values) { + const getStatusValue = values[statusName]; + let needRatio, statusValue; + if (statusName.endsWith(':o')) { + needRatio = true; + statusName = statusName.slice(0, -2); + } + if (core.status.hero.hasOwnProperty(statusName)) { + try { + statusValue = eval(getStatusValue); + } catch (error) { + console.log(error); + } + if (needRatio) statusValue *= ratio; + core.addStatus(statusName, statusValue); + } + } + } try { eval(core.material.items[id].itemEffect); } catch (e) { } core.status.thisMap.ratio = ratio;