7.2 KiB
7.2 KiB
实施计划:坦克大战 — 极简商业化
前置说明:项目中已存在旧版复杂商业化代码(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.16.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
- 定义 Buff 类型枚举:
-
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.16.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