降低积分炼金期望
This commit is contained in:
@@ -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]:
|
||||||
|
|||||||
Reference in New Issue
Block a user