Skip to content

feat: 《海克斯觉醒》DLC · 每条命 3 选 1 强化卡(协议 v11) - #44

Open
JeanHome123 wants to merge 1 commit into
MineSunshineone:mainfrom
JeanHome123:feat/dlc-hex
Open

feat: 《海克斯觉醒》DLC · 每条命 3 选 1 强化卡(协议 v11)#44
JeanHome123 wants to merge 1 commit into
MineSunshineone:mainfrom
JeanHome123:feat/dlc-hex

Conversation

@JeanHome123

@JeanHome123 JeanHome123 commented Sep 2, 2026

Copy link
Copy Markdown

《海克斯觉醒》DLC · 每条命 3 选 1 强化卡

进入对局与每次阵亡后,服务端从 9 张卡池随机发 3 张(不重复),玩家用数字键 1-3 或点选 1 张,效果仅本条命生效:死亡即失效,复活倒计时期间弹出新一批 3 选 1(面板保留,落地后仍可边打边选)。bot 不参与。

卡池(v1 九张)

效果 实现挂点
疾行者 移速 +15% Move 查询乘系数 + 客户端 speedMultiplier 镜像
强袭 伤害 +15% Damage 攻击方乘系数
狂热 射速 +25% TryFire gap/1.25 + 客户端开火节奏镜像
稳定 散布 -30% weaponSpread 后乘系数(先于狙击腰射下限,双端同序)
铁壁 受伤 -20% Damage 受害方乘系数
利爪 造成伤害 15% 回血 Damage 内结算,按 maxHP() 钳制
血牛 血量上限 100→140,选卡立即 +40 按玩家查询的 maxHP(),全服回血/满血钳制点改造
弹药扩容 两把武器备弹翻倍 选卡一次性生效
快手 换弹耗时 -30% StartReload + EvReloadStart 的 ms 同步缩放 + 客户端本地镜像

协议 v10 → v11

  • 上行新增 OpHex 0x0E(1 字节卡 id),服务端校验「该卡确实在本次 offer 内」,不要求存活(死亡倒计时期间可选)
  • 下行复用 OpEvents,新增事件:EvHexOffer个人事件eventsFor 仅发本人:player u16 + n u8 + 3×卡 id)/ EvHexPick广播:player u16 + 卡 id + 名字)
  • 双端 ProtocolVersion 同步升 11,新旧客户端混连会被拒绝并提示刷新

设计要点

  • 零快照改动:卡片状态不进快照位(bit 位已满),速度/散布/射速系数由客户端按自己的卡 id 本地镜像,与服务端同值保证预测不回弹(乘法顺序与服务端逐位对齐,含狙击腰射下限的先后关系)
  • 血牛MaxHP 常量消费点全部改为 p.maxHP()(吸血/连杀回血/医疗包/传奇补给/据点/赏金/炸鸡/金鸡王/复活),无卡时行为不变
  • 死亡语义:旧卡在 Damage 死亡结算块清零;Respawn 不清 Hex——死亡倒计时期间选中的新卡要带入新的一命(有测试守护该行为)
  • bot 完全不参与(不收 offer、不占事件)

测试

  • 新增 server/hex_test.go:发卡合法性(3 张不重复、bot 跳过)、选卡校验(非法/重复拒绝)、死亡清卡 + 复活保留、血牛上限与即时回血、弹药翻倍、移速位移比 ≈1.15、强袭/铁壁伤害、利爪回血与上限钳制、狂热射速间隔、快手换弹时长与 EvReloadStart 缩放
  • proto_test.go 新增 TestHexEventEncoding 逐字节断言
  • go test ./... 全绿;npm run build 通过
  • 本地端到端实测(真实 WebSocket 客户端 + 浏览器):进房收卡 → 选卡 → 全局播报 → 死亡后自动重发新一轮,全部正常

备注

  • UI 沿用大招选择器的面板模式,紫色海克斯主题;移动端卡片为原生按钮可直接点选
  • HUD 左下角 vitals 新增当前卡徽章,死亡清空

如何体验

docker compose up -d --build   # 或 cd server && go run . + cd client && npm run dev

进房即弹 3 选 1 面板(数字键 1-3 或点选);被击杀后 3 秒复活倒计时期间会自动弹出新一批卡。选「血牛」可看到 HP 上限变为 140、vitals 区出现当前卡徽章;另一窗口开第二个客户端互相击杀可看到「获得海克斯」的全局播报。

- 服务端 hex.go:9 张强化卡(疾行者/强袭/狂热/稳定/铁壁/利爪/血牛/弹药扩容/快手),
  进房与每次死亡发 3 选 1,效果本条命生效、死亡失效;bot 不参与
- 协议 v11:新增 OpHex(0x0E) 选卡上行、EvHexOffer(个人发卡)/ EvHexPick(全局播报)事件
- 血牛改用按玩家查询的 maxHP()(140 上限),全服回血/满血钳制点同步改造
- 速度/散布/射速/换弹系数客户端本地镜像,保证预测与服务端逐位一致
- 客户端紫色主题选卡面板(数字键 1-3 或点选,死亡倒计时期间可选),HUD 常驻当前卡徽章
- 新增 hex_test.go 全链路测试 + 协议逐字节编码测试,README 同步玩法与协议说明
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant