背景
当前 AutoWSGR 在战斗检测到船坞已满时,会按配置执行舰种过滤后“快速全选解装”。掉落舰除了直接解装换取资源,也可以作为强化素材。需要在船坞满时根据固定价值模型,将可处理舰船划分为强化素材和解装对象。
游戏规则模型
每艘被强化舰有四类强化属性:
- 不同舰种可强化属性集合不同,例如航母类不存在鱼雷强化。
- 每个技能阶段都有四维当前值与上限。
- 只有该舰所有可强化属性全部满时,才能提升技能等级。
- 技能最高 3 级。
- 每次技能升级会清空当前强化经验,进入下一阶段重新强化。
- 强化允许溢出,但溢出没有收益。例如只缺 10 对空,提供 20 对空的素材只有 10 有效。
每艘可消耗舰船 s 有两组固定数据:
materialYield(s) = {
firepower,
torpedo,
armor,
antiAir,
}
dismantleYield(s) = {
fuel,
ammo,
steel,
aluminum,
}
第一版固定价值模型
“固定价值”指属性与资源权重由配置静态给定,不随库存、时间或历史使用动态学习;目标舰当前缺口仍需读取,否则无法避免强化溢出。
interface ValuationWeights {
enhancement: {
firepower: number;
torpedo: number;
armor: number;
antiAir: number;
};
dismantle: {
fuel: number;
ammo: number;
steel: number;
aluminum: number;
};
skillCompletionBonus: number;
overflowPenalty: number;
}
素材 s 用于目标舰 t 的有效强化量:
Effective(s, t, attr)
= min(MaterialYield(s, attr), RemainingNeed(t, attr))
溢出量:
Overflow(s, t, attr)
= max(0, MaterialYield(s, attr) - RemainingNeed(t, attr))
强化价值:
EnhanceValue(s, t)
= Σattr EnhancementWeight(attr) × Effective(s, t, attr)
- OverflowPenalty × Σattr EnhancementWeight(attr) × Overflow(s, t, attr)
+ SkillCompletionBonus, 若本次强化补满目标舰全部可强化属性
解装价值:
DismantleValue(s)
= Σresource DismantleWeight(resource) × DismantleYield(s, resource)
决策:
BestEnhanceValue(s) = max_t EnhanceValue(s, t)
若 BestEnhanceValue(s) > DismantleValue(s) + safetyMargin
→ 作为强化素材
否则
→ 解装
批量选择时不能逐船静态比较后一次性提交,因为前一艘素材会改变目标舰剩余缺口。第一版可使用顺序贪心:
- 扫描所有强化目标的当前四维缺口与技能等级。
- 对每个候选素材计算其当前最佳目标和边际强化价值。
- 选择边际优势最大的素材执行/加入当前批次。
- 更新目标舰虚拟缺口后重新计算剩余素材。
- 某目标全部属性满后停止向其继续投料;先完成技能升级,再进入下一强化阶段。
- 无正边际收益的素材进入解装集合。
安全约束
以下舰船绝不自动消耗:
- 已锁定舰船。
- 非 1 级舰船(第一版保守限制)。
- 用户保护名单中的舰船。
- 当前编队、远征、修理或其他任务占用的舰船。
- 稀有度超过配置阈值的舰船。
- OCR 无法可靠识别的舰船。
同名多实例必须按实例选择,不能仅按舰名批量操作。
当前实现现状
后端当前仅支持:
- 船坞满检测:
autowsgr/ops/normal_fight.py::_handle_dock_full
- 自动解装:
autowsgr/ops/destroy.py::destroy_ships_auto
- 解装 UI:按舰种过滤后快速全选,无法按具体舰船实例选择
- 强化页面:
autowsgr/ui/intensify_page.py 目前只有页面识别、标签切换和返回
- 掉落识别:常规战历史能记录掉落舰名;识别层本身也能返回舰种
当前缺失:
- 舰船强化/解装静态收益数据库。
- 船坞舰船实例扫描 API。
- 强化目标四维当前值、上限和技能等级识别。
- 强化页面选择目标舰与素材舰的自动化。
- 技能升级自动化。
- 按具体实例解装,而不是按舰种快速全选。
推荐实现阶段
阶段 1:静态价值分类与审计模式
- 建立
ship_economy.json,记录素材四维收益和解装资源。
- 仅根据固定权重输出“建议强化/建议解装”日志,不实际点击。
- 记录无法识别或无数据舰船。
阶段 2:安全的精确解装
- 扫描船坞实例。
- 只解装明确判定、未锁定、1 级、非保护名单的舰船。
- 移除当前舰种过滤后快速全选的危险路径。
阶段 3:强化执行
- 读取强化目标四维缺口和技能等级。
- 实现目标舰、素材舰精确选择和强化确认。
- 先支持一个用户配置的强化目标队列。
- 目标全满时执行技能升级,刷新状态后继续。
阶段 4:船坞满统一处理
船坞满时:
识别候选舰
→ 安全过滤
→ 强化素材分配
→ 执行强化/技能升级
→ 解装剩余低价值舰
→ 检查船坞空间
→ 恢复原战斗任务
验收场景
- 目标只缺 10 对空时,20 对空素材只计 10 有效值,溢出被惩罚。
- 航母类目标不计算鱼雷缺口,也不为鱼雷素材价值加分。
- 能补满全部属性并触发技能升级的素材获得完成奖励。
- 技能 3 级且强化已满的舰船不再作为强化目标。
- 同一素材强化价值低于解装价值时进入解装集合。
- 锁定、非 1 级、保护名单、识别不可靠舰船从不自动消耗。
背景
当前 AutoWSGR 在战斗检测到船坞已满时,会按配置执行舰种过滤后“快速全选解装”。掉落舰除了直接解装换取资源,也可以作为强化素材。需要在船坞满时根据固定价值模型,将可处理舰船划分为强化素材和解装对象。
游戏规则模型
每艘被强化舰有四类强化属性:
每艘可消耗舰船
s有两组固定数据:第一版固定价值模型
“固定价值”指属性与资源权重由配置静态给定,不随库存、时间或历史使用动态学习;目标舰当前缺口仍需读取,否则无法避免强化溢出。
素材
s用于目标舰t的有效强化量:溢出量:
强化价值:
解装价值:
决策:
批量选择时不能逐船静态比较后一次性提交,因为前一艘素材会改变目标舰剩余缺口。第一版可使用顺序贪心:
安全约束
以下舰船绝不自动消耗:
同名多实例必须按实例选择,不能仅按舰名批量操作。
当前实现现状
后端当前仅支持:
autowsgr/ops/normal_fight.py::_handle_dock_fullautowsgr/ops/destroy.py::destroy_ships_autoautowsgr/ui/intensify_page.py目前只有页面识别、标签切换和返回当前缺失:
推荐实现阶段
阶段 1:静态价值分类与审计模式
ship_economy.json,记录素材四维收益和解装资源。阶段 2:安全的精确解装
阶段 3:强化执行
阶段 4:船坞满统一处理
船坞满时:
验收场景