修复胜利之树的果酒配方未被注册的bug
This commit is contained in:
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user