This commit is contained in:
2026-07-24 23:47:50 +08:00
parent e7f8337d10
commit bc69c6c837
12 changed files with 320 additions and 108 deletions
@@ -654,10 +654,10 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
return;
foreach (var item in bossList)
{
if (item.fishNumber == "11030")
if (item.fishNumber == "11026")
item.isCreate = 2;
if (item.fishNumber == "11027")
if (item.fishNumber == "11035")
item.isCreate = 2;
// if (item.fishNumber == "11030")
// item.isCreate = 2;
@@ -2096,7 +2096,10 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
public void FreezeAllFish()
{
isFrozen = true;
// ⭐ 两个字典必须同步清空,否则 frozenFishIsMoves 残留旧数据
// 会导致下次解冻时用旧值覆盖 isMove 但不恢复 currState
frozenFishStates.Clear();
frozenFishIsMoves.Clear();
// 只遍历全量字典 fishDatas_hashCodekey(已包含所有鱼),不重复遍历子字典
if (fishDatas_hashCodekey != null)
@@ -2131,16 +2134,25 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
MonsterContral m = kv.Value;
if (m == null || !m.gameObject.activeInHierarchy) continue;
// ⭐ 只恢复本次冰冻记录的鱼(frozenFishStates 有记录才恢复)
// 避免用 frozenFishIsMoves 的旧数据覆盖未冻结鱼的 isMove
if (!frozenFishStates.TryGetValue(m.guid, out var prevState))
continue;
// 恢复冰冻前的 isMove 和 currState
if (frozenFishIsMoves.TryGetValue(m.guid, out var prevIsMove))
m.isMove = prevIsMove;
else
m.isMove = true; // 兜底:没记录就恢复为可移动
m.SetFreezeEffect(false);
if (frozenFishStates.TryGetValue(m.guid, out var prevState))
m.ChangeState(prevState);
m.ChangeState(prevState);
}
}
// ⭐ 两个字典同步清空
frozenFishStates.Clear();
frozenFishIsMoves.Clear();
}
#endregion
}