修改冒险装备掉落物逻辑
This commit is contained in:
87
.tasks/2025-11-14_2_stage-based-loot-tier.md
Normal file
87
.tasks/2025-11-14_2_stage-based-loot-tier.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# 背景
|
||||
文件名:2025-11-14_2_stage-based-loot-tier.md
|
||||
创建于:2025-11-14_19:32:12
|
||||
创建者:用户
|
||||
主分支:main
|
||||
任务分支:无(未创建功能分支)
|
||||
Yolo模式:Off
|
||||
|
||||
# 任务描述
|
||||
实现基于阶段的品质限制系统,使得低阶冒险和高阶冒险从不同的奖池获取奖励。阶段数越低越容易获取低级品质,阶段数越高越容易获取高级品质,并且阶段数不够时无法获得高级物品。
|
||||
|
||||
# 项目概览
|
||||
战斗系统(WPSCombatSystem)的冒险奖励生成机制。当前所有阶段都从相同的奖池获取奖励,需要根据冒险阶段限制物品品质。
|
||||
|
||||
# 分析
|
||||
## 当前状态
|
||||
1. 装备已有基于阶段的品质权重(971-980行),但未设置最低阶段限制
|
||||
2. 材料、纪念品、药剂、种子未按阶段限制品质
|
||||
3. 所有物品类型共享同一掉落逻辑,未区分低阶/高阶奖池
|
||||
|
||||
## 品质等级
|
||||
- COMMON(普通)
|
||||
- RARE(稀有)
|
||||
- EPIC(史诗)
|
||||
- LEGENDARY(传说)
|
||||
|
||||
## 数据结构
|
||||
- `ADVENTURE_MATERIALS`: `Dict[str, Tuple[str, BackpackItemTier, str]]`
|
||||
- `ADVENTURE_SOUVENIRS`: `Dict[str, Tuple[str, BackpackItemTier, int, str]]`
|
||||
- `COMBAT_POTIONS`: `Dict[str, Tuple[str, BackpackItemTier, str]]`
|
||||
- `ADVENTURE_SEEDS`: `Dict[str, Tuple[str, BackpackItemTier, str]]`
|
||||
- `EQUIPMENT_REGISTRY`: 包含 `tier` 属性的装备定义
|
||||
|
||||
# 提议的解决方案
|
||||
## 阶段-品质映射规则
|
||||
- COMMON:阶段1+(无限制)
|
||||
- RARE:阶段3+
|
||||
- EPIC:阶段6+
|
||||
- LEGENDARY:阶段10+
|
||||
|
||||
## 权重策略
|
||||
- 低阶段:COMMON权重高,高级品质权重为0或极低
|
||||
- 中阶段:COMMON权重下降,RARE/EPIC权重上升
|
||||
- 高阶段:COMMON权重进一步下降,EPIC/LEGENDARY权重显著提升
|
||||
|
||||
## 实现方案
|
||||
1. 创建 `_get_tier_weights_by_stage(stage: int)` 辅助函数,返回基于阶段的品质权重字典
|
||||
2. 修改 `_generate_loot_item` 方法,为所有物品类型(装备、材料、纪念品、药剂、种子)统一应用该权重系统
|
||||
3. 在权重计算中,未达到最低阶段的品质权重设为0,确保无法掉落
|
||||
|
||||
# 当前执行步骤:"已完成所有实施步骤"
|
||||
|
||||
# 任务进度
|
||||
[2025-11-14_19:32:12]
|
||||
- 已修改:Plugins/WPSCombatSystem/combat_service.py
|
||||
- 更改:
|
||||
1. 在 `_generate_loot_item` 方法之前(959-992行)添加了 `_get_tier_weights_by_stage` 辅助函数
|
||||
2. 修改了装备生成逻辑(1004-1023行),使用新的权重系统
|
||||
3. 修改了材料生成逻辑(1025-1052行),按品质筛选并应用权重
|
||||
4. 修改了纪念品生成逻辑(1054-1080行),按品质筛选并应用权重
|
||||
5. 修改了药剂生成逻辑(1082-1109行),按品质筛选并应用权重
|
||||
6. 修改了种子生成逻辑(1111-1137行),移除阶段检查,使用新的权重系统
|
||||
- 原因:实现基于阶段的品质限制系统,低阶段无法获得高级物品,高阶段更容易获得高级品质
|
||||
- 阻碍因素:无
|
||||
- 状态:成功
|
||||
|
||||
# 最终审查
|
||||
## 实施完成情况
|
||||
所有计划中的修改已成功实施:
|
||||
1. ✅ 创建了 `_get_tier_weights_by_stage` 辅助函数
|
||||
2. ✅ 更新了所有物品类型的生成逻辑(装备、材料、纪念品、药剂、种子)
|
||||
3. ✅ 实现了阶段限制机制(阶段不足时高级品质权重为0)
|
||||
|
||||
## 功能说明
|
||||
- 阶段1-2:只能获得COMMON品质物品
|
||||
- 阶段3-5:可以获得COMMON和RARE品质物品
|
||||
- 阶段6-9:可以获得COMMON、RARE和EPIC品质物品
|
||||
- 阶段10+:可以获得所有品质物品(COMMON、RARE、EPIC、LEGENDARY)
|
||||
|
||||
## 代码质量
|
||||
- 无linter错误
|
||||
- 所有修改符合计划规范
|
||||
- 错误处理完善(权重为0时返回None)
|
||||
|
||||
## 结论
|
||||
实施与计划完全匹配,所有功能已成功实现。
|
||||
|
||||
Reference in New Issue
Block a user