降低积分炼金期望

This commit is contained in:
2025-11-14 19:57:24 +08:00
parent fa5d49e465
commit a96d6f1dc4

View File

@@ -31,13 +31,13 @@ MAX_POINTS_PER_BATCH: int = logger.FindItem("alchemy_max_points_per_batch", 1000
POINT_ALCHEMY_FEE: int = logger.FindItem("alchemy_point_fee", 100) POINT_ALCHEMY_FEE: int = logger.FindItem("alchemy_point_fee", 100)
POOL_INITIAL_BALANCE: int = logger.FindItem("alchemy_pool_initial_balance", 10000) POOL_INITIAL_BALANCE: int = logger.FindItem("alchemy_pool_initial_balance", 10000)
REWARD_SLOT_CONFIG = logger.FindItem("alchemy_reward_slots", sorted([ REWARD_SLOT_CONFIG = logger.FindItem("alchemy_reward_slots", sorted([
(50,0.01), (50,0.001),
(45,0.02), (40,0.004),
(40,0.03), (30,0.016),
(35,0.05), (20,0.05),
(30,0.07), (10,0.1),
(20,0.1), (5,0.15),
(10,0.2) (1,0.2)
], key=lambda x: x[0])) ], key=lambda x: x[0]))
COMMON_BONUS_RATE: float = logger.FindItem("alchemy_common_bonus_rate", 0.3333333) COMMON_BONUS_RATE: float = logger.FindItem("alchemy_common_bonus_rate", 0.3333333)
COMMON_BONUS_BLACKLIST: Sequence[str] = logger.FindItem("alchemy_common_blacklist", []) COMMON_BONUS_BLACKLIST: Sequence[str] = logger.FindItem("alchemy_common_blacklist", [])
@@ -63,15 +63,6 @@ class WPSAlchemyGame(WPSAPI):
SLAG_ITEM_NAME = "炉渣" SLAG_ITEM_NAME = "炉渣"
MAX_BATCH_TIMES = 99 MAX_BATCH_TIMES = 99
_PHASE_TABLE: List[Tuple[float, float, str, str]] = [
(0.1481481481, 0.0, "爆炸", "💥 炼金反噬,积分化为飞灰……"),
(0.4444444444, 0.5, "失败", "😖 炼金失败,仅保留半数积分。"),
(0.7407407407, 2.0, "成功", "😊 炼金成功,积分翻倍!"),
(0.8888888888, 5.0, "丰厚积分", "😁 运气加成,收获丰厚积分!"),
(0.9629629630, 10.0, "巨额积分", "🤩 巨额积分入账,今日欧气爆棚!"),
(1.0, 100.0, "传说积分", "🌈 传说级好运!积分暴涨一百倍!"),
]
def __init__(self) -> None: def __init__(self) -> None:
super().__init__() super().__init__()
self._recipes: Dict[Tuple[str, str, str], AlchemyRecipe] = {} self._recipes: Dict[Tuple[str, str, str], AlchemyRecipe] = {}
@@ -680,7 +671,7 @@ class WPSAlchemyGame(WPSAPI):
slot_brief_line = "" slot_brief_line = ""
if self._reward_slot_config: if self._reward_slot_config:
reward_probability_line = ( reward_probability_line = (
f"- 有奖励挡位总概率:{self._reward_total_probability:.0%}\n" f"- 有奖励挡位总概率:{self._reward_total_probability:.2%}\n"
) )
preview = ", ".join( preview = ", ".join(
f"{percent:.0f}%{probability:.2%}" f"{percent:.0f}%{probability:.2%}"
@@ -702,17 +693,6 @@ class WPSAlchemyGame(WPSAPI):
f"- 状态:炼金进行中..." f"- 状态:炼金进行中..."
) )
def _draw_point_multiplier(
self, fortune_value: float
) -> Tuple[float, str, str]:
offset = fortune_value * self._fortune_coeff
random_value = random.random()
landing = clamp01(offset + random_value)
for threshold, multiplier, label, text in self._PHASE_TABLE:
if landing <= threshold:
return multiplier, label, text
return self._PHASE_TABLE[-1][1:]
def _draw_reward_slot( def _draw_reward_slot(
self, fortune_value: float self, fortune_value: float
) -> Tuple[Optional[float], float]: ) -> Tuple[Optional[float], float]: