将果酒替换为果实炼金的产物
This commit is contained in:
@@ -82,5 +82,12 @@ Yolo模式: Off
|
||||
- 阻碍因素:无
|
||||
- 状态:未确认
|
||||
|
||||
2025-11-10_01:30:57
|
||||
- 已修改:Plugins/WPSGardenSystem/garden_models.py Plugins/WPSGardenSystem/garden_plugin_base.py
|
||||
- 更改:新增果酒物品定义并注册背包与商店模式,炼金成功产物改为果酒,成功率统一 75%。
|
||||
- 原因:取消高亏损的“果实→种子”配方,为后续系统提供果酒物品。
|
||||
- 阻碍因素:无
|
||||
- 状态:未确认
|
||||
|
||||
# 最终审查
|
||||
(待补充)
|
||||
|
||||
@@ -33,6 +33,8 @@ class GardenCropDefinition(BaseModel):
|
||||
base_yield: int
|
||||
extra_reward: GardenExtraReward
|
||||
extra_item_id: str | None = None
|
||||
wine_item_id: str | None = None
|
||||
wine_tier: str | None = None
|
||||
|
||||
class Config:
|
||||
allow_mutation = False
|
||||
@@ -60,6 +62,8 @@ COMMON_HERB_CROPS: Tuple[GardenCropDefinition, ...] = (
|
||||
seed_price=30,
|
||||
base_yield=4,
|
||||
extra_reward=GardenExtraReward(kind="points", payload={"min": 10, "max": 120}, base_rate=0.6),
|
||||
wine_item_id="garden_wine_mint",
|
||||
wine_tier="rare",
|
||||
),
|
||||
GardenCropDefinition(
|
||||
seed_id="garden_seed_basil",
|
||||
@@ -70,6 +74,8 @@ COMMON_HERB_CROPS: Tuple[GardenCropDefinition, ...] = (
|
||||
seed_price=36,
|
||||
base_yield=5,
|
||||
extra_reward=GardenExtraReward(kind="points", payload={"min": 15, "max": 150}, base_rate=0.55),
|
||||
wine_item_id="garden_wine_basil",
|
||||
wine_tier="rare",
|
||||
),
|
||||
GardenCropDefinition(
|
||||
seed_id="garden_seed_sage",
|
||||
@@ -80,6 +86,8 @@ COMMON_HERB_CROPS: Tuple[GardenCropDefinition, ...] = (
|
||||
seed_price=42,
|
||||
base_yield=5,
|
||||
extra_reward=GardenExtraReward(kind="points", payload={"min": 20, "max": 180}, base_rate=0.5),
|
||||
wine_item_id="garden_wine_sage",
|
||||
wine_tier="rare",
|
||||
),
|
||||
GardenCropDefinition(
|
||||
seed_id="garden_seed_rosemary",
|
||||
@@ -90,6 +98,8 @@ COMMON_HERB_CROPS: Tuple[GardenCropDefinition, ...] = (
|
||||
seed_price=50,
|
||||
base_yield=6,
|
||||
extra_reward=GardenExtraReward(kind="points", payload={"min": 30, "max": 220}, base_rate=0.45),
|
||||
wine_item_id="garden_wine_rosemary",
|
||||
wine_tier="rare",
|
||||
),
|
||||
)
|
||||
|
||||
@@ -104,6 +114,8 @@ RARE_TREE_CROPS: Tuple[GardenCropDefinition, ...] = (
|
||||
base_yield=3,
|
||||
extra_reward=GardenExtraReward(kind="item", payload={"min": 2, "max": 6}, base_rate=0.5),
|
||||
extra_item_id="garden_wood_ginkgo",
|
||||
wine_item_id="garden_wine_ginkgo",
|
||||
wine_tier="epic",
|
||||
),
|
||||
GardenCropDefinition(
|
||||
seed_id="garden_seed_sakura",
|
||||
@@ -115,6 +127,8 @@ RARE_TREE_CROPS: Tuple[GardenCropDefinition, ...] = (
|
||||
base_yield=3,
|
||||
extra_reward=GardenExtraReward(kind="item", payload={"min": 3, "max": 8}, base_rate=0.45),
|
||||
extra_item_id="garden_wood_sakura",
|
||||
wine_item_id="garden_wine_sakura",
|
||||
wine_tier="epic",
|
||||
),
|
||||
GardenCropDefinition(
|
||||
seed_id="garden_seed_maple",
|
||||
@@ -126,6 +140,8 @@ RARE_TREE_CROPS: Tuple[GardenCropDefinition, ...] = (
|
||||
base_yield=4,
|
||||
extra_reward=GardenExtraReward(kind="item", payload={"min": 4, "max": 10}, base_rate=0.4),
|
||||
extra_item_id="garden_wood_maple",
|
||||
wine_item_id="garden_wine_maple",
|
||||
wine_tier="epic",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@@ -70,13 +70,35 @@ class WPSGardenBase(WPSAPI):
|
||||
self._safe_register_item(backpack, crop.fruit_id, fruit_name, tier)
|
||||
if crop.extra_reward and crop.extra_reward.kind == "item" and crop.extra_item_id:
|
||||
wood_name = f"{crop.display_name}的木材"
|
||||
self._safe_register_item(backpack, crop.extra_item_id, wood_name, BackpackItemTier.RARE)
|
||||
self._safe_register_item(
|
||||
backpack,
|
||||
crop.extra_item_id,
|
||||
wood_name,
|
||||
BackpackItemTier.RARE,
|
||||
)
|
||||
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}的果酒"
|
||||
self._safe_register_item(
|
||||
backpack,
|
||||
crop.wine_item_id,
|
||||
wine_name,
|
||||
wine_tier,
|
||||
)
|
||||
|
||||
self._safe_register_mode(
|
||||
store,
|
||||
crop,
|
||||
limit_amount=service.config.seed_store_limit,
|
||||
)
|
||||
if crop.wine_item_id and crop.wine_tier:
|
||||
wine_price = crop.seed_price * service.config.sale_multiplier * 5
|
||||
self._safe_register_wine_mode(
|
||||
store,
|
||||
crop.wine_item_id,
|
||||
wine_price,
|
||||
limit_amount=service.config.seed_store_limit,
|
||||
)
|
||||
self._safe_register_recipe(alchemy, crop)
|
||||
|
||||
for item_id, meta in GARDEN_MISC_ITEMS.items():
|
||||
@@ -121,16 +143,35 @@ class WPSGardenBase(WPSAPI):
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def _safe_register_wine_mode(
|
||||
self,
|
||||
store: WPSStoreSystem,
|
||||
item_id: str,
|
||||
price: int,
|
||||
*,
|
||||
limit_amount: int,
|
||||
) -> None:
|
||||
try:
|
||||
store.register_mode(
|
||||
item_id=item_id,
|
||||
price=price,
|
||||
limit_amount=limit_amount,
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def _safe_register_recipe(
|
||||
self,
|
||||
alchemy: WPSAlchemyGame,
|
||||
crop: GardenCropDefinition,
|
||||
) -> None:
|
||||
try:
|
||||
success_rate = 0.75 if crop.tier == "common" else 0.6
|
||||
if not crop.wine_item_id:
|
||||
return
|
||||
success_rate = 0.75
|
||||
alchemy.register_recipe(
|
||||
(crop.fruit_id, crop.fruit_id, crop.fruit_id),
|
||||
crop.seed_id,
|
||||
crop.wine_item_id,
|
||||
"garden_item_rot_fruit",
|
||||
success_rate,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user