1.更新菜园系统的植物加载体系2.修复冒险中定义的植物与菜园系统脱离的错误
This commit is contained in:
@@ -24,6 +24,17 @@ from .combat_models import (
|
||||
)
|
||||
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
|
||||
|
||||
|
||||
logger: ProjectConfig = Architecture.Get(ProjectConfig)
|
||||
|
||||
@@ -109,7 +120,11 @@ class WPSCombatBase(WPSAPI):
|
||||
for item_id, (name, tier, desc) in ADVENTURE_SEEDS.items():
|
||||
self._safe_register_item(backpack, item_id, name, tier, desc)
|
||||
# 种子只能通过冒险获得
|
||||
|
||||
|
||||
# 5.1. 注册冒险种子到菜园系统(如果可用)
|
||||
if GARDEN_SYSTEM_AVAILABLE:
|
||||
self._register_adventure_seeds_to_garden()
|
||||
|
||||
# 6. 恢复过期任务和超时战斗
|
||||
try:
|
||||
service = self.service()
|
||||
@@ -189,5 +204,77 @@ class WPSCombatBase(WPSAPI):
|
||||
|
||||
return price + skill_bonus
|
||||
|
||||
def _register_adventure_seeds_to_garden(self) -> None:
|
||||
"""注册冒险种子到菜园系统"""
|
||||
if not GARDEN_SYSTEM_AVAILABLE:
|
||||
return
|
||||
|
||||
try:
|
||||
backpack: WPSBackpackSystem = Architecture.Get(WPSBackpackSystem)
|
||||
|
||||
# 战斗之花种子(EPIC)
|
||||
battle_flower_crop = GardenCropDefinition(
|
||||
seed_id="combat_seed_battle_flower",
|
||||
fruit_id="combat_fruit_battle_flower",
|
||||
display_name="战斗之花",
|
||||
tier="epic",
|
||||
growth_minutes=240, # 4小时,比稀有树木更长
|
||||
seed_price=300, # 比稀有树木更贵
|
||||
base_yield=2, # 产量较低,体现稀有性
|
||||
extra_reward=GardenExtraReward(
|
||||
kind="points",
|
||||
payload={"min": 500, "max": 2000},
|
||||
base_rate=0.35, # 较低的基础概率,体现稀有性
|
||||
),
|
||||
wine_item_id=None, # 暂不设置果酒
|
||||
wine_tier=None,
|
||||
)
|
||||
register_crop(battle_flower_crop)
|
||||
# 注册果实到背包系统
|
||||
self._safe_register_item(
|
||||
backpack,
|
||||
battle_flower_crop.fruit_id,
|
||||
"战斗之花的果实",
|
||||
BackpackItemTier.EPIC,
|
||||
"战斗之花成熟后的果实,可食用或售出换取积分。",
|
||||
)
|
||||
|
||||
# 胜利之树种子(LEGENDARY)
|
||||
victory_tree_crop = GardenCropDefinition(
|
||||
seed_id="combat_seed_victory_tree",
|
||||
fruit_id="combat_fruit_victory_tree",
|
||||
display_name="胜利之树",
|
||||
tier="legendary",
|
||||
growth_minutes=480, # 8小时,最长的生长时间
|
||||
seed_price=800, # 最贵的种子
|
||||
base_yield=1, # 最低产量,体现传说级稀有性
|
||||
extra_reward=GardenExtraReward(
|
||||
kind="points",
|
||||
payload={"min": 2000, "max": 5000},
|
||||
base_rate=0.25, # 最低的基础概率
|
||||
),
|
||||
wine_item_id=None, # 暂不设置果酒
|
||||
wine_tier=None,
|
||||
)
|
||||
register_crop(victory_tree_crop)
|
||||
# 注册果实到背包系统
|
||||
self._safe_register_item(
|
||||
backpack,
|
||||
victory_tree_crop.fruit_id,
|
||||
"胜利之树的果实",
|
||||
BackpackItemTier.LEGENDARY,
|
||||
"胜利之树成熟后的果实,可食用或售出换取积分。",
|
||||
)
|
||||
|
||||
logger.Log(
|
||||
"Info",
|
||||
f"{ConsoleFrontColor.GREEN}成功注册 {len(ADVENTURE_SEEDS)} 种冒险种子到菜园系统{ConsoleFrontColor.RESET}"
|
||||
)
|
||||
except Exception as e:
|
||||
logger.Log(
|
||||
"Warning",
|
||||
f"{ConsoleFrontColor.YELLOW}注册冒险种子到菜园系统时出错: {e}{ConsoleFrontColor.RESET}"
|
||||
)
|
||||
|
||||
|
||||
__all__ = ["WPSCombatBase"]
|
||||
|
||||
Reference in New Issue
Block a user