1.修复被错误删除的炼金配方查看插件类2.新增更多装备与配方3.新增闪烁粉尘用于合成共鸣粉末
This commit is contained in:
@@ -2,14 +2,13 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Dict, List, Type, Union
|
||||
|
||||
from PWF.Convention.Runtime.Architecture import Architecture
|
||||
from PWF.Convention.Runtime.Architecture import *
|
||||
from PWF.Convention.Runtime.GlobalConfig import ConsoleFrontColor, ProjectConfig
|
||||
from PWF.CoreModules.plugin_interface import DatabaseModel
|
||||
|
||||
from Plugins.WPSAPI import GuideEntry, GuideSection, WPSAPI
|
||||
from Plugins.WPSBackpackSystem import BackpackItemTier, WPSBackpackSystem
|
||||
from Plugins.WPSAlchemyGame import WPSAlchemyGame
|
||||
from Plugins.WPSStoreSystem import WPSStoreSystem
|
||||
from Plugins.WPSConfigSystem import WPSConfigAPI
|
||||
from Plugins.WPSFortuneSystem import WPSFortuneSystem
|
||||
@@ -21,21 +20,17 @@ from .combat_models import (
|
||||
COMBAT_POTIONS,
|
||||
EQUIPMENT_REGISTRY,
|
||||
SKILL_REGISTRY,
|
||||
SPARK_DUST_ITEM_ID,
|
||||
EquipmentDefinition,
|
||||
get_combat_db_models,
|
||||
)
|
||||
from .combat_service import CombatService, get_combat_service
|
||||
|
||||
# 尝试导入菜园系统(可选依赖)
|
||||
try:
|
||||
from Plugins.WPSGardenSystem import (
|
||||
GardenCropDefinition,
|
||||
GardenExtraReward,
|
||||
register_crop,
|
||||
)
|
||||
GARDEN_SYSTEM_AVAILABLE = True
|
||||
except ImportError:
|
||||
GARDEN_SYSTEM_AVAILABLE = False
|
||||
from Plugins.WPSGardenSystem import (
|
||||
GardenCropDefinition,
|
||||
GardenExtraReward,
|
||||
register_crop,
|
||||
)
|
||||
|
||||
|
||||
logger: ProjectConfig = Architecture.Get(ProjectConfig)
|
||||
@@ -326,7 +321,7 @@ class WPSCombatBase(WPSAPI):
|
||||
WPSBackpackSystem,
|
||||
WPSStoreSystem,
|
||||
WPSFortuneSystem,
|
||||
# 注:不强制依赖 WPSGardenSystem,果酒buff配置在 combat_models.py 中
|
||||
WPSAlchemyGame,
|
||||
]
|
||||
|
||||
def register_db_model(self) -> List[DatabaseModel]:
|
||||
@@ -389,9 +384,10 @@ class WPSCombatBase(WPSAPI):
|
||||
self._safe_register_item(backpack, item_id, name, tier, desc)
|
||||
# 种子只能通过冒险获得
|
||||
|
||||
# 5.1. 注册冒险种子到菜园系统(如果可用)
|
||||
if GARDEN_SYSTEM_AVAILABLE:
|
||||
self._register_adventure_seeds_to_garden()
|
||||
# 5.1. 注册冒险种子到菜园系统
|
||||
self._register_adventure_seeds_to_garden()
|
||||
|
||||
self._register_legendary_alchemy_recipes()
|
||||
|
||||
# 6. 恢复过期任务和超时战斗
|
||||
try:
|
||||
@@ -492,7 +488,7 @@ class WPSCombatBase(WPSAPI):
|
||||
|
||||
return " | ".join(parts) if parts else equipment.description
|
||||
|
||||
def _calculate_equipment_price(self, equipment) -> int:
|
||||
def _calculate_equipment_price(self, equipment: EquipmentDefinition) -> int:
|
||||
"""根据装备品质和属性计算价格"""
|
||||
# 基础价格
|
||||
base_prices = {
|
||||
@@ -514,9 +510,6 @@ class WPSCombatBase(WPSAPI):
|
||||
|
||||
def _register_adventure_seeds_to_garden(self) -> None:
|
||||
"""注册冒险种子到菜园系统"""
|
||||
if not GARDEN_SYSTEM_AVAILABLE:
|
||||
return
|
||||
|
||||
try:
|
||||
backpack: WPSBackpackSystem = Architecture.Get(WPSBackpackSystem)
|
||||
|
||||
@@ -584,5 +577,36 @@ class WPSCombatBase(WPSAPI):
|
||||
f"{ConsoleFrontColor.YELLOW}注册冒险种子到菜园系统时出错: {e}{ConsoleFrontColor.RESET}"
|
||||
)
|
||||
|
||||
def _register_legendary_alchemy_recipes(self) -> None:
|
||||
"""注册传说装备的炼金链条"""
|
||||
alchemy: WPSAlchemyGame = Architecture.Get(WPSAlchemyGame)
|
||||
|
||||
recipe_definitions = (
|
||||
# 护甲链
|
||||
(("combat_material_ore", "garden_wood_maple", "combat_armor_chain"), "combat_armor_plate", 0.70),
|
||||
(("combat_material_gem", "combat_material_crystal", "combat_armor_plate"), "combat_armor_sentinel", 0.50),
|
||||
(("combat_armor_sentinel", "garden_wood_sakura", "combat_material_crystal"), "combat_armor_dragonheart", 0.30),
|
||||
(("combat_armor_dragonheart", "combat_material_essence", "combat_armor_plate"), "combat_armor_guardian", 0.10),
|
||||
# 鞋子链
|
||||
(("combat_material_ore", "garden_wood_ginkgo", "combat_boots_leather"), "combat_boots_rapid", 0.70),
|
||||
(("combat_boots_rapid", "combat_material_gem", "combat_material_crystal"), "combat_boots_wind", 0.50),
|
||||
(("combat_boots_wind", "combat_material_crystal", "garden_wood_ginkgo"), "combat_boots_tempest", 0.30),
|
||||
(("combat_boots_tempest", "combat_material_essence", "garden_wine_maple"), "combat_boots_starlight", 0.10),
|
||||
# 饰品链
|
||||
(("combat_accessory_ring_str", "combat_material_gem", "garden_wood_sakura"), "combat_accessory_barrier", 0.70),
|
||||
(("combat_accessory_barrier", "combat_material_crystal", "garden_wood_sakura"), "combat_accessory_amulet", 0.50),
|
||||
(("combat_accessory_amulet", "combat_material_crystal", "garden_wine_sakura"), "combat_accessory_sanctum", 0.30),
|
||||
(("combat_accessory_sanctum", "combat_material_essence", "combat_souvenir_relic"), "combat_accessory_aegis", 0.10),
|
||||
)
|
||||
|
||||
for materials, success_item_id, success_rate in recipe_definitions:
|
||||
try:
|
||||
alchemy.register_recipe(materials, success_item_id, SPARK_DUST_ITEM_ID, success_rate)
|
||||
except Exception as exc:
|
||||
logger.Log(
|
||||
"Warning",
|
||||
f"{ConsoleFrontColor.YELLOW}注册炼金配方 {materials} -> {success_item_id} 失败: {exc}{ConsoleFrontColor.RESET}",
|
||||
)
|
||||
|
||||
|
||||
__all__ = ["WPSCombatBase"]
|
||||
|
||||
Reference in New Issue
Block a user