chore(bridge): 删除桥接包的提交记录和Git属性配置 删除了 .codely-bridge-commit 文件中存储的提交哈希值 移除了 .gitattributes 文件中的行结束符配置规则 ```
13 KiB
13 KiB
召唤之战-核心玩法塔防版
版本:V1.0(2026-09-24 定稿)
定位:竖版手机单机休闲策略小游戏
单局时长:2~4 分钟
核心目标:在波次进攻中守住己方半场,出战英雄不被同时全灭
取代关系:本方案取代《召唤之战 - 核心玩法拆家版.md》(该文档已标记作废,拆家版存档到分支,脚本保留作素材)
一、核心定位
一句话规则:开局在己方半场网格部署固定英雄阵容 → 敌人从上方按波次进攻 → 英雄自动走位交战 → 玩家手动放全屏技能 + 选增益卡 → 撑过波次。
- 英雄由 AI 自动走位和作战,玩家不微操走位;
- 玩家的全部操作只有两类:手动释放全屏技能、从 3 选 1 中挑增益卡;
- 与同类游戏的差异:
- 对比 PvZ:英雄会走位自动交战,不是站桩塔;有英雄死亡/复活与全灭判负;
- 对比皇室战争:没有基地/推塔,胜负只看英雄存活;没有实时 PVP 数据强一致。
二、单局战斗结构
开局部署阶段
选择出战英雄(默认 5 个,可配置)
→ 点到/拖到己方半场网格(默认近战在前、远程在后,也可手动摆)
→ 点「开始」进入战斗
防守阶段(循环)
敌人从上方按波次生成 → 英雄自动走位接敌 → 击杀计数累积
→ 每累计 N 个击杀 → 弹出 3 选 1 增益卡
→ 玩家在关键波次手动释放全屏技能
→ 英雄死亡 20 秒后复活;每局 2 次「看广告立即复活」
结束阶段
场上全部出战英雄同时全灭 → 濒死窗口(3~5 秒)→ 窗口结束仍全灭 → 本局失败
撑过本关全部波次 → 通关结算(碎片 / 金币 / 抽卡次数)
三、战场与部署
- 竖版 9:16;沿用现有正交俯视相机方案(约 43°,orthoSize 按取景微调);
- 战场为纵向长方形,敌人在 Z 轴正方向(上方)生成,己方在 Z 轴负方向(下方);
- 部署区 = 己方半场靠后的网格,建议 6 列 × 3 行、格距约 2.5~3 米(Phase 1 建场景时按取景微调);
- 默认摆放规则:近战在前排(靠近敌人一侧)、远程/法师在后排;
- 出战英雄数量默认 5,数据结构支持可变(关卡/玩法可指定上限);
- 网格占位检测 + 吸附复用
BattleSetupManager的布阵实现。
四、英雄行为规则
4.1 会走位自动交战
英雄复用 UnitBase 的寻敌 / 攻击 / 寻路逻辑(NavMesh + 根运动),会主动走向敌人开打。
4.2 格位锚点 + 追击上限(leash)—— 必须补的规则
因为英雄会走位、且没有基地,若完全用 UnitBase 现有的「视野内最近敌人就追」,英雄会一路推向敌人生成点,阵型瓦解、被逐个点掉。规则:
- 每个英雄绑定自己的初始格位作为锚点;
- 英雄最多离开锚点 6~8 米(建议 7,待调);
- 超出上限 → 放弃追击、返回锚点待机;
- 复活后回到自己的锚点格位再重新接敌;
- 锚点机制做成
UnitBase的可选开关(默认关闭),不影响旧场景。
4.3 目标锁定
沿用现有规则:无有效目标时才寻敌;锁定后保持;目标死亡 / 失活 / 离开攻击范围才解锁。英雄在本玩法中没有「使命建筑」,只做单位寻敌。
五、胜负判定
- 无基地 / 核心,胜负只看英雄存活;
- 判负条件:同一时刻场上全部出战英雄都处于死亡态;
- 4 死 1 活不算;英雄 20 秒后复活,因此判负通常发生在「一波把全部英雄同时打死」的瞬间;
- 濒死窗口:全灭时不立即结束,进入 3~5 秒(建议 4) 窗口;
- 窗口内有英雄自然复活、或玩家使用「看广告立即复活」→ 继续本局;
- 窗口结束仍全灭 → 本局结束(失败);
- 看广告立即复活:每局 2 次,可立即复活全部(或指定)英雄;Phase 1 先留接口,不接广告 SDK;
- 通关:撑过本关全部波次即胜利。
六、波次系统
6.1 波次定义
- 每关由若干波次组成,波次用 ScriptableObject 描述(敌兵种类、数量、生成间隔、生成列);
- 复用封存的
WaveSpawner作为基础; - 波次之间可有短暂间歇(喘息 + 看增益卡)。
6.2 敌人构成方案
采用「角色单位 + 小怪」混合,但小怪不做多种模型——1 个底模 + 大小 / 颜色 / 行为变体:
- 底模直接复用现有蓝色怪物(量产低价单位,已计划减面);
- 只调三个参数:体型档位、颜色 tint、攻击方式;
- 精英波直接用现有 9 个角色;Boss 复用现有大体型单位(如石巨人)加配件,不新做模型。
| 变体 | 体型 | 颜色 | 行为 | 出现章节 / 用途 |
|---|---|---|---|---|
| 快速兵 | 小 (0.7x) | 绿 | 近战、移速快、血少 | 第 1 章起,前期杂兵 |
| 远程兵 | 中 (1.0x) | 蓝 | 远程投射 | 第 1 章起,逼英雄不能站桩 |
| 自爆兵 | 小 (0.8x) | 红 | 冲脸自爆 AOE | 第 2 章起,反扎堆 |
| 重甲兵 | 大 (1.3x) | 灰 | 高血、低速 | 第 2 章起,前排肉 |
| 辅助兵 | 中 (1.0x) | 黄 | 给周围加速 / 回血 | 第 3 章起 |
| 精英 | 大 (1.5x) | 紫 | 复用现有角色 | 各章精英波 |
| Boss | 特大 (2.0x) | 酒红 | 石巨人 + 配件 | 章节关底 |
章节差异靠新行为(飞行、治疗、护盾)而不是新模型,控制制作量。
注意:蓝色怪物网格局部缩放极小(约 0.02,被放大上百倍),做描边 / 变体时需同步调整描边材质与缩放,否则描边会巨大化。
七、战斗内增益(3 选 1 特效卡)
- 触发:累计击杀达到阈值(建议每 20~30 个,待调)后弹出 3 选 1;
- 形式:从卡池随机 3 张,玩家选 1,立即生效(可选持续到本局结束);
- 首版卡池(4 种):加攻击 / 回复血量 / 加攻速 / 加技能积攒速度;
- 后续扩展:加射程、加暴击、召唤援军、短时无敌等;
- 注意:增益卡可以加「技能积攒速度」,但元成长升级不能加——两者是两个独立数值字段,不要混用;
- 需要有叠加上限 / 递减,避免长局数值失控。
八、玩家技能系统(战斗主操作)
- 获取:只能通过抽卡 / 签到获得(不通过升级解锁);
- 首版技能:全屏伤害、治疗、冰冻(范围 / 持续);
- 积攒:普攻命中积攒(近战 / 远程都算)——这样「攻速增益」会间接加速技能,形成 build 联动;具体每次命中积攒量待调;
- 释放:手动按钮,有 CD 或消耗满槽能量;
- 冰冻 / 眩晕复用现有
StatusEffectController。
九、元成长系统(Phase 2 起,Phase 1 不做)
9.1 卡牌与稀有度
稀有度 = 机制复杂度,不是数值强度:
| 边框 | 稀有度 | 定位 | 升级难度 |
|---|---|---|---|
| 蓝 | 普通 | 纯数值 | 低 |
| 紫 | 稀有 | 多一个技能效果 | 中 |
| 橙 | 史诗 | 改变技能形态 | 高 |
| 酒红 | 传奇 | 改变玩法规则 | 最高 |
- 边框顺序:蓝 < 紫 < 橙 < 酒红(酒红 = 传奇);
- 稀有度只让卡「更好玩一点、更强一点」,主要靠更难升级来平衡。
9.2 碎片 / 解锁 / 升级
- 解锁:需要 5 张碎片;
- 升级:每级所需碎片递增,稀有度越高基数越大(具体曲线待定);
- 升级增加:生命、普攻伤害、技能伤害、解锁新的技能效果;
- 升级不增加:普攻积攒技能速度(这条杠杆只留给战斗内增益卡)。
9.3 抽卡
- 抽卡次数:通关获得 1 次,看广告翻倍;
- 全屏技能只能抽卡 / 签到获取;
- 传奇卡(酒红):主线高难度复刷才有概率掉落,或通过抽卡;
- 建议教学关直接送 1~2 个技能,保证玩家早期能体验技能系统。
9.4 难度滑条
- 每关可调难度倍数(建议 1.0x~3.0x);
- 主线推进用固定基线难度(卡点在这里);
- 刷碎片 / 金币可自由调难度,难度越高收益倍率越高(传奇碎片只在高倍率掉);
- 两条线分开,避免「调低难度就绕过卡点」。
9.5 关卡章节
- 主线按章节推进,每章适当提升难度并解锁不同卡牌;
- 每章引入新机制(新敌兵行为),不只是数值放大;
- 大关是卡点(获取 / 结算碎片的关键关),用于推动玩家升级、看广告。
9.6 无尽模式
- 按波次给金币(升级卡组的消耗来源);
- 波次无限递增,可调难度以适配高等级玩家;
- 定位:金币来源;主线复刷 → 碎片来源。
9.7 名义 PVP(异步竞技场)
- 名义 PVP:不做数据强一致,不做邀请对战;
- 可获取「同等级玩家的阵容和摆放位置」(无后端时先用预设 + 随机偏移模拟);
- 结果可以对玩家有利(甚至两边都赢),但本地必须有段位 / 奖励变化,否则玩家没有动力;
- 参考形态:异步竞技场(剑与远征式)。
9.8 疲劳系统
- 单机 + 无挂机奖励的前提下,硬锁疲劳意义不大、易显得纯惩罚;
- 建议:要么不做;要么只作用于无尽模式,且用「收益衰减」(超过 N 次后金币 / 碎片打折)而不是「不能玩」。
十、数值基准
- 英雄基础属性沿用《角色数值设计.md》的 1 级基准表与升级成长建议;
- 敌人强度按「章节基线 × 难度倍数」计算;
- 波次强度建议曲线(待调):第 1 章 3~5 波,敌人数量与质量线性上升,末尾一波含精英 / Boss。
十一、UI 布局
┌──────────────────────────────┐
│ 顶部:波次进度 / 击杀计数 / 暂停 │
│ │
│ 战场(2.5D) │
│ 上方:敌人生成区 │
│ 下方:己方半场部署网格 │
│ │
├──────────────────────────────┤
│ 技能按钮(全屏技能,CD / 能量) │
└──────────────────────────────┘
- 部署阶段:底部为出战英雄卡组 + 「开始」按钮;
- 战斗阶段:底部为全屏技能按钮;3 选 1 增益卡为战斗内弹窗(覆盖式);
- 单位头顶血条沿用
WorldHealthBar,伤害数字沿用DamageNumber。
十二、开发落地
12.1 可直接复用
| 系统 | 现有实现 |
|---|---|
| 单位行为(寻敌 / 攻击 / 寻路 / 根运动) | UnitBase |
| 卡牌与升级数据 | CharacterData / PlayerCharacterData / PlayerDataManager |
| 能量 / 资源 | ManaSystem |
| 投射物 | Projectile |
| 血条与伤害数字 | WorldHealthBar / DamageNumber |
| 控制效果(冰冻 / 眩晕) | StatusEffectController |
| 网格布阵(吸附 / 占位) | BattleSetupManager |
| 波次刷怪 | WaveSpawner(封存中) |
| 相机 | CameraFollow / 现有正交相机方案 |
| 固定卡组与轮转 | BattleDeckCycle / CastleSpawnManager |
12.2 需要新做
- 波次关卡数据(ScriptableObject:敌兵构成 / 间隔 / 生成列);
- 英雄格位锚点 + 追击上限(
UnitBase可选开关); - 击杀计数 + 3 选 1 增益卡系统与卡池;
- 全屏技能按钮 + 普攻命中积攒能量;
- 胜负判定(全灭 + 濒死窗口 + 广告复活接口)。
12.3 封存 / 不再作为主线
- 拆家版:
AttackTargetController攻击标志、CrystalMineCapture据点争夺、城堡拆家逻辑 —— 存档到分支,脚本保留作素材; BuildingPlacementManager/Barracks/GoldMine/SummonerDuelManager—— 封存素材。
12.4 分阶段
- Phase 1(垂直切片,只做 1 个战斗场景):网格部署 5 英雄 + 3 波敌人 + 3 选 1 增益 + 全屏技能 + 胜负判定。不碰抽卡 / 碎片 / 升级 / 关卡 / 无尽 / PVP / 疲劳 / 广告 SDK。
- Phase 2:元成长(碎片 / 升级 / 抽卡)+ 第一章关卡。
- Phase 3:无尽 + 难度滑条。
- Phase 4:名义 PVP、疲劳、签到、广告。
十三、待确认项
- 技能积攒:确认「普攻命中积攒」(当前建议);
- 追击上限 leash 数值(当前建议 7 米);
- 增益卡叠加上限与递减规则;
- 疲劳系统是否做(当前建议不做或只作用于无尽);
- 网格尺寸与相机取景(Phase 1 建场景时确定)。