From be3043829c6e81af11dbc02925f86c297454f14e Mon Sep 17 00:00:00 2001 From: ninemine <1371605831@qq.com> Date: Mon, 10 Nov 2025 21:20:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=BA=86=E5=86=92=E9=99=A9?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=85=AC=E5=BC=8F2.=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=B3=A8=E5=86=8C"=E7=A7=AF=E5=88=86"?= =?UTF-8?q?=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Plugins/WPSCombatSystem/combat_models.py | 1 - Plugins/WPSCombatSystem/combat_service.py | 29 ++++++++++++++++------- Plugins/WPSConfigSystem.py | 1 + 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/Plugins/WPSCombatSystem/combat_models.py b/Plugins/WPSCombatSystem/combat_models.py index 8a5a730..a174de8 100644 --- a/Plugins/WPSCombatSystem/combat_models.py +++ b/Plugins/WPSCombatSystem/combat_models.py @@ -46,7 +46,6 @@ COMBAT_ADVENTURE_CONFIG = { # 成功率配置 "combat_adventure_base_success_rate": 1.00, # 第一阶段基础成功率 "combat_adventure_stage_penalty": 0.20, # 每阶段递减 - "combat_adventure_min_success_rate": 0.00, # 最低成功率 "combat_adventure_max_success_rate": 1.00, # 最高成功率 # 加成系数配置 diff --git a/Plugins/WPSCombatSystem/combat_service.py b/Plugins/WPSCombatSystem/combat_service.py index 1d92e34..e3a68b3 100644 --- a/Plugins/WPSCombatSystem/combat_service.py +++ b/Plugins/WPSCombatSystem/combat_service.py @@ -470,23 +470,23 @@ class CombatService: equipment_strength: float, fortune_value: float, wine_buffs: List[str] - ) -> float: + ) -> Tuple[float, str]: """ 计算冒险成功率 Returns: 成功率(0.0-1.0) + 描述性文本 """ # 1. 基础成功率 base_rate = CombatConfig.get_float("combat_adventure_base_success_rate") 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. 装备加成 equip_coeff = CombatConfig.get_float("combat_adventure_equipment_coeff") - equip_bonus = equipment_strength * equip_coeff + equip_bonus = math.log2(equipment_strength * equip_coeff) # 3. 运势加成 fortune_coeff = CombatConfig.get_float("combat_adventure_fortune_coeff") @@ -501,7 +501,21 @@ class CombatService: # 5. 最终成功率 max_rate = CombatConfig.get_float("combat_adventure_max_success_rate") 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]: """ @@ -712,7 +726,7 @@ class CombatService: # 6. 计算冒险参数 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. 创建冒险记录 start_time = datetime.now() @@ -781,8 +795,7 @@ class CombatService: msg_lines = [ f"✅ 开始第 {stage} 阶段冒险{debug_hint}", f"- 预计耗时:{time_str}", - f"- 成功率:{success_rate*100:.1f}%", - f"- 装备强度:{stats.equipment_strength:.1f}", + f"- 成功率: {success_rate*100:.2f}% ({success_rate_desc})", f"- 预计完成:{expected_end.strftime('%Y-%m-%d %H:%M')}" ] diff --git a/Plugins/WPSConfigSystem.py b/Plugins/WPSConfigSystem.py index 5abbf30..1db4d30 100644 --- a/Plugins/WPSConfigSystem.py +++ b/Plugins/WPSConfigSystem.py @@ -209,6 +209,7 @@ class WPSCheckinAPI(WPSAPI): logger.Log("Info", f"{ConsoleFrontColor.GREEN}WPSCheckinAPI 插件已加载{ConsoleFrontColor.RESET}") self.register_plugin("checkin") self.register_plugin("签到") + self.register_plugin("积分") @override def register_db_model(self) -> DatabaseModel: