You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
需求:铲子开挖(还原)与拆除区域解锁
状态:已实现
对照基线:老项目
22AdLikeXy
目标
- 拆除「五行数字合成/拖放解锁区域」玩法。
- 还原老项目「铲子开挖可开挖地块」主链。
- 还原局内铲子广告。
- MapGrid 字段语义回到「是否可开挖」;去掉「解锁区域 ID」。
配表
| 项 | 值 |
|---|---|
| 铲子 Text.id | 3003 |
| 铲子 Text.type | 14(不可复用 type=4,4 为五行火) |
| 铲子广告每局上限 | Const id=10 / BattleShovelAdMax |
逻辑判定以 Text.type === 14 为准,常量 SHOVEL_WEAPON2_ID = 3003 作辅助。
MapGrid
- 编辑器显示名:是否可开挖;序列化字段仍为
_isCanBeDig(既有地图勾选保持)。 - 玩法上删除「解锁区域 ID」;
_unlockAreaId仍序列化(编辑器隐藏),仅用于换皮:现有地图 digSprite=土地块、putSprite=空地白格、waitUnlocked=待解锁地块。 - 皮映射:可开挖默认 无皮(
null,露深色底);已揭示宝箱格才用waitUnlockedSprite(待解锁);可放置 → 区域格用digSprite(浅色土地块)、否则putSprite。宝箱揭示见docs/需求-开挖宝箱.md。 isCanBeDig && !isCanPutText→ Dig(可铲);铲后 Dig→Put。
开挖流程
背包铲子 → 拖到空 Dig 格 → 扣铲(不挂字)→ Dig→Put → 音效 + 铲 Spine + 格子 statusSprite 土地块(digSprite)fillRange 0→1 + openSpine 冒烟。
表现资源
铲.prefab独立预制体,不进textGrid.prefab。- 运行时
gg.res.getNode/putNode对象池挂到 TextGrid;回池前停动画并复位。
铲子广告
同时满足才展示:
- 己方无可放置 Put
- 背包有空位且无铲
- 本局广告剩余次数 > 0
与门神:Const 盾牌触发距离内有怪优先门神;无威胁时铲子可展示。看广告后按空位发 1~2 把铲飞入背包。
本轮不做掘宝铲 / 被动产铲;无掘宝态时广告图标固定普通铲。
不做
- 掘宝铲、被动产铲
- 批量改地图预制体中的残留
_unlockAreaId序列化(引擎忽略即可) Level.unlockland*配表清理(代码不再读取,表由策划后续清)