万圣节战令改版验收说明(2026-10-08) 预制体编辑入口 assets/passCheck/prefab/PassSettlement.prefab: panel/offer = 图1;panel/empty = 图2;panel/claim = 图3; panel/confirmation = 图4。编辑时可切换各分支的active预览,运行时由代码选择分支。 title、copy、background、closeButton、buyButton、claimButton可直接调位置/大小/图片。 图4的thinkAgainButton和abandonButton分别对应再想想和放弃。 offer/claim 的 rewards/topRow、bottomRow 用Layout排列固定奖励槽;可调整行位置和 Layout间距。若需逐个手动拖动槽位,请禁用对应行的Layout组件。 每个slot/item/icon包含各类型图标,slot/item/amount是动态数字的定位节点。 数字子节点在运行时生成,不要在amount下面添加需要保留的固定装饰。 assets/passCheck/prefab/PassUnlock.prefab: content/vip = 图6的18元表现;content/svip = 图6的30元/升档表现。 badge、copy和cardAnimation/card可直接调整。入场动画只缩放cardAnimation外层, 不覆盖card图片本身的位置、尺寸或缩放;点击shade关闭。 assets/shop/prefab/buyActivate.prefab:图5原有购买选择界面。 两个新预制体均为原生Cocos节点/组件,固定图片通过Sprite引用,无需挂新增脚本。 请保留上述代码使用的节点名称及父子关系;位置、尺寸、颜色、透明度、Sprite引用可改。 根节点1080×1920是适配基准;运行时只对panel/content外层做屏幕适配,不重新排布UI。 tools/create-battle-pass-prefabs.cjs仅用于首次结构生成,已有文件会跳过,不能覆盖编辑器调整。 实现入口 BattlePassSettlement:旧赛季结算队列、图1/2/3/4交互和上期18元购买。 BattlePassArt:图片文案、万圣节数字/南瓜/时钟、图6购买成功展示。 BattlePassSettlementModel:使用当前最新 PASS_CHECK 表计算奖励并合并同类项。 HomePopupQueue:结算优先级-100,完整结算/奖励动画结束后才继续原有弹窗。 触发时机与黄金矿工一致:首页 start 检查一次,cc.game.EVENT_SHOW 回前台重新检查,销毁首页时移除监听;不新增 onShow,不再由战令等级刷新重复触发。检查仍使用服务端结算状态,同一期已处理的弹窗不重复展示。 登录支付恢复先补齐战令权益再读取快照,其他订单和奖励弹窗延后。 规则 图2无可领项,该期仅提示一次;图3有奖励,X和领取都提交同一幂等请求。 图3实际入账成功才播放既有奖励动画,失败保留弹窗;之后再展示符合条件的图1。 图1仅最新结束的一期、未买战令玩家可见;只售18元,展示即消耗唯一机会。 图1预制体准备好后保持隐藏,offer_shown 服务端确认成功才显示;410 静默跳过,避免每次返回首页时先闪出无资格的购买窗口。网络异常沿用同一 token 自动重试,切场景后不再显示迟到的响应。 图4“再想想”仅关闭确认层;“放弃”永久退出。遮罩不关闭;返回键与X一致。 上期支付只播付费奖励补发动画。期内18元显示VIP卡,30元/18升30显示豪华卡; 实际权益沿用原逻辑,升级仅新增权益。图5仅改美术引用。 界面固定文案使用图片,不新增Label。现有奖励数量/时长用数字图片。 离线不入账;服务端冻结进度,客户端按最新奖励表计算,提交后原子入账。 资源 已导入用户指定两套美术目录并复用 lose/texture 的确认弹窗素材。 目前无缺失素材。原用户已修改的 passCheckWindow/tongpiaozi 保留。 tools/import-battle-pass-art.cjs 可重建新增资源/meta及预制体图片引用; 主界面背景有hash保护,避免覆盖后续美术调整。 测试命令(客户端目录) node --test tools/test-battle-pass-settlement.cjs tools/test-battle-pass.cjs node --test tools/test-battle-pass-ui.cjs 新增模块使用 creator.d.ts 的定向TypeScript检查通过。 现有UI套件31项中30项通过:tools/test-battle-pass-ui.cjs:328 的数字节点 x预期25、实际0是本次修改前已有断言差异,未调整无关位置代码。 本地视觉预览 node tools/preview-battle-pass-settlement.cjs 浏览器 http://127.0.0.1:8776/,按钮可切换图1/2/3/4、18元/30元成功表现。 使用本机已安装的 Cocos Creator 2.4.15 预览引擎,实际组件和图片资源; 网络/支付为模拟数据,数字渲染预览适配不等于完整游戏构建。已逐项视觉检查。 发布和真机测试 后端变更在同级 workspace/server,不在本客户端仓库的旧 server 快照目录。 参见 ../server/laf-cloud/docs/pass-check-settlement.txt 的发布列表与验收清单。 本次未自动发布云函数/定时器,也未发起真实支付;必须先部署后端再发布配套客户端。 现有用户其他未提交修改均保留。后端按其AGENTS约定进行本地提交,不push。