From 31119db911d2a5b115d0c29ece50e09f8d27337d Mon Sep 17 00:00:00 2001 From: ninemine <1371605831@qq.com> Date: Sat, 15 Nov 2025 18:44:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=83=9C=E5=88=A9=E4=B9=8B?= =?UTF-8?q?=E6=A0=91=E7=9A=84=E6=9E=9C=E9=85=92=E9=85=8D=E6=96=B9=E6=9C=AA?= =?UTF-8?q?=E8=A2=AB=E6=B3=A8=E5=86=8C=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plugins/WPSCombatSystem/combat_plugin_base.py | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/Plugins/WPSCombatSystem/combat_plugin_base.py b/Plugins/WPSCombatSystem/combat_plugin_base.py index 7c26764..e9d1cf0 100644 --- a/Plugins/WPSCombatSystem/combat_plugin_base.py +++ b/Plugins/WPSCombatSystem/combat_plugin_base.py @@ -568,6 +568,33 @@ class WPSCombatBase(WPSAPI): BackpackItemTier.LEGENDARY, "胜利之树成熟后的果实,可食用或售出换取积分。", ) + + # 注册胜利之树的果酒物品和配方 + if victory_tree_crop.wine_item_id and victory_tree_crop.wine_tier: + alchemy: WPSAlchemyGame = Architecture.Get(WPSAlchemyGame) + wine_tier = getattr(BackpackItemTier, victory_tree_crop.wine_tier.upper(), BackpackItemTier.LEGENDARY) + wine_name = f"{victory_tree_crop.display_name}的果酒" + wine_desc = self._generate_wine_description(victory_tree_crop.display_name, victory_tree_crop.wine_item_id) + self._safe_register_item( + backpack, + victory_tree_crop.wine_item_id, + wine_name, + wine_tier, + wine_desc, + ) + # 注册果酒配方 + try: + alchemy.register_recipe( + (victory_tree_crop.fruit_id, victory_tree_crop.fruit_id, victory_tree_crop.fruit_id), + victory_tree_crop.wine_item_id, + "garden_item_rot_fruit", + 0.75, + ) + except Exception as exc: + logger.Log( + "Warning", + f"{ConsoleFrontColor.YELLOW}注册胜利之树果酒配方失败: {exc}{ConsoleFrontColor.RESET}" + ) logger.Log( "Info", @@ -610,5 +637,36 @@ class WPSCombatBase(WPSAPI): f"{ConsoleFrontColor.YELLOW}注册炼金配方 {materials} -> {success_item_id} 失败: {exc}{ConsoleFrontColor.RESET}", ) + def _generate_wine_description(self, crop_name: str, wine_item_id: str) -> str: + """生成包含buff加成信息的果酒描述""" + try: + from .combat_models import WINE_BUFFS + buffs = WINE_BUFFS.get(wine_item_id, {}) + except ImportError: + buffs = {} + + parts = [f"{crop_name}酿制的果酒,饮用后可触发战斗增益。"] + + if buffs: + buff_parts = [] + buff_names = { + "time_reduction": "冒险时间", + "reward_boost": "冒险收益", + "success_rate": "冒险成功率", + "atk_boost": "攻击力", + "def_boost": "防御力", + "crit_boost": "暴击率", + } + for buff_key, buff_value in sorted(buffs.items()): + buff_name = buff_names.get(buff_key, buff_key) + if buff_key == "time_reduction": + buff_parts.append(f"{buff_name}-{buff_value*100:.0f}%") + else: + buff_parts.append(f"{buff_name}+{buff_value*100:.0f}%") + if buff_parts: + parts.append(f"效果:{', '.join(buff_parts)}") + + return " | ".join(parts) + __all__ = ["WPSCombatBase"]