From 8fd8850ecf45864925a44c39580552d67bf48f1a Mon Sep 17 00:00:00 2001 From: ninemine <1371605831@qq.com> Date: Wed, 12 Nov 2025 14:36:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=89=A9=E5=93=81=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plugins/WPSCombatSystem/combat_plugin_base.py | 46 ++++++++++++++++++- Plugins/WPSGardenSystem/garden_plugin_base.py | 34 +++++++++++++- 2 files changed, 78 insertions(+), 2 deletions(-) diff --git a/Plugins/WPSCombatSystem/combat_plugin_base.py b/Plugins/WPSCombatSystem/combat_plugin_base.py index 52865aa..ebc8670 100644 --- a/Plugins/WPSCombatSystem/combat_plugin_base.py +++ b/Plugins/WPSCombatSystem/combat_plugin_base.py @@ -20,6 +20,8 @@ from .combat_models import ( ADVENTURE_SOUVENIRS, COMBAT_POTIONS, EQUIPMENT_REGISTRY, + SKILL_REGISTRY, + EquipmentDefinition, get_combat_db_models, ) from .combat_service import CombatService, get_combat_service @@ -83,12 +85,14 @@ class WPSCombatBase(WPSAPI): # 1. 注册所有装备 for equipment in EQUIPMENT_REGISTRY.values(): + # 生成包含属性数值和技能信息的描述 + enhanced_description = self._generate_equipment_description(equipment) self._safe_register_item( backpack, equipment.item_id, equipment.name, equipment.tier, - equipment.description, + enhanced_description, ) # 装备价格根据品质和属性计算 price = self._calculate_equipment_price(equipment) @@ -184,6 +188,46 @@ class WPSCombatBase(WPSAPI): f"{ConsoleFrontColor.YELLOW}注册商店物品 {item_id} 时出错: {e}{ConsoleFrontColor.RESET}" ) + def _generate_equipment_description(self, equipment:EquipmentDefinition) -> str: + """生成包含属性数值和技能信息的装备描述""" + parts = [] + + # 基础描述 + if equipment.description: + parts.append(equipment.description) + + # 属性信息 + if equipment.attributes: + attr_parts = [] + attr_names = { + "HP": "生命值", + "ATK": "攻击力", + "DEF": "防御力", + "SPD": "速度", + "CRIT": "暴击率", + "CRIT_DMG": "暴击伤害", + } + for attr_key, attr_value in sorted(equipment.attributes.items()): + attr_name = attr_names.get(attr_key, attr_key) + if attr_key in ["CRIT", "CRIT_DMG"]: + attr_parts.append(f"{attr_name}+{attr_value}%") + else: + attr_parts.append(f"{attr_name}+{attr_value}") + if attr_parts: + parts.append(f"属性:{', '.join(attr_parts)}") + + # 技能信息 + if equipment.skill_ids: + skill_names = [] + for skill_id in equipment.skill_ids: + skill = SKILL_REGISTRY.get(skill_id) + if skill: + skill_names.append(skill.name) + if skill_names: + parts.append(f"附带技能:{', '.join(skill_names)}") + + return " | ".join(parts) if parts else equipment.description + def _calculate_equipment_price(self, equipment) -> int: """根据装备品质和属性计算价格""" # 基础价格 diff --git a/Plugins/WPSGardenSystem/garden_plugin_base.py b/Plugins/WPSGardenSystem/garden_plugin_base.py index 98e6464..1100859 100644 --- a/Plugins/WPSGardenSystem/garden_plugin_base.py +++ b/Plugins/WPSGardenSystem/garden_plugin_base.py @@ -90,7 +90,7 @@ class WPSGardenBase(WPSAPI): if crop.wine_item_id and crop.wine_tier: wine_tier = getattr(BackpackItemTier, crop.wine_tier.upper(), BackpackItemTier.RARE) wine_name = f"{crop.display_name}的果酒" - wine_desc = f"{crop.display_name}酿制的果酒,饮用后可触发战斗增益。" + wine_desc = self._generate_wine_description(crop.display_name, crop.wine_item_id) self._safe_register_item( backpack, crop.wine_item_id, @@ -175,6 +175,38 @@ class WPSGardenBase(WPSAPI): except Exception: pass + def _generate_wine_description(self, crop_name: str, wine_item_id: str) -> str: + """生成包含buff加成信息的果酒描述""" + # 尝试导入战斗系统的WINE_BUFFS(可选依赖) + try: + from Plugins.WPSCombatSystem.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) + def _safe_register_recipe( self, alchemy: WPSAlchemyGame,