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.
 
 
 
 
AdLike2048/docs/需求-铲子开挖.md

2.2 KiB

需求:铲子开挖(还原)与拆除区域解锁

状态:已实现

对照基线:老项目 22AdLikeXy

目标

  1. 拆除「五行数字合成/拖放解锁区域」玩法。
  2. 还原老项目「铲子开挖可开挖地块」主链。
  3. 还原局内铲子广告。
  4. 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;回池前停动画并复位。

铲子广告

同时满足才展示:

  1. 己方无可放置 Put
  2. 背包有空位且无铲
  3. 本局广告剩余次数 > 0

与门神:Const 盾牌触发距离内有怪优先门神;无威胁时铲子可展示。看广告后按空位发 1~2 把铲飞入背包。

本轮不做掘宝铲 / 被动产铲;无掘宝态时广告图标固定普通铲。

不做

  • 掘宝铲、被动产铲
  • 批量改地图预制体中的残留 _unlockAreaId 序列化(引擎忽略即可)
  • Level.unlockland* 配表清理(代码不再读取,表由策划后续清)