MatchMaster/docs/BattlePassSettlement.txt
2026-10-09 10:03:29 +08:00

66 lines
4.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

万圣节战令改版验收说明(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。