将果酒替换为果实炼金的产物

This commit is contained in:
2025-11-10 01:44:42 +08:00
parent cdb3433b8a
commit 5eed9afd11
3 changed files with 67 additions and 3 deletions

View File

@@ -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,
)