14 KiB
梦三统一战斗 HUD
当前范围以末尾“77.png/78.png”一节为准:仅替换玩家下方 HUD,采用完全透明布局;怪物、助战和战场出牌副本保持原生呈现。
用户已确认统一下方 HUD,并要求支持鼠标/触屏拖牌、多个敌人;不依赖十周年 UI,但兼容十周年 UI。本轮直接修改实际文件,保留其他已有修改,不创建修复副本、不提交或发布。
目标与边界
- 左侧真实玩家头像与生命/格挡/费用,中央状态条和原有真实手牌,右侧原生技能、确认、取消与结束控件。
- 保持卡牌父容器、角色节点、控件回调及原生事件结算;不创建另一套技能执行或出牌结算。
- 敌人与助战按现有席位身份动态布局;意图在上方,状态在下方,保留最多八席的原有校验。
- 读取现有效果;不启用 Wiki 尚未实现的状态,不改变触发优先级、存档或数值。
- 独立实例(炸弹、未来回合效果)分别显示,强度、回合、次数与阈值分别说明。
- 十周年未启用时必须完整工作;启用时只适配其当前真实节点,不导入其接口或资源。
实施计划
- 建立会话隔离的只读状态来源;接入刘备基础/进阶、通用牌及遗物状态。先验证负值、独立实例及旧会话清理。
- 新增 HUD 模块、样式、状态资源;保留原生手牌/控件父级,管理会话挂载与恢复。
- 接入战斗入口与召唤刷新,适配原生和十周年控件、拖牌遮罩及多角色布局。
- 用浏览器隔离场景检查原生/十周年样式、动态控件、拖牌、七个敌人、状态变化与重复卸载;结合源码核对并修复触屏误选、缓慢层数及遗物条裁切问题。
检查重点
技能进入/退出时控件重建;拖牌期间原生确认隐藏;触屏 click/touch 双触发;目标死亡/召唤后的真实命中区域;保存后换战的监听与样式清理。
静态、模块与浏览器隔离检查不等同于实际游戏验收。最终须在原生 UI 和实际十周年风格下分别验证完整对局。
进度
已检查既有修改;按本会话已确认方案直接实施。采用当前工作区,不另建工作树;不执行自动提交。
新增 battle/status-sources.js 管理会话级只读来源,ui/hud/ 负责显示和布局。刘备基础/进阶与通用牌模块只增加显示读取注册;遗物控制器只增加状态快照,不更改结算。图标从本机 v0.111.0 切片复制60张,共270585字节,尺寸/字节/哈希见 assets/status/manifest.json。
原生 UI 与十周年三种实际 CSS 的隔离场景已覆盖1280×720、812×375、540×900、七个敌人、原节点父级保持、鼠标拖牌、触屏 PointerEvent 拖牌、十周年独立技能控件回调、状态详情和重复卸载。上述均为隔离检查,未运行完整游戏和真实安卓客户端。
检查结果:4项状态模型测试、270项浏览器隔离断言、13个模块语法检查通过;60张图标清单与本机切片一致。拖拽继续使用原有单目标/无目标出牌适配,复杂技能、多次选牌和特殊目标流程沿用原生选择控件。
显示顺序目前是稳定的状态定义/来源顺序,不宣称等同于原版的施加/触发顺序。未知原生标记继续保留;只有已由HUD展示的对应标记才隐藏。
70.png 反馈修正(2026-10-22)
截图暴露了上一版隔离场景未覆盖的实际结构:十周年将 ui.control.id 改为 dui-controls,人物姓名/生命位于 camp-wrap、hp-wrap 内,人物尺寸及手机 stayleft 操作组还有高优先级规则。原来的直接子节点选择器未覆盖这些结构,造成皮肤边框、重复数值与操作按钮错位。
- 下方改为通透渐隐背景,仅左侧人物信息使用紧凑墨蓝面板;人物真实头像保持原节点,移除由 HUD 替代的姓名、生命和身份装饰显示,保留未知标记及装备交互。
- 真实操作容器按引用定位,不依赖容器 ID;原生操作组和可选技能/全局技能列分别安排空间。覆盖手机
stayleft横移与旧布局过渡,恢复手杀透明渐变字体的可见性,并保留技能选中/不可用提示。 - 遗物条按内容收缩;无状态时隐藏空标题和敌人空状态框;真实手牌上移,减少桌面底边裁切。敌人按数量在可用战场空间内排布,独立显示姓名、生命与格挡。
- 检查扩充为原生与三种十周年风格、四组尺寸(含1234×920),使用实际人物 CSS、嵌套人物结构、重命名按钮容器及手机样式,覆盖可选全局技能和技能文字可见性。
本次508项浏览器隔离断言、4项状态模型测试及修改模块语法/差异检查通过。已查看渲染截图;仍未在实际游戏进程或真实安卓客户端验收。游戏需重启以加载修改后的模块。
71.png 与原方案对照(2026-10-22)
用户明确仍要求之前确认的统一下方HUD。上一轮实际做成浮动人物卡、手牌和操作列,虽修正了部分皮肤冲突,却偏离原示意中共用底座的视觉关系。本轮对照原 mengsan-hud-options.html 第一节恢复统一底座、三栏分隔、固定状态行与完整手牌,保留真实节点及事件;单个敌人使用更大尺寸,多敌人继续动态分行。
十周年 playerDamagepop 将字符串通知放在 player.offsetTop + 80,缩小后的头像会让“回合开始”等通知覆盖底部信息。本轮只为当前HUD中的原生 .damage.skill-popup 加显示类并把位置限制在底座上方,保留文字动画与原有自动移除,退出时恢复。
新增检查覆盖空状态行稳定占位、旋转手牌底边、单敌人尺寸、通知位置及卸载恢复;仍属浏览器隔离验证。最终视觉需以重新启动后的实际游戏截图确认,不以检查数量作为美观验收。
只读评审发现长遗物条会与首排意图相交,新增十遗物场景先复现失败,再为战场顶部独立预留空间。多单位布局将意图、头像、状态作为整体分配高度;短屏按每单位至少64像素确定列数,头像与标签都受单元格限宽。补查667×375/七名敌人和375×500/三名敌人边界,复核确认原遮挡及头像重叠问题已消除。最终871项浏览器隔离断言、修改模块语法与差异检查通过;仍未进行实机验收。
72.png 细节与遗物位置(2026-10-22)
用户要求保留统一底座,修正头像被装备覆盖的问题,并将遗物移到屏幕中上方以避开左上回合数。装备原节点保持父级、回调和选取机制,移到头像下方的24像素紧凑横滚行;玩家装备放在底座底部,敌人装备与状态分别预留空间。额外适配十周年把同一装备根节点置于独立 ui.equipSolts 包装内的情况,不重建或搬移卡牌。遗物条改上方居中、限制最大宽度,过多时横向滚动。
测试加入真实装备CSS、五件装备首尾点击、装备与头像/状态互不遮挡、独立装备包装和卸载恢复,以及遗物居中和避开回合区域。先复现装备遮头像;独立包装的旧 justify-content:flex-end 使首件装备溢出且不可滚回,已显式改为起始排列。最终1087项浏览器隔离断言及修改模块语法/差异检查通过,未在实际游戏或安卓客户端验收。
73.png 现代风格、透明度与阵亡拥挤(2026-10-22)
按用户要求使用 UI/UX 技能评审后,保留统一下方HUD,改为内缩8像素、24像素圆角、76%背景不透明度与10像素轻度模糊的底座。文字不整体降透明度;头像、状态、按钮、遗物条与详情面板采用一致的圆角层级,弱化分隔线和装备滚动条,扩大桌面栏间留白。原生控件按真实引用清除十周年高优先级的15像素侧边距,并包含按钮内边距/边框,修正右侧圆角裁切。
阵亡角色保留真实节点和引擎登记,只隐藏其战场呈现;复活时恢复,避免存留尸体覆盖重排后的角色。普通出牌副本在空间足够时缩成最近两张,独立放在战场下沿;小屏或空间不足时隐藏重复副本。新增 ui/hud/played-cards.js 仅修改可恢复的独立translate/scale,不覆盖原生transform、不移除卡牌、不更改结算或原生过渡完成回调;判定/比拼与固定、可选、抽牌/获得牌副本沿用原生呈现。
只读评审指出固定预留128像素会压缩812×600七角色的第二排信息,新增场景先复现,再改为优先保障角色及标注空间,余量足够时才显示最近出牌区。最终原生与十周年三种风格、七组尺寸共28组场景、1556项浏览器隔离断言通过,覆盖透明度、圆角、按钮边界、阵亡/复活、判定恢复、原生transform过渡完成、拖牌及退出恢复。已检查桌面阵亡与短屏渲染截图;模块语法及差异检查通过。上述不等于实际游戏或安卓客户端验收,需重启游戏确认最终效果。
标注图、75.png/76.png(2026-10-22)
用户明确取消深蓝底框,要求完全透明;左下仅玩家立绘,不存在双武将,立绘需略大以容纳标记、装备。按标注将生命、格挡和费用移到立绘右侧竖排,状态移到立绘上方左侧矩阵;提示语放在手牌上方,确认、取消、托管和结束等原生控件在其下横排,原生技能与十周年可选技能控件在最右侧竖排。桌面玩家立绘由80×116放大为144×196,装备仍在原节点的下方横滚行;窄屏采用竖排人物信息。底座无背景色、边框、阴影或模糊,文字保持不透明并用文字阴影辅助辨识。
75.png 的右键说明被手牌遮住。新增 ui/hud/overlays.js 仅调整已有简单提示和原生 .dialog.popped 的位置,说明放到手牌和操作提示上方,并限制窗口内边界、允许长内容滚动。保留原有右键入口、内容节点、关闭遮罩和回调;不重建说明,不干预含卡牌/按钮的原生复杂选择框。针对原生绝对定位的内容包装增加局部流式布局,避免自动高度塌缩。
用户后续收窄范围:怪物界面沿用原版,只替换玩家下方 HUD。已去除本 HUD 的多单位布局、姓名/生命/装备/状态代理、死亡隐藏及最近出牌副本模块;敌人与助战不添加 HUD 类、不改内联位置、不替换节点,也不隐藏它们的原生标记。
76.png 奖励界面后方恢复旧布局,原因是 requestBattleFinish 立即卸载 HUD 和手牌适配。改为先冻结呈现、停交互和监听,保留玩家及扇形手牌外观;最终仍由原会话在奖励完成后统一释放,不改变战斗停止、结算、存档或奖励选择顺序。
本轮浏览器隔离检查使用实际玩家 HUD、手牌模块和原生/十周年三种风格 CSS,覆盖七组尺寸、状态矩阵溢出、玩家装备回调、怪物节点保持、原生技能独立竖排、鼠标与触屏拖牌、右键说明位置/内容/关闭、提示语与横排操作分离,以及停止后保留外观并最终恢复。最终28组场景、1455项浏览器隔离断言、4项状态模型测试以及修改模块语法和差异检查通过,已复核右键说明与透明底座的渲染截图;此类检查仍不等于实际游戏与安卓客户端验收。
77.png/78.png(2026-10-23)
玩家信息列与立绘的横向间距缩至 8~16px;常规/横屏立绘下边距由 66px 改为 24px,数值列同步下移。装备使用原节点,在立绘下半部竖向叠放,窄尺寸可滚动;兼容十周年独立装备容器,不迁移节点或替换回调。
移除“当前状态/暂无状态”和“选择行动/等待行动”占位文字,无状态时隐藏状态区,有状态时自动显示。左侧状态矩阵贴近立绘上方;遗物移至右侧技能区上方,与状态区对应。窄竖屏遗物改为单行横向滚动,并作 16px 对齐补偿以避开原有怪物意图。技能区高度限于遗物下方。
后续按用户要求移除“技能与装备”按钮及其详情代理分支,删除自制操作按钮的纹理、字体、边框、颜色和禁用态覆盖,并移除已无引用的两张复制纹理。确定/回合结束使用当前已启用的十周年或官方原版控件和样式,保留真实节点、内容、点击回调及原有内边距;HUD 仅安排容器位置,允许原生尺寸向上撑开。信息列改为相对立绘顶部定位,避免移除按钮后数值列下沉。右侧技能区仍按原有 HUD 轨道适配,底部布局保持透明。
78.png 的原生标记说明层级低于立绘,原生打开函数也不拒绝重复点击。玩家标记捕获阶段仅阻止尚未完成打开或已有说明时的重复打开;由原生事件生成内容,随后将说明移到手牌操作区上方。说明与遮罩分别置于 90/89 层,取消位置和层级过渡,避免短暂遮挡。关闭仍走原生回调,关闭后可重新打开;不改怪物标记。
已通过原生及十周年三种风格、七种尺寸的 28 组浏览器隔离场景,共 1847 项断言;另有前一轮 4 项状态模型测试、当前修改模块语法检查和差异检查通过。检查覆盖装备在立绘内、信息间距、移除技能装备代理按钮、操作按钮原始节点/内容/外观/字体/内边距保持、原生确认和结束回调、按钮在手牌上方、遗物溢出访问、标记连续点击/层级/位置/关闭后重开。已复核透明布局与原生按钮、标记说明截图;拖牌在原生目标可见区域验证。尚未完成真实游戏或安卓客户端验收。