# Layer4_MainMenu / Layer6 接线交付 范围按用户确认:接通菜单事件与已有功能,缺失业务明确列出。分支 `codex/layer4-layer6-wiring`;本次不改服务器或网络协议,不实现子游戏。 ## 已接通 - `LobbyPanel` 实例化现有 Layer4、Layer6 和相邻通知菜单 prefab;设置、个人信息、加入房间面板、公告、更多菜单及关闭入口已接通。 - 菜单使用 Cocos `Button.EventType.CLICK`,隐藏节点、不可交互按钮、重连状态与弹窗遮挡均阻止底层业务事件。房卡/星星图标、底板、数字、购买按钮指向同一类型事件。 - 按 `11_GameUI.JumpMenuScene` 的执行顺序迁移审核版本、启动来源、代理/支付、隐藏任务/分享、小程序、大厅模式、主菜单四入口、房卡、排行、兑换码等显隐条件。 - 按可见按钮数量排列底栏与更多托盘,托盘扩宽后保持原左边界。原始 1280x720 坐标换算到现有居中布局,保留 Cocos 1600x720 画布。 - `lobby-menu.ts` 是菜单策略的唯一来源,遵循远程配置的层级读取与 hall_config 合并。保留旧 `hallConfigName` 字面量 `actData:` 导致顶层 `actData` 不覆盖活动配置的行为;保留字符串 `'0'` 的旧真值语义。 - 任务红点直接读取用户创建的 `Spirit17/Tip` Sprite,只控制 active;已移除 `taskTipPrefab` 脚本与场景引用。头像/金额继续使用已有 Cocos Sprite/位图字体 Label。 - 用户整理的 `TaskItem` 已通过 MCP 导出为独立 prefab;Spirit311 使用原进度底图与前景图,绑定原生 ProgressBar。Layer26_Task 使用横向 ScrollView + 矩形 Mask + Content Layout,TaskListView 根据数据 instantiate 条目。保留卡片美术与字体,未完成/可领取/已领取状态及仅第一个未完成条目显示“去做任务”与原逻辑一致。 - `TaskListView.render(tasks, roomCardName)` 提供任务响应的渲染入口;`task-do` / `task-claim` 事件携带 taskid。任务按钮现已通过 Runtime/Commands 发送 `agent/get_player_task`;Store 校验回包后驱动 Layer26。领奖发送 `agent/get_task_award`,响应更新任务 state=2 与玩家 taskstate。房卡仅由 `update_roomcard` 绝对余额推送更新;`player_finish_task` 响应遵循原红点条件。 - 任务请求带 agentid/playerid/gameid;领奖按实际旧代码仅带 agentid/playerid/taskid。已同步修正协议文档的 gameid 误记。请求期间防重复发送,超时/服务器 show_message/重连解除等待;普通余额提示不取消任务请求。任务窗口关闭与退出清理监听器和定时器。 - 修复已有加入房间面板打开错误:Spirit236–241 为 Sprite 数字槽,初始化隐藏,不再当成 Label 清空。 - `Launchtype` 按原工程分别读取 URL 或 `app_Launchtype`;从大厅启动时,设置中的退出登录提示返回大厅退出。 ## 已发出菜单事件,业务仍待接入 这些入口不发送猜测协议。`PlatformStartup` 记录 `lobby-action`,按明确的中文说明提示缺失功能。后续业务可在这一个入口接入。 - 房间:创建房间的子游戏规则、加入房间键盘/提交与真实 GameEntry、星星场、我的房间、官方试玩/微房号列表。Layer6 的 group-103 仍是隐藏的房间列表资源,尚无服务数据驱动;其动态列表项的 prefab 迁移属于后续房间列表业务。 - 列表业务:普通排行、VIP 排行、子游戏战绩、比赛模块。任务“去做任务”已按旧工程打开分享页,不伪造任务完成上报。 - 原生与外部页面:二维码、更多游戏/返回大厅、商城、背包、活动的完整身份参数与原生页面接口。分享面板与原生调用入口已接通;真实原生分享结果/任务完成回调仍待联调。 - 账号与服务:房卡/星星支付、兑换码提交、绑定手机、代理、保险箱、意见反馈提交。 - 设置原有音乐/音效本地开关仍可操作;音频实际播放系统、震动/语音开关及个人信息中的实名认证仍待接入。 ## 验证 在 `cocoscreator_projects` 下: ```powershell node --test framework-tests/presentation/lobby-menu.test.ts framework-tests/presentation/lobby-policy.test.ts framework-tests/presentation/lobby-model.test.ts framework-tests/platform-login/lobby-links.test.ts node --test framework-tests/presentation/task-item.test.ts node node_modules/typescript/bin/tsc -p tsconfig.framework.json --noEmit --lib ES2022,DOM node node_modules/typescript/bin/tsc -p YouleNexus/tsconfig.json --noEmit --ignoreDeprecations 6.0 --skipLibCheck --lib ES2022,DOM --types node --strict node scripts/check-import-boundaries.mjs ``` - 14 项针对性测试通过。菜单测试直接执行原工程函数,覆盖 288 组配置/启动来源组合,并额外验证配置来源和字符串真值。 - 上述框架及 Creator 脚本类型检查通过;导入边界检查通过;`git diff --check` 通过。 - 原始无覆盖参数的检查有基线配置限制:框架 ES2020 lib 不包含已有测试使用的 `Array.at`;MCP 内置旧 TypeScript 不支持现有 const 类型参数/allowImportingTsExtensions。未扩大范围改动这些配置。 - Creator 3.8.8 Game View 与浏览器预览分别执行 `scripts/verify-lobby-menu-preview.mjs`,31 项断言通过;测试使用合成账号状态,主动停掉测试预览的连接,不发送登录或业务包,不构成真实业务联调验收。 - 浏览器预览通过 Electron 坐标鼠标输入点击设置,实际打开设置 prefab,提示错误为空。 - 新 prefab 引用验证 missingCount=0;独立代码审查发现的托盘左边界与 actData 来源问题均已修复并复查通过。 - 预览截图:`cocoscreator_projects/YouleNexus/temp/mcp-captures/layer4-layer6-wired.png`(合成账号,1600x720 设计画布)。 - 任务状态模型 3 项测试通过;`scripts/verify-task-list-preview.mjs` 在独立浏览器预览中通过 15 项检查,覆盖实例数量、滚动范围、裁剪组件、进度条宽度、按钮显隐与事件、刷新、空列表及跨帧销毁。真实鼠标拖动到最右端(592 设计像素),裁剪正常,未误发按钮事件或出现运行错误。任务预览截图为 `temp/mcp-captures/task-list.png`。 复跑预览脚本:通过 MCP 启动 PlatformStartup 的 Game View/浏览器预览,待加载到登录场景后,将验证脚本作为函数在对应预览 renderer 中执行。它会停止该测试预览的 runtime 并显示合成大厅;结束后重启预览即可恢复正常启动流程。不要在真实使用中的会话中运行该验证器。 ## 任务服务器接线追加验证 - Commands、Runtime、PlatformHandlers 共 87 项测试通过;框架及 Creator 类型检查、导入边界检查通过。 - `scripts/verify-task-network-preview.mjs` 在独立 Creator 浏览器预览使用真实 Runtime/Router/Store/LobbyPanel 和记录型 Wire Port,14 项检查通过,覆盖菜单发包、列表弹出、领奖、红点、余额通知竞态、关闭、服务器提示与重连。该测试不向真实服务提交领奖。 - 实际预览已连接配置中的 `ws://127.0.0.1:3088`,但无缓存登录账号;本次未进行已登录账号的真实任务/领奖服务验收。 ## Spirit14 / Spirit679 与网页原生调试 - Spirit14、任务“去做任务”打开现有 Layer22_Share,网页无原生宿主时也正常显示。好友分享使用 friendsSharetypeUrlToptitleDescript;朋友圈按旧 case75,仅 shareType 真值时调用图片分享。url_download、sharename 与 hall_config 分享字段按原来源构造参数,支持远程 shareBgUrl。 - Spirit679 打开 Layer6/group-103 VIP 页面;按 advanced 控制普通玩家/管理入口,主菜单在 VIP 页面期间隐藏,关闭后恢复。仅完成页面入口;房间条目数据、管理操作及进房仍属于未接入房间业务,不把模板样例作为真实房间。 - 新增统一 [NativeCall] 控制台记录:channel、method、完整 args、available。现有 WVJB 调用、settings 配置读取、登录授权、定位、外链及分享均记录;缺少宿主的分享/授权只记录调用,不伪造回调或任务成功。已有宿主照常调用。 - 35 项菜单/分享/原生适配测试及两套类型检查通过;独立浏览器预览验证分享页打开、好友分享完整参数日志、VIP 页打开与关闭。分享截图 temp/mcp-captures/share-wired.png。 - 用户本轮“其他按钮”范围尚未回复确认;本次按明确点名的两个入口处理,未声称所有其他菜单业务完成。