技能装配概述
技能装配是角色当前战斗技能的唯一权威配置。玩家在已解锁的技能中自由选择 3 个主动技能 和 3 个被动技能 组合。
技能装配通过 PUT /api/skills/loadout 保存。 服务端会校验:1) 技能已解锁;2) 主动槽只能放主动技能、被动槽只能放被动技能; 3) 装配版本号(loadoutConfigVersion)一致。
装配规则
3 个主动槽
主动槽决定战斗中可自动释放的技能。空槽会被普通攻击填补,新角色默认全部为空。技能按装配顺序(slotIndex 1/2/3)依次释放。
3 个被动槽
被动槽提供持续加成。只能放入已解锁的被动技能,类型不匹配(如将主动技能塞入被动槽)会被服务端拒绝。
掉落解锁
技能第一次从怪物掉落时解锁。主动技能从初始池(强力打击、火球术、冰锥术、治愈圣光)优先掉落,重复掉落转换为该技能 XP,不占背包空间。
服务端权威
普通战斗、Boss 战、离线结算和回放都读取同一个 skill loadout。前端仅做展示,所有技能装配变更通过 API 请求由服务端验证和持久化。
新手保底
如果角色前 5 场战斗内尚未解锁任何主动技能,系统从初始主动池中保证掉落一个(按 battleIndex 轮询选取)。确保新玩家不会在无技能状态下空转太久。
技能状态数据
每个已解锁的技能都维护以下状态:
| 字段 | 说明 |
|---|---|
| skillId | 技能唯一标识(如 skill_mighty_strike) |
| unlocked | 是否已解锁(首次掉落时设为 true) |
| level | 当前等级(1-30,通过重复掉落获得 XP 升级) |
| exp | 当前等级的已有经验值 |
| requiredExpForNextLevel | 升到下一级所需 XP(公式:floor(100 × 1.12^level)) |
| progressPercent | 当前升级进度百分比(0-100) |
| masteryExp | 精通经验(满级 30 后溢出的 XP 存入此字段) |
| dropCount | 该技能的总掉落次数 |
| firstUnlockedAt | 首次解锁时间 |
掉落池配置
当前版本的技能掉落池配置:
初始主动池(新手保底用)
- • 强力打击 (skill_mighty_strike)
- • 火球术 (skill_fireball)
- • 冰锥术 (skill_frost_cone)
- • 治愈圣光 (skill_healing_light)
初始被动池
- • 利刃守卫 (passive_blade_guard)
- • 火焰亲和 (passive_fire_affinity)
正常掉落时从全池(4 主动 + 2 被动 = 6 个技能)中按 battleIndex 轮询选取。 所有 5 个区域共用同一个掉落池。