修改冒险装备掉落物逻辑

This commit is contained in:
2025-11-14 19:35:50 +08:00
parent 5d17172a23
commit fa5d49e465
2 changed files with 239 additions and 27 deletions

View 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
## 结论
实施与计划完全匹配,所有功能已成功实现。