1.修改了冒险计算公式2.签到插件注册"积分"入口

This commit is contained in:
2025-11-10 21:20:21 +08:00
parent 092ef58f23
commit be3043829c
3 changed files with 22 additions and 9 deletions

View File

@@ -46,7 +46,6 @@ COMBAT_ADVENTURE_CONFIG = {
# 成功率配置 # 成功率配置
"combat_adventure_base_success_rate": 1.00, # 第一阶段基础成功率 "combat_adventure_base_success_rate": 1.00, # 第一阶段基础成功率
"combat_adventure_stage_penalty": 0.20, # 每阶段递减 "combat_adventure_stage_penalty": 0.20, # 每阶段递减
"combat_adventure_min_success_rate": 0.00, # 最低成功率
"combat_adventure_max_success_rate": 1.00, # 最高成功率 "combat_adventure_max_success_rate": 1.00, # 最高成功率
# 加成系数配置 # 加成系数配置

View File

@@ -470,23 +470,23 @@ class CombatService:
equipment_strength: float, equipment_strength: float,
fortune_value: float, fortune_value: float,
wine_buffs: List[str] wine_buffs: List[str]
) -> float: ) -> Tuple[float, str]:
""" """
计算冒险成功率 计算冒险成功率
Returns: Returns:
成功率0.0-1.0 成功率0.0-1.0
描述性文本
""" """
# 1. 基础成功率 # 1. 基础成功率
base_rate = CombatConfig.get_float("combat_adventure_base_success_rate") base_rate = CombatConfig.get_float("combat_adventure_base_success_rate")
stage_penalty = CombatConfig.get_float("combat_adventure_stage_penalty") stage_penalty = CombatConfig.get_float("combat_adventure_stage_penalty")
min_rate = CombatConfig.get_float("combat_adventure_min_success_rate")
base_success = max(min_rate, base_rate - (stage - 1) * stage_penalty) base_success = base_rate - (stage - 1) * stage_penalty
# 2. 装备加成 # 2. 装备加成
equip_coeff = CombatConfig.get_float("combat_adventure_equipment_coeff") equip_coeff = CombatConfig.get_float("combat_adventure_equipment_coeff")
equip_bonus = equipment_strength * equip_coeff equip_bonus = math.log2(equipment_strength * equip_coeff)
# 3. 运势加成 # 3. 运势加成
fortune_coeff = CombatConfig.get_float("combat_adventure_fortune_coeff") fortune_coeff = CombatConfig.get_float("combat_adventure_fortune_coeff")
@@ -501,7 +501,21 @@ class CombatService:
# 5. 最终成功率 # 5. 最终成功率
max_rate = CombatConfig.get_float("combat_adventure_max_success_rate") max_rate = CombatConfig.get_float("combat_adventure_max_success_rate")
total = base_success + equip_bonus + fortune_bonus + buff_bonus total = base_success + equip_bonus + fortune_bonus + buff_bonus
return min(max_rate, max(min_rate, total))
# 6.拼接描述
desc = f"{int(base_success*100)}%基础"
if equip_bonus > 0:
desc += f"+{int(equip_bonus*100)}%装备"
if fortune_bonus > 0:
desc += f"+{int(fortune_bonus*100)}%运势"
if buff_bonus > 0:
desc += f"+{int(buff_bonus*100)}%buff"
return (min(max_rate, total), desc)
def check_food_requirement(self, stage: int, food_items: List[str]) -> Tuple[bool, str, int]: def check_food_requirement(self, stage: int, food_items: List[str]) -> Tuple[bool, str, int]:
""" """
@@ -712,7 +726,7 @@ class CombatService:
# 6. 计算冒险参数 # 6. 计算冒险参数
actual_time = self.calculate_adventure_time(stage, stats.equipment_strength, food_items) actual_time = self.calculate_adventure_time(stage, stats.equipment_strength, food_items)
success_rate = self.calculate_success_rate(stage, stats.equipment_strength, fortune_value, food_items) success_rate, success_rate_desc = self.calculate_success_rate(stage, stats.equipment_strength, fortune_value, food_items)
# 7. 创建冒险记录 # 7. 创建冒险记录
start_time = datetime.now() start_time = datetime.now()
@@ -781,8 +795,7 @@ class CombatService:
msg_lines = [ msg_lines = [
f"✅ 开始第 {stage} 阶段冒险{debug_hint}", f"✅ 开始第 {stage} 阶段冒险{debug_hint}",
f"- 预计耗时:{time_str}", f"- 预计耗时:{time_str}",
f"- 成功率{success_rate*100:.1f}%", f"- 成功率: {success_rate*100:.2f}% ({success_rate_desc})",
f"- 装备强度:{stats.equipment_strength:.1f}",
f"- 预计完成:{expected_end.strftime('%Y-%m-%d %H:%M')}" f"- 预计完成:{expected_end.strftime('%Y-%m-%d %H:%M')}"
] ]

View File

@@ -209,6 +209,7 @@ class WPSCheckinAPI(WPSAPI):
logger.Log("Info", f"{ConsoleFrontColor.GREEN}WPSCheckinAPI 插件已加载{ConsoleFrontColor.RESET}") logger.Log("Info", f"{ConsoleFrontColor.GREEN}WPSCheckinAPI 插件已加载{ConsoleFrontColor.RESET}")
self.register_plugin("checkin") self.register_plugin("checkin")
self.register_plugin("签到") self.register_plugin("签到")
self.register_plugin("积分")
@override @override
def register_db_model(self) -> DatabaseModel: def register_db_model(self) -> DatabaseModel: