跳到主要内容

PRD-059 战魂与星魂系统

文档编号:PRD-059
版本:v1.0
状态:已通过
适用端:服务端 / 客户端
脚本挂载:lua/numeric/soul.lua

1. 背景与目标​

战魂/星魂提供可组合的数值 Build 与套装追求。魂位、套装、合成、洗练适合用 Lua 配置,便于扩展新魂系。

目标

  • 6 个战魂槽位,每个槽位装备 1 个战魂。
  • 战魂分品质/等级/主属性/副属性,可升级、合成。
  • 同系 2/4/6 件激活套装效果;星魂提供独立星图加成。

2. 核心规则​

2.1 战魂​

  • 6 槽位:攻击、防御、生命、暴击、韧性、特殊。
  • 战魂品质:普通/精良/史诗/传说,决定副属性条数。
  • 升级消耗魂石,等级上限受角色等级限制。
  • 3 个同品质同部位战魂可合成 1 个更高品质。

2.2 套装​

  • 战魂分 4 系:破军、守御、疾风、玄机。
  • 2/4/6 件激活不同效果,效果只统计已装备。
  • 混搭允许,但只激活对应件数的套装。

2.3 星魂​

  • 星魂是独立星图,消耗星魂石点亮节点。
  • 每个节点提供固定属性或百分比,点亮前置节点才能继续。
  • 星图分 3 条支线,可重置,重置返还 80% 材料。

3. 服务端设计​

3.1 Lua 脚本设计​

-- lua/numeric/soul.lua
Soul = {
slots = 6,
sets = {
pojun = { [2]={atk=0.04}, [4]={atk=0.08}, [6]={atk=0.15, crit=0.05} },
},
star_nodes = {
[1] = { cost=10, attr={atk=20}, next={2,3} },
[2] = { cost=15, attr={crit=0.01}, next={4} },
},
}

function OnEquipSoul(ctx, role, soul_uid, slot)
local soul = ctx:GetSoul(soul_uid)
if not soul or soul.slot ~= slot then return ctx:Fail(role, "槽位不匹配") end
ctx:SetSoulSlot(role, slot, soul_uid)
ctx:RecalcSoulSet(role)
ctx:RecalcAttributes(role)
end

function OnStarUp(ctx, role, node_id)
local node = Soul.star_nodes[node_id]
if not ctx:CanLight(role, node_id) then return ctx:Fail(role, "前置未点亮") end
if not ctx:Consume(role, "star_stone", node.cost) then return ctx:Fail(role, "材料不足") end
ctx:LightStarNode(role, node_id)
ctx:RecalcAttributes(role)
end
  • 战魂槽/套装/星图节点持久化。
  • 合成/升级/洗练走事务,失败回滚。
  • 星图重置返还比例可配置。

3.2 协议​

方向协议说明
C→SCS_SoulEquip装备战魂
C→SCS_SoulUpgrade升级/合成
C→SCS_StarUp点亮星魂
S→CSC_SoulInfo槽位/套装/星图
S→CSC_SoulResult结果/属性

3.3 竞技约束​

  • 战魂/星魂属性计入战力,匹配按总值。
  • 竞技模板可归一化套装效果,避免碾压。
  • 禁止战斗中切换战魂/重置星图。

4. 客户端设计​

  • 战魂面板:6 槽位、品质、等级、主/副属性。
  • 套装提示:当前件数/下一档。
  • 合成界面:3 合 1、预览、成功率。
  • 星图:节点连线、点亮状态、重置预览。
  • 属性对比与战力变化。

5. 配置与 Lua 接口​

配置说明
soul_id战魂
slot槽位
quality品质
set_id套装
star_nodes星图节点
reset_rate重置返还

Lua 接口:GetSoul、SetSoulSlot、RecalcSoulSet、LightStarNode、CanLight、RecalcAttributes。

6. 边界与异常​

场景处理
槽位不匹配拒绝
合成材料不足拒绝,不扣
星图前置未点亮拒绝
战斗中切换拒绝
战魂被删除登录清槽
热更套装下次重算生效

7. 验收标准​

  • 战魂装备/升级/合成/套装正确。
  • 星图点亮/前置/重置/返还正确。
  • 属性/战力重算一致。
  • 竞技约束生效。
  • 客户端槽位/星图显示一致。