94 lines
4.0 KiB
Markdown
94 lines
4.0 KiB
Markdown
# 背景
|
||
文件名:2025-10-31_1_change-adventure-time-to-seconds.md
|
||
创建于:2025-10-31_17:30:37
|
||
创建者:admin
|
||
主分支:main
|
||
任务分支:main
|
||
Yolo模式:Off
|
||
|
||
# 任务描述
|
||
将冒险系统的计时单位从分钟更改为秒。需要修改所有相关的时间计算、验证逻辑、显示文本和帮助信息。
|
||
|
||
## 后续需求
|
||
支持时间格式输入(如 `1h30m10s`),并在显示时按时分秒格式显示,避免只显示秒数过于冗余。
|
||
|
||
# 项目概览
|
||
修改 `games/adventure.py` 文件,将冒险时间单位从分钟改为秒。
|
||
|
||
# 分析
|
||
当前代码中所有时间相关逻辑都以分钟为单位:
|
||
- 默认值:1分钟
|
||
- 参数验证:至少1分钟
|
||
- 时间计算:`cost_time * 60` 转换为秒
|
||
- 显示文本:所有提示信息都显示"分钟"
|
||
- 奖励计算:倍率 × 分钟数
|
||
- 放弃冒险:按分钟计算已消耗时间
|
||
|
||
需要将所有相关逻辑改为秒为单位。
|
||
|
||
# 提议的解决方案
|
||
将所有时间单位从分钟改为秒:
|
||
1. 修改默认值和参数验证
|
||
2. 移除时间计算中的 `* 60` 转换
|
||
3. 更新所有显示文本
|
||
4. 简化剩余时间显示逻辑(直接显示秒)
|
||
5. 更新帮助信息
|
||
|
||
# 当前执行步骤:"已完成"
|
||
|
||
# 任务进度
|
||
|
||
## 2025-10-31_17:32:32
|
||
- 已修改:games/adventure.py
|
||
- 更改:
|
||
1. 修改默认值注释:从"1分钟"改为"1秒"
|
||
2. 修改函数文档:cost_time参数从"(分钟)"改为"(秒)"
|
||
3. 修改参数验证:错误提示从"至少需要1分钟"改为"至少需要1秒"
|
||
4. 移除时间转换:将`end_time = start_time + saved_cost_time * 60`改为`end_time = start_time + saved_cost_time`
|
||
5. 更新显示文本:所有"分钟"改为"秒"(冒险结果、冒险进行中、冒险开始、冒险放弃)
|
||
6. 简化剩余时间显示:移除分钟/秒的转换逻辑,直接显示秒数
|
||
7. 修改放弃冒险逻辑:时间计算改为直接使用秒数(elapsed_seconds),移除分钟转换
|
||
8. 更新帮助信息:所有"分钟"改为"秒"
|
||
- 原因:将冒险系统计时单位从分钟改为秒,使时间控制更精确
|
||
- 阻碍因素:无
|
||
- 状态:成功
|
||
|
||
## 2025-10-31_17:35:06
|
||
- 已修改:games/adventure.py
|
||
- 更改:
|
||
1. 添加 `re` 模块导入,用于正则表达式解析
|
||
2. 新增 `_parse_time_string` 方法:解析时间格式字符串,支持以下格式:
|
||
- 纯数字(按秒):`60` -> 60秒
|
||
- 时分秒组合:`1h30m10s` -> 5410秒
|
||
- 分钟秒组合:`30m10s` -> 1810秒
|
||
- 只有小时:`1h` -> 3600秒
|
||
- 只有分钟:`30m` -> 1800秒
|
||
- 只有秒:`10s` -> 10秒
|
||
3. 新增 `_format_time` 方法:将秒数格式化为 "X时X分X秒" 格式,自动省略为0的部分
|
||
4. 修改 `handle` 方法:使用 `_parse_time_string` 解析时间参数,提供格式错误提示
|
||
5. 更新所有时间显示位置:
|
||
- 冒险结果:使用 `_format_time` 格式化消耗时间
|
||
- 冒险进行中:使用 `_format_time` 格式化剩余时间和总时长
|
||
- 冒险开始:使用 `_format_time` 格式化持续时间
|
||
- 冒险放弃:使用 `_format_time` 格式化已计入时间
|
||
6. 更新帮助信息:添加时间格式说明和示例
|
||
- 原因:支持更灵活的时间输入格式,提升用户体验;时间显示按时分秒格式,避免冗长的秒数显示
|
||
- 阻碍因素:无
|
||
- 状态:成功
|
||
|
||
## 2025-10-31_17:49:24
|
||
- 已修改:games/adventure.py
|
||
- 更改:
|
||
1. 修复预计完成时间显示问题:
|
||
- 原问题:只显示小时时刻(`%H:%M:%S`),跨天的冒险无法正确显示,且秒数显示不够明确
|
||
- 第一次尝试:根据冒险时长是否超过24小时判断(不准确)
|
||
- 最终解决方案:根据完成时间是否跨天来判断
|
||
- 跨天或跨年:显示完整日期时间 `YYYY-MM-DD HH:MM:SS`(包含年月日和时分秒)
|
||
- 同一天:显示时间 `HH:MM:SS`(包含时分秒)
|
||
- 原因:修复跨天冒险无法正确显示完成时间的问题,只要跨天就显示完整日期,确保秒数清晰显示
|
||
- 阻碍因素:无
|
||
- 状态:成功
|
||
|
||
# 最终审查
|
||
|