修复胜利之树的果酒配方未被注册的bug

This commit is contained in:
2025-11-15 18:44:48 +08:00
parent 803e10b630
commit 31119db911

View File

@@ -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"]