# 实施计划:坦克大战 — 极简商业化 > **前置说明**:项目中已存在旧版复杂商业化代码(V1.0~V2.5),本计划需要先清理废弃模块,再重构保留模块,最后新建功能。 ## 现有代码盘点 ### 需要删除的文件(旧方案废弃) - `js/managers/StaminaManager.js` — 体力系统(砍掉) - `js/managers/SkinManager.js` — 皮肤管理器(砍掉) - `js/managers/BattlePassManager.js` — 战斗通行证(砍掉) - `js/managers/PromotionManager.js` — 付费引导(砍掉) - `js/managers/ShareManager.js` — 社交裂变扩展(砍掉) - `js/data/SkinData.js` — 皮肤数据(砍掉) - `js/data/BattlePassData.js` — 通行证数据(砍掉) - `js/scenes/BattlePassScene.js` — 通行证场景(砍掉) ### 需要重构的文件(保留但大幅简化) - `js/managers/CurrencyManager.js` — 简化为仅金币,去掉钻石/赛季币 - `js/managers/PaymentManager.js` — 简化为去广告+金币包+新手礼包 - `js/managers/AdManager.js` — 保留核心逻辑,增加每日领金币广告场景 - `js/managers/ComplianceManager.js` — 简化为基础合规 - `js/scenes/ShopScene.js` — 重写为极简商店(去广告+金币包+新手礼包) - `js/scenes/GameScene.js` — 调整复活弹窗(增加金币复活选项)、集成Buff生效逻辑 - `js/scenes/ResultScene.js` — 调整结算金币发放逻辑 - `js/scenes/TeamResultScene.js` — 同步调整结算金币发放 - `js/scenes/MenuScene.js` — 调整按钮布局(去掉通行证入口,增加领金币按钮) ### 需要新建的文件 - `js/managers/BuffManager.js` — 局前Buff管理器(新功能) - `js/scenes/BuffSelectScene.js` — 局前Buff选择界面(新功能) --- ## 任务清单 - [ ] 1. 清理废弃模块与引用 - 删除以下文件:`StaminaManager.js`、`SkinManager.js`、`BattlePassManager.js`、`PromotionManager.js`、`ShareManager.js`、`SkinData.js`、`BattlePassData.js`、`BattlePassScene.js` - 清理 `game.js` 中对上述模块的 import 和注册代码 - 清理 `GameGlobal.js` 中废弃的场景常量(BATTLE_PASS、SHOP 相关的旧定义) - 清理 `MenuScene.js` 中通行证入口按钮的代码 - 清理 `GameScene.js` 中体力检查相关代码 - 清理 `Tank.js` / `PlayerTank.js` 中皮肤渲染相关代码 - 清理 `ResultScene.js` / `TeamResultScene.js` 中通行证任务上报代码 - 清理 `zh.js` / `en.js` 中废弃模块的国际化文案 - _需求:与旧方案的差异说明_ - [ ] 2. 重构 CurrencyManager — 仅金币货币 - 移除钻石(diamond)和赛季币(seasonCoin)相关的所有属性和方法 - 保留金币(gold)的 `add`、`spend`、`getBalance` 方法 - 设置金币上限 999,999,`add` 时检查溢出 - 确保 `spend` 方法在余额不足时返回失败并触发事件 - 保留 StorageManager 持久化和云端同步逻辑 - _需求:1.1、1.2、1.3_ - [ ] 3. 重构 AdManager — 增加每日领金币广告场景 - 保留现有的激励视频(复活、双倍结算)和插屏广告核心逻辑 - 新增 `AD_SCENE.DAILY_GOLD` 广告场景枚举 - 新增 `showDailyGoldAd()` 方法,播放完毕后触发 `daily_gold_reward` 事件 - 新增每日领取次数追踪(每日上限3次,跨天重置) - 新增 `getDailyGoldRemaining()` 方法返回今日剩余次数 - 保留15分钟频控和预加载机制 - _需求:4.1、4.2、4.3、4.4_ - [ ] 4. 重构 PaymentManager — 极简内购 - 移除月卡、钻石包、皮肤礼包等商品配置 - 仅保留三个商品:去广告特权(¥18)、金币包(¥6=1000金币)、新手礼包(¥1=500金币) - 去广告特权购买后设置永久标记,通过 StorageManager 持久化 - 新手礼包增加24小时倒计时逻辑(首次进入游戏开始计时,超时后不可购买) - 保留微信支付(`wx.requestMidasPayment`)和掉单恢复逻辑 - _需求:5.1~5.6、6.1~6.3_ - [ ] 5. 重构 GameScene — 复活弹窗双选项 + Buff生效 - 修改复活弹窗:从仅"广告复活"改为"广告复活 + 金币复活(200金币)"双选项 - 金币复活调用 CurrencyManager.spend(200),余额不足时按钮置灰 - 保留每局仅限1次复活的限制 - 广告加载失败时隐藏广告按钮,仅展示金币复活 - 集成 BuffManager:开局时检查已购Buff并施加效果(护盾、双倍火力) - 移除旧的体力检查逻辑(如有) - _需求:2.1~2.2、3.2_ - [ ] 6. 创建 BuffManager — 局前Buff管理器 - 定义 Buff 类型枚举:`SHIELD`(护盾,100金币)、`DOUBLE_FIRE`(双倍火力,150金币) - 实现 `purchaseBuff(type)` 方法:检查金币余额 → 扣费 → 标记本局Buff - 实现 `getActiveBuffs()` 返回当前局已购买的Buff列表 - 实现 `clearBuffs()` 在每局结束时清除所有Buff - 实现护盾逻辑:为 PlayerTank 添加 `shield` 属性,受击时优先消耗护盾 - 实现双倍火力逻辑:开局10秒内子弹威力×2,到期后恢复 - _需求:3.1、3.2_ - [ ] 7. 创建 BuffSelectScene — 局前Buff选择界面 - 在关卡加载前(GameScene 初始化前)展示Buff选择界面 - 展示两个Buff卡片:护盾(100金币)、双倍火力(150金币),显示当前金币余额 - 点击购买时调用 BuffManager.purchaseBuff(),余额不足时提示并引导 - 提供"跳过"按钮直接进入游戏 - 护盾和双倍火力可同时购买 - 购买完成或跳过后,切换到 GameScene 开始游戏 - _需求:3.1.1~3.1.4、7.4_ - [ ] 8. 重构 ShopScene — 极简商店界面 - 重写商店界面,移除皮肤商店相关内容 - 顶部显示当前金币余额 - 展示三个商品卡片:去广告特权(¥18,已购显示"已拥有")、金币包(¥6=1000金币)、新手礼包(¥1=500金币,24小时倒计时) - 点击购买调用 PaymentManager 对应方法 - 新手礼包超过24小时后自动隐藏 - _需求:5.1~5.2、6.1~6.2、7.3_ - [ ] 9. 重构 MenuScene — 主界面商业化入口 - 移除通行证入口按钮 - 新增"领金币"按钮,显示今日剩余次数(如"🪙 领金币 3/3"),点击调用 AdManager.showDailyGoldAd() - 当日次数用完后按钮置灰,显示"明日再来" - 保留"商店"按钮入口 - 顶部常驻显示当前金币数量 - 调整按钮布局确保所有按钮可见 - _需求:7.1~7.4、4.3_ - [ ] 10. 重构 ResultScene / TeamResultScene — 结算金币发放 - 结算时计算基础金币奖励(基础值50,可根据表现浮动) - 展示"观看广告双倍金币"按钮,观看后翻倍发放 - 调用 CurrencyManager.add() 发放金币 - 移除通行证任务进度上报代码 - 保留插屏广告展示逻辑(每3局一次,去广告特权跳过) - _需求:1.1.1~1.1.2、4.4、4.2_ - [ ] 11. 简化 ComplianceManager + 注册管理器 + 国际化 - 简化 ComplianceManager:仅保留未成年人广告次数限制(每日≤5次)和消费限制(月≤¥400) - 在 `game.js` 中注册 BuffManager,移除废弃管理器的注册 - 更新 `zh.js` / `en.js`:添加局前Buff、领金币、极简商店相关文案,移除废弃文案 - _需求:8.1~8.2_