first commit

This commit is contained in:
jakciehan
2026-04-10 22:59:39 +08:00
commit cc2e7b9bb0
89 changed files with 23631 additions and 0 deletions
@@ -0,0 +1,128 @@
# 实施计划:坦克大战 — 极简商业化
> **前置说明**:项目中已存在旧版复杂商业化代码(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_