This commit is contained in:
2026-10-06 23:36:39 +08:00
parent 8592b9366c
commit 499eea39aa
10 changed files with 1445 additions and 1062 deletions
+9 -1
View File
@@ -4094,6 +4094,15 @@ MonoBehaviour:
checkInterval: 5
sendLeaveRoom: 1
showWaitingAfterExit: 1
torpedoConfigs: []
scratchCardConfig: []
bossDropConfig:
noDropWeight: 0
dropItems: []
robotKillConfig:
isEnabled: 0
intervalSeconds: 0
scenes: []
activityConfig:
id:
isDelete: 0
@@ -4131,7 +4140,6 @@ MonoBehaviour:
startTime: 0
endTime: 0
pools: []
costs:
userMaxDraw: 0
rankingRewardConfig:
isEnabled: 0
@@ -294,6 +294,14 @@ public class MonsterContral : MonoBehaviour
}
}
/// <summary>
/// ⭐ 是否延迟注册入鱼列表(子类控制,默认false=OnlyFish 创建时立即注册,现有鱼零影响)。
/// true=CreateFishManager.OnlyFish 跳过 RegisterFishInstance,
/// 由子类的激活方法(如 StealthBossControl.ActivateBoss)显式补注册。
/// 潜行Boss用:激活前不入鱼列表 → 自动锁定枚举/技能选鱼/服务端击杀通知全部找不到它。
/// </summary>
public virtual bool DeferFishRegister => false;
/// <summary>
/// 切换锁定点(不切换锁定对象)。
/// ⭐ 用于小白龙等切换模型/动画片段后锁定点也随之变化的情况:
@@ -105,8 +105,12 @@ public class MonsterControl_BossBase : MonsterContral
isLocalCoin = false;
killerSitPos = -1;
var res = FishResourcesData.fishResourcesDatasDic[fishTypeID];
if (res.showAudio != null && res.showAudio.Count > 0)
// ⭐ TryGetValue 判空:fishTypeID 未配置的 Boss(如 7005 预制体 fishTypeID=0)直接索引会抛
// KeyNotFoundException——OnEnable 是 Unity 生命周期回调,异常会中断整条 base 调用链,
// 子类(如 StealthBossControl)在 base.OnEnable() 之后的潜行初始化会全部跳过,潜行失效。
// 查不到时仅跳过出场音效,不影响其他逻辑
if (FishResourcesData.fishResourcesDatasDic.TryGetValue(fishTypeID, out var res)
&& res.showAudio != null && res.showAudio.Count > 0)
AudioManager.Instance.PlayerFX(res.showAudio[Random.Range(0, res.showAudio.Count)]);
}
@@ -1039,8 +1039,10 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
}
mc.fishenum = (FishTypeEnum)fishType.fishType;
// 按鱼类型放入对应字典
RegisterFishInstance(mc, fishType.fishType);
// ⭐ 潜行Boss(DeferFishRegister=true)跳过注册:等子类 ActivateBoss() 激活时再入列表。
// 激活前不在鱼列表 → 自动锁定枚举/技能选鱼/服务端击杀通知全部找不到此Boss
if (!mc.DeferFishRegister)
RegisterFishInstance(mc, fishType.fishType);
mc.Init(createFishData.moveLineId, spawnDic[createFishData.fishNumber].times);
@@ -1055,8 +1057,11 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
return true;
}
/// <summary>将鱼实例注册到全局字典及对应分类字典。</summary>
private void RegisterFishInstance(MonsterContral mc, int fishTypeId)
/// <summary>
/// 将鱼实例注册到全局字典及对应分类字典。
/// ⭐ public:潜行Boss(DeferFishRegister=true)由子类 ActivateBoss() 激活时显式调用补注册。
/// </summary>
public void RegisterFishInstance(MonsterContral mc, int fishTypeId)
{
// ⭐ 检测 guid 冲突:如果 guid 已存在,说明有重复出鱼(可能是 sync 模式重发),
// 旧鱼会被覆盖变成野鱼(无法通过 Id_DieFish_NotFX 销毁)
@@ -1809,6 +1814,11 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
// ⭐ 清除座位锁定引用:炮台不再对着死亡的鱼
ClearLockOnFish(fishId);
// ⭐ 死亡优先于冰冻:见 Ws_DieFish 里的同名说明,否则冰冻期间被打死的鱼
// 动画流程被 speed=0/时间轴定格卡住,可能不消失
if (isFrozen)
currGameType?.UnfreezeFishAnimations(monster);
// 👁 调试:记录每架掉金币飞机的实际坐标,便于对比"其他位置掉金币"来源
Debug.Log($"[掉金币坐标] fishId={fishId} 飞机坐标={monster.transform.position} 金币飞向={v3Point} isLocal={isLocal} 调用栈={System.Environment.StackTrace}");
@@ -2339,6 +2349,14 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
if (!dieFishCalled)
monster.DieFish(killFish);
// ⭐ 冰冻中被打死的鱼必须脱离冰冻定格(死亡优先于冰冻):
// 冰冻是把动画停住(Animator.speed=0 / Timeline 定格 / Spine timeScale=0),
// 而不少鱼的"消失"依赖动画流程推进,例如雷皇龙/金龙靠 FLZY_BOSS_AnimatorLeave
// 的 Animator 状态退出回调回池 → 不停下来状态机永不退出 → 鱼打死了也不消失。
// 放在 DieFish 之后:要覆盖掉个别 Boss 在自己的 DieFish 里设置的 animator.speed=0。
if (isFrozen)
currGameType?.UnfreezeFishAnimations(monster);
MonsterDieList.Instance.SmallHuangYiHuang(
monster.transform.position,
monster.monsterData.fishTypeConfig.fishNumber, 1000);
File diff suppressed because it is too large Load Diff
@@ -12,10 +12,10 @@
鱼阵12;-514.0376,-560.3905;-342.4539,-320.32922;-447.82025,-56.9133;-269.70093,229.08112;-377.576,434.7964;-289.7707,587.8285
鱼阵13;-111.65138,562.7413;-217.01773,314.3777;-119.17755,126.223465;-239.59624,-124.64882;-176.87817,-347.92517;-222.03519,-538.58813
鱼阵14;280.31644,565.74054;278.4989,522.11926;274.86377,485.76822;274.86377,440.3294;278.2854,385.7688;279.31238,350.85095;279.31238,313.8791;279.31238,282.0422;279.31238,245.07036;279.31238,207.0715;278.0053,169.14143;278.0053,139.91626;279.44263,110.212;279.92172,82.903244;294.77386,57.510887;312.50058,38.346848;335.97653,27.327522;361.3689,25.411118;388.19855,25.411118;413.5909,27.806625;439.94147,32.11853;464.85474,46.012463;478.26956,69.48841;484.49786,102.54639;485.93518,133.68796;485.93518,161.95493;485.93518,189.74278;486.41428,218.00975;485.45605,247.23492;484.97696,274.06458;484.01874,303.76886;485.45605,331.0776;485.54602,358.37903;485.54602,394.8239;480.0508,418.95428;478.4297,469.41025;483.88232,523.9368;483.88232,571.19324
鱼阵15;1005.8704,-35.372574;978.73755,-34.52467;951.60474,-36.220474;925.31976,-37.91628;881.2289,-37.91628;845.617,-40.459984;824.4195,-38.76418;803.9944,-37.42885;789.3941,-38.184036;757.6762,-37.42885;773.0317,-37.93231;738.293,-37.17712;719.1616,-37.17712;700.5337,-37.17712;683.91956,-37.17712;664.1906,-36.42115;644.3211,-37.61811;628.7606,-37.37872;610.8062,-37.139328;586.9379,-37.95098;565.55255,-37.49597;543.7121,-38.40599;519.14166,-37.040966;495.02625,-36.585957;469.09076,-39.771015;448.30966,-44.278168;427.562,-61.11117;415.81805,-79.51004;409.9395,-98.012085;407.20944,-118.942474;409.02948,-146.24298;419.03967,-166.26334;430.86987,-184.00867;453.6203,-197.20392;477.73575,-204.02904;502.7612,-207.2141;525.9666,-201.754;552.048,-188.72885;568.881,-169.54704;577.88464,-149.97379;580.23346,-132.35785;579.842,-111.61019;577.88464,-92.03693;564.9663,-70.11487;554.3967,-57.587982;537.9552,-46.62696;520.7307,-38.014725;502.33185,-36.840324;484.7159,-37.23179;461.61948,-41.146446;444.39502,-47.801353;433.82544,-56.805054;416.99243,-75.20392;407.05777,-111.15677;408.0689,-134.41275;407.05777,-175.36351;408.0689,-196.59723;409.08002,-219.85321;409.58563,-236.53683;408.57452,-257.26498;408.57452,-280.0154;408.06894,-302.26025;407.0578,-328.04407;407.0578,-347.25555;407.0578,-367.47815;406.05292,-387.85052;405.35944,-403.10764;405.1,-421.18533;404.47867,-446.0389;401.99332,-473.3778;401.37198,-504.44473
鱼阵155;398.26526,-501.9593;401.9933,-479.5911;402.61462,-451.63086;403.23596,-423.6706;405.35944,-403.10764;406.05292,-387.85052;407.0578,-367.47815;407.0578,-347.25555;407.0578,-328.04407;408.06894,-302.26025;408.57452,-280.0154;408.57452,-257.26498;409.58563,-236.53683;409.08002,-219.85321;408.0689,-196.59723;407.05777,-175.36351;408.0689,-134.41275;407.05777,-111.15677;416.99243,-75.20392;433.82544,-56.805054;444.39502,-47.801353;461.61948,-41.146446;484.7159,-37.23179;502.33185,-36.840324;520.7307,-38.014725;537.9552,-46.62696;554.3967,-57.587982;564.9663,-70.11487;577.88464,-92.03693;579.842,-111.61019;580.23346,-132.35785;577.88464,-149.97379;568.881,-169.54704;552.048,-188.72885;525.9666,-201.754;502.7612,-207.2141;477.73575,-204.02904;453.6203,-197.20392;430.86987,-184.00867;419.03967,-166.26334;409.02948,-146.24298;407.20944,-118.942474;409.9395,-98.012085;415.81805,-79.51004;427.562,-61.11117;448.30966,-44.278168;469.09076,-39.771015;495.02625,-36.585957;519.14166,-37.040966;543.7121,-38.40599;565.55255,-37.49597;586.9379,-37.95098;610.8062,-37.139328;628.7606,-37.37872;644.3211,-37.61811;664.1906,-36.42115;683.91956,-37.17712;700.5337,-37.17712;719.1616,-37.17712;738.293,-37.17712;773.0317,-37.93231;757.6762,-37.42885;789.3941,-38.184036;803.9944,-37.42885;1005.93445,-35.955177;966.79016,-35.955177;936.34454,-38.440536;898.4429,-38.440536;862.4052,-39.061874;822.0182,-38.440536
鱼阵16;-989.006,37.93033;-953.36816,37.93033;-908.4909,38.590286;-868.23334,35.950447;-842.49493,35.29049;-822.69617,35.950447;-803.9944,37.42885;-788.765,37.774475;-773.4623,37.774475;-757.4478,37.774475;-738.293,37.17712;-719.1616,37.17712;-700.5337,37.17712;-683.91956,37.17712;-664.1906,36.42115;-644.3211,37.61811;-628.7606,37.37872;-610.8062,37.139328;-586.9379,37.95098;-565.55255,37.49597;-543.7121,38.40599;-519.14166,37.040966;-495.02625,36.585957;-469.09076,39.771015;-448.30966,44.278168;-427.562,61.11117;-415.81805,79.51004;-409.9395,98.012085;-407.20944,118.942474;-409.02948,146.24298;-419.03967,166.26334;-430.86987,184.00867;-453.6203,197.20392;-477.73575,204.02904;-502.7612,207.2141;-525.9666,201.754;-552.048,188.72885;-568.881,169.54704;-577.88464,149.97379;-580.23346,132.35785;-579.842,111.61019;-577.88464,92.03693;-564.9663,70.11487;-554.3967,57.587982;-537.9552,46.62696;-520.7307,38.014725;-502.33185,36.840324;-484.7159,37.23179;-461.61948,41.146446;-444.39502,47.801353;-433.82544,56.805054;-416.99243,75.20392;-407.05777,111.15677;-408.0689,134.41275;-407.05777,175.36351;-408.0689,196.59723;-409.08002,219.85321;-409.58563,236.53683;-408.57452,257.26498;-408.57452,280.0154;-408.06894,302.26025;-407.0578,328.04407;-407.0578,347.25555;-407.0578,367.47815;-406.05292,387.85052;-405.35944,403.10764;-405.60162,422.02682;-406.26157,449.74512;-405.60162,480.10327;-404.94165,513.10126;-408.24146,545.4393
鱼阵166;-405.3282,535.386;-405.3282,504.17667;-404.02777,469.71637;-405.3282,436.5565;-405.3282,408.59814;-406.05292,387.85052;-407.0578,367.47815;-407.0578,347.25555;-407.0578,328.04407;-408.06894,302.26025;-408.57452,280.0154;-408.57452,257.26498;-409.58563,236.53683;-409.08002,219.85321;-408.0689,196.59723;-407.05777,175.36351;-408.0689,134.41275;-407.05777,111.15677;-416.99243,75.20392;-433.82544,56.805054;-444.39502,47.801353;-461.61948,41.146446;-484.7159,37.23179;-502.33185,36.840324;-520.7307,38.014725;-537.9552,46.62696;-554.3967,57.587982;-564.9663,70.11487;-577.88464,92.03693;-579.842,111.61019;-580.23346,132.35785;-577.88464,149.97379;-568.881,169.54704;-552.048,188.72885;-525.9666,201.754;-502.7612,207.2141;-477.73575,204.02904;-453.6203,197.20392;-430.86987,184.00867;-419.03967,166.26334;-409.02948,146.24298;-407.20944,118.942474;-409.9395,98.012085;-415.81805,79.51004;-427.562,61.11117;-448.30966,44.278168;-469.09076,39.771015;-495.02625,36.585957;-519.14166,37.040966;-543.7121,38.40599;-565.55255,37.49597;-586.9379,37.95098;-610.8062,37.139328;-628.7606,37.37872;-644.3211,37.61811;-664.1906,36.42115;-683.91956,37.17712;-700.5337,37.17712;-719.1616,37.17712;-738.293,37.17712;-751.04205,36.350967;-764.56537,37.06272;-779.8681,37.06272;-799.0855,37.774475;-820.7516,37.241558;-849.4108,35.386734;-879.97,36.03693;-914.43024,36.687122;-960.594,34.73654;-990.5029,37.33732
鱼阵15;992.5532,-40.4803;964.4487,-39.588097;934.55975,-40.0342;905.56305,-40.4803;877.9046,-40.926407;851.13837,-40.0342;832.40204,-40.926407;815.00397,-40.0342;795.82153,-40.4803;774.40857,-40.4803;754.3339,-38.249786;735.1514,-37.80368;718.6456,-37.357574;700.5337,-37.17712;683.91956,-37.17712;664.1906,-36.42115;644.3211,-37.61811;628.7606,-37.37872;610.8062,-37.139328;586.9379,-37.95098;565.55255,-37.49597;543.7121,-38.40599;519.14166,-37.040966;495.02625,-36.585957;469.09076,-39.771015;448.30966,-44.278168;427.562,-61.11117;415.81805,-79.51004;409.9395,-98.012085;407.20944,-118.942474;409.02948,-146.24298;419.03967,-166.26334;430.86987,-184.00867;453.6203,-197.20392;477.73575,-204.02904;502.7612,-207.2141;525.9666,-201.754;552.048,-188.72885;568.881,-169.54704;577.88464,-149.97379;580.23346,-132.35785;579.842,-111.61019;577.88464,-92.03693;564.9663,-70.11487;554.3967,-57.587982;537.9552,-46.62696;520.7307,-38.014725;502.33185,-36.840324;484.7159,-37.23179;461.61948,-41.146446;444.39502,-47.801353;433.82544,-56.805054;416.99243,-75.20392;407.05777,-111.15677;408.0689,-134.41275;407.05777,-175.36351;408.0689,-196.59723;409.08002,-219.85321;409.58563,-236.53683;408.57452,-257.26498;408.57452,-280.0154;408.06894,-302.26025;407.0578,-328.04407;407.0578,-347.25555;407.0578,-367.47815;406.05292,-387.85052;405.35944,-403.10764;405.1,-421.18533;404.47867,-446.0389;401.99332,-473.3778;401.37198,-504.44473
鱼阵155;398.26526,-501.9593;401.9933,-479.5911;402.61462,-451.63086;403.23596,-423.6706;405.35944,-403.10764;406.05292,-387.85052;407.0578,-367.47815;407.0578,-347.25555;407.0578,-328.04407;408.06894,-302.26025;408.57452,-280.0154;408.57452,-257.26498;409.58563,-236.53683;409.08002,-219.85321;408.0689,-196.59723;407.05777,-175.36351;408.0689,-134.41275;407.05777,-111.15677;416.99243,-75.20392;433.82544,-56.805054;444.39502,-47.801353;461.61948,-41.146446;484.7159,-37.23179;502.33185,-36.840324;520.7307,-38.014725;537.9552,-46.62696;554.3967,-57.587982;564.9663,-70.11487;577.88464,-92.03693;579.842,-111.61019;580.23346,-132.35785;577.88464,-149.97379;568.881,-169.54704;552.048,-188.72885;525.9666,-201.754;502.7612,-207.2141;477.73575,-204.02904;453.6203,-197.20392;430.86987,-184.00867;419.03967,-166.26334;409.02948,-146.24298;407.20944,-118.942474;409.9395,-98.012085;415.81805,-79.51004;427.562,-61.11117;448.30966,-44.278168;469.09076,-39.771015;495.02625,-36.585957;519.14166,-37.040966;543.7121,-38.40599;565.55255,-37.49597;586.9379,-37.95098;610.8062,-37.139328;628.7606,-37.37872;644.3211,-37.61811;664.1906,-36.42115;683.91956,-37.17712;700.5337,-37.17712;720.5193,-37.959816;738.988,-37.15683;757.0552,-38.36131;775.1224,-39.56579;793.1896,-39.56579;813.2642,-38.36131;840.1643,-39.1643;865.4584,-39.56579;893.1614,-39.1643;918.054,-37.959816;950.57495,-37.15683;973.0586,-36.755337;999.9586,-36.353844
鱼阵16;-989.006,37.93033;-953.36816,37.93033;-908.4909,38.590286;-868.23334,35.950447;-842.49493,35.29049;-822.69617,35.950447;-804.6852,37.051598;-789.93243,36.484184;-773.4623,37.774475;-756.4551,37.051598;-737.73047,37.051598;-719.1616,37.17712;-700.5337,37.17712;-683.91956,37.17712;-664.1906,36.42115;-644.3211,37.61811;-628.7606,37.37872;-610.8062,37.139328;-586.9379,37.95098;-565.55255,37.49597;-543.7121,38.40599;-519.14166,37.040966;-495.02625,36.585957;-469.09076,39.771015;-448.30966,44.278168;-427.562,61.11117;-415.81805,79.51004;-409.9395,98.012085;-407.20944,118.942474;-409.02948,146.24298;-419.03967,166.26334;-430.86987,184.00867;-453.6203,197.20392;-477.73575,204.02904;-502.7612,207.2141;-525.9666,201.754;-552.048,188.72885;-568.881,169.54704;-577.88464,149.97379;-580.23346,132.35785;-579.842,111.61019;-577.88464,92.03693;-564.9663,70.11487;-554.3967,57.587982;-537.9552,46.62696;-520.7307,38.014725;-502.33185,36.840324;-484.7159,37.23179;-461.61948,41.146446;-444.39502,47.801353;-433.82544,56.805054;-416.99243,75.20392;-407.05777,111.15677;-408.0689,134.41275;-407.05777,175.36351;-408.0689,196.59723;-409.08002,219.85321;-409.58563,236.53683;-408.57452,257.26498;-408.57452,280.0154;-408.06894,302.26025;-407.0578,328.04407;-407.0578,347.25555;-407.0578,367.47815;-406.05292,387.85052;-405.35944,403.10764;-405.60162,422.02682;-406.26157,449.74512;-405.60162,480.10327;-404.94165,513.10126;-408.24146,545.4393
鱼阵166;-405.3282,535.386;-405.3282,504.17667;-404.02777,469.71637;-405.3282,436.5565;-405.3282,408.59814;-406.05292,387.85052;-407.0578,367.47815;-407.0578,347.25555;-407.0578,328.04407;-408.06894,302.26025;-408.57452,280.0154;-408.57452,257.26498;-409.58563,236.53683;-409.08002,219.85321;-408.0689,196.59723;-407.05777,175.36351;-408.0689,134.41275;-407.05777,111.15677;-416.99243,75.20392;-433.82544,56.805054;-444.39502,47.801353;-461.61948,41.146446;-484.7159,37.23179;-502.33185,36.840324;-520.7307,38.014725;-537.9552,46.62696;-554.3967,57.587982;-564.9663,70.11487;-577.88464,92.03693;-579.842,111.61019;-580.23346,132.35785;-577.88464,149.97379;-568.881,169.54704;-552.048,188.72885;-525.9666,201.754;-502.7612,207.2141;-477.73575,204.02904;-453.6203,197.20392;-430.86987,184.00867;-419.03967,166.26334;-409.02948,146.24298;-407.20944,118.942474;-409.9395,98.012085;-415.81805,79.51004;-427.562,61.11117;-448.30966,44.278168;-469.09076,39.771015;-495.02625,36.585957;-519.14166,37.040966;-543.7121,38.40599;-565.55255,37.49597;-586.9379,37.95098;-610.8062,37.139328;-628.7606,37.37872;-644.3211,37.61811;-664.1906,36.42115;-683.91956,37.17712;-700.5337,37.17712;-719.1616,37.17712;-736.59564,35.91677;-751.9158,37.051598;-766.6685,37.051598;-779.719,36.484184;-796.174,37.051598;-820.7516,37.241558;-849.4108,35.386734;-879.97,36.03693;-914.43024,36.687122;-960.594,34.73654;-990.5029,37.33732
鱼阵17;643.92285,560.1147;522.9208,394.90024;667.1925,185.47351;471.72757,-19.299294;629.9612,-291.55405;469.40067,-540.5392
鱼阵18;-1000.9641,-128.48486;-908.4238,-132.50835;-846.0597,-128.48486;-798.59485,-130.52393;-763.16394,-127.30294;-710.06415,-128.99052;-666.5343,-127.30294;-618.2194,-127.30294;-553.7997,-127.30294;-505.4848,-130.52393;-447.1065,-141.01144;-391.50974,-147.02191;-344.92865,-168.05852;-295.34238,-208.62912;-235.23776,-228.16312;-187.15408,-195.10559;-146.58347,-147.02191;-104.510254,-115.466995;-60.934357,-86.9173;-12.85067,-68.88592;32.227783,-46.346687;80.735275,-27.45227;125.82913,-4.905342;177.36496,4.7576256;245.00574,7.978615;290.0996,14.420593;328.75146,14.420593;379.33188,22.773605;428.91818,31.789291;483.35895,43.4095;534.8948,49.85148;573.1692,55.83113;618.6405,56.293457;664.82874,37.79976;690.37317,-7.278702;692.72327,-59.662163;667.834,-104.94868;621.8615,-133.74492;579.98865,-146.62888;540.1117,-157.5402;486.57996,-172.39679;431.9234,-178.57681;367.40332,-185.28075;305.70374,-184.58728;245.00574,-198.1647;186.99713,-217.6448;134.40561,-216.1422;83.95627,-211.04866;38.862415,-217.49065;-6.2314377,-214.26965;-57.767273,-227.15361;-89.97716,-243.25856;-138.292,-269.0265;-202.7118,-281.91043;-280.01556,-294.79437;-337.99335,-285.1314;-387.00183,-271.73895;-437.84406,-285.1314;-479.71692,-314.1203;-518.3688,-355.99316;-557.0206,-401.08704;-579.56757,-442.9599;-592.5797,-504.6813;-600.6267,-565.0337
鱼阵19;1020.84033,129.0186;958.4762,133.04208;894.10034,133.04208;841.795,127.00685;798.59485,130.52393;763.16394,127.30294;710.06415,128.99052;666.5343,127.30294;618.2194,127.30294;553.7997,127.30294;505.4848,130.52393;447.1065,141.01144;391.50974,147.02191;344.92865,168.05852;295.34238,208.62912;235.23776,228.16312;187.15408,195.10559;146.58347,147.02191;104.510254,115.466995;60.934357,86.9173;12.85067,68.88592;-32.227783,46.346687;-80.735275,27.45227;-125.82913,4.905342;-177.36496,-4.7576256;-245.00574,-7.978615;-290.0996,-14.420593;-328.75146,-14.420593;-379.33188,-22.773605;-428.91818,-31.789291;-483.35895,-43.4095;-534.8948,-49.85148;-573.1692,-55.83113;-618.6405,-56.293457;-664.82874,-37.79976;-690.37317,7.278702;-692.72327,59.662163;-667.834,104.94868;-621.8615,133.74492;-579.98865,146.62888;-540.1117,157.5402;-486.57996,172.39679;-431.9234,178.57681;-367.40332,185.28075;-305.70374,184.58728;-245.00574,198.1647;-186.99713,217.6448;-134.40561,216.1422;-83.95627,211.04866;-38.862415,217.49065;6.2314377,214.26965;57.767273,227.15361;89.97716,243.25856;138.292,269.0265;202.7118,281.91043;280.01556,294.79437;337.99335,285.1314;387.00183,271.73895;437.84406,285.1314;479.71692,314.1203;518.3688,355.99316;557.0206,401.08704;579.56757,442.9599;604.409,509.23853;612.456,579.64966
@@ -4886,6 +4886,61 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
_frozenAnimSpeeds.Clear();
}
/// <summary>
/// 冰冻期间某条鱼被击杀:把这条鱼单独从冰冻定格中解除。
/// ⭐ 死亡必须优先于冰冻 —— 不少鱼的"消失"依赖动画流程往前走:
/// - 雷皇龙/金龙(QL/JL)靠 FLZY_BOSS_AnimatorLeave(Animator 状态退出回调)回池,
/// Animator.speed=0 时状态机不推进 → 状态永不退出 → 鱼打死了也不消失
/// - Timeline 驱动的 Boss 靠 Timeline 信号死亡/离场 → 根 Playable 速度 0 时信号不触发
/// - Spine 鱼靠动画播完/动画事件离场 → timeScale=0 时同样卡死
/// 其他活着的鱼保持冰冻不变。
/// </summary>
public void UnfreezeFishAnimations(MonsterContral monster)
{
if (monster == null) return;
// 1) 恢复该鱼自身的动画速度(取出即从冰冻记录移除,避免解冻时二次恢复)
foreach (var s in monster.GetComponentsInChildren<Spine.Unity.SkeletonAnimation>(true))
{
if (_frozenAnimSpeeds.TryGetValue(s, out var v)) { s.timeScale = (float)v; _frozenAnimSpeeds.Remove(s); }
}
foreach (var a in monster.GetComponentsInChildren<Animator>(true))
{
if (_frozenAnimSpeeds.TryGetValue(a, out var v)) { a.speed = (float)v; _frozenAnimSpeeds.Remove(a); }
}
foreach (var an in monster.GetComponentsInChildren<Animation>(true))
{
if (!_frozenAnimSpeeds.TryGetValue(an, out var v)) continue;
if (v is List<float> stateSpeeds)
{
int i = 0;
foreach (AnimationState state in an)
{
if (i < stateSpeeds.Count)
state.speed = stateSpeeds[i];
i++;
}
}
_frozenAnimSpeeds.Remove(an);
}
// 2) 恢复该鱼体内的 Timeline(根 Playable 速度还原 → 时间轴继续推进,信号才能触发)
foreach (var pd in monster.GetComponentsInChildren<UnityEngine.Playables.PlayableDirector>(true))
{
if (!_frozenDirectors.TryGetValue(pd, out var speed)) continue;
var graph = pd.playableGraph;
if (graph.IsValid())
{
for (int i = 0; i < graph.GetRootPlayableCount(); i++)
graph.GetRootPlayable(i).SetSpeed(speed);
}
_frozenDirectors.Remove(pd);
}
// 3) 脱掉冰壳:死亡/离场动画要能看见(冰壳是鱼的子物体,会跟着鱼一起回收)
monster.SetFreezeEffect(false);
}
/// <summary>
/// 还原冰冻期间被定格的 Timeline:恢复根 Playable 的原始速度(重新开始推进)。
/// </summary>
@@ -0,0 +1,112 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// ⭐ 潜行Boss:ActivateBoss() 触发前处于"系统不存在"状态,三重隔离——
/// ① 不入鱼列表:CreateFishManager.OnlyFish 跳过 RegisterFishInstance(DeferFishRegister=true),
/// 自动锁定枚举/技能选鱼/服务端击杀通知全部找不到此Boss
/// ② 不可被打中:出场即禁用自身及全部子物体的 Collider2D
/// (子弹 BullitMove 命中走 Collider 触碰 tag=Fish,物理层关闭后子弹直接穿过)
/// ③ 不可被锁定:isLockable=false 双保险(不入字典本来也枚举不到)
/// 由外部(动画事件/入场演出结束回调/流程代码)调用 ActivateBoss() 后恢复正常:
/// 注册入鱼列表 + 恢复碰撞 + 允许锁定。
/// 潜行期走完路线 → 静默回池(不走 Id_DieFish_NotFX:不在字典只会打 NOT_FOUND 日志且不回收,会变野鱼)。
/// ⭐ 注意:潜行期不在鱼列表,新进房玩家的活鱼同步/全屏技能/冰冻均不包含此Boss,属预期行为;
/// 激活后才正常参与所有系统。
/// </summary>
public class StealthBossControl : DefaultBossControl
{
[Header("⭐ 潜行模式(激活前不入鱼列表/不可被打/不可被锁)")]
[Tooltip("true=出场后等待 ActivateBoss() 激活后才入列表/可被打/可被锁;false=行为与 DefaultBossControl 完全一致")]
public bool stealthUntilActivated = true;
/// <summary>是否已激活(已补注册+已恢复碰撞)。OnEnable 重置供池复用。</summary>
private bool _activated;
/// <summary>潜行期禁用的碰撞器缓存(激活时恢复)</summary>
private Collider2D[] _stealthCols;
/// <summary>各碰撞器出厂时的 enabled 状态(恢复时只恢复原本就启用的,出厂禁用的不动)</summary>
private bool[] _stealthColWasEnabled;
/// <summary>
/// ⭐ 指定激活方法:调用后 Boss 进入战斗状态——
/// 补注册入鱼列表(OnlyFish 同款入口,含 guid 冲突处理与创建日志)+ 恢复碰撞 + 允许锁定。
/// 由动画事件/演出回调/流程代码在合适的时机调用。重复调用安全;
/// stealthUntilActivated=false 时调用无任何副作用。
/// </summary>
public void ActivateBoss()
{
if (_activated) return;
_activated = true;
// ⓪ 解除"系统不存在"标记(isDead 兼作潜行标记,见 OnEnable 处注释)
isDead = false;
// ① 补注册入鱼列表(fishenum 在 OnlyFish/OnEnable 已赋值,与立即注册的鱼同源同值)
CreateFishManager.Instance.RegisterFishInstance(this, (int)fishenum);
// ② 恢复潜行期禁用的碰撞器(只恢复出厂就 enabled 的)
if (_stealthCols != null)
{
for (int i = 0; i < _stealthCols.Length; i++)
{
if (_stealthCols[i] != null && _stealthColWasEnabled[i])
_stealthCols[i].enabled = true;
}
_stealthCols = null;
_stealthColWasEnabled = null;
}
// ③ 允许锁定(触发 OnLockable 事件,GameMainPanel 自动锁定可订阅)
NotifyLockable();
}
public override void OnEnable()
{
base.OnEnable();
// ⭐ 池复用重置:每次出场重新进入潜行期,等外部再次 ActivateBoss()
_activated = false;
_stealthCols = null;
_stealthColWasEnabled = null;
if (!stealthUntilActivated) return;
// 潜行期:禁用自身及全部子物体碰撞器(true=含未激活的,出场特效的碰撞也一并关闭)
_stealthCols = GetComponentsInChildren<Collider2D>(true);
_stealthColWasEnabled = new bool[_stealthCols.Length];
for (int i = 0; i < _stealthCols.Length; i++)
{
_stealthColWasEnabled[i] = _stealthCols[i] != null && _stealthCols[i].enabled;
if (_stealthCols[i] != null)
_stealthCols[i].enabled = false;
}
// 锁定双保险(base.OnEnable 里 isLockable=!needLockEvent 可能已置 true,这里显式关掉)
isLockable = false;
// ⭐ 状态层兜底(拦手动锁定的关键):isDead=true 复用"死亡鱼不可打不可锁"的既定检查——
// - 手动锁定 HandleLock 不查字典/isLockable,只查 isDead → 这里必须置 true 才拦得住;
// - 子弹命中三处入口(BullitMove 碰撞/触发/AttackFish)同样只查 isDead → 潜行期子弹穿过;
// - 即使模型切换/特效在运行时动态激活了新的 Collider2D(不在 _stealthCols 缓存内),
// 状态层依然拦截,双保险不依赖碰撞器禁用是否完整。
// 激活时在 ActivateBoss ⓪ 复位为 false,池复用时 OnEnable 也复位(base.OnEnable)
isDead = true;
}
public override void OnMoveUpdata()
{
// ⭐ 潜行期走完路线:静默回池——
// 不在鱼列表,Id_DieFish_NotFX(guid) 只会打 NOT_FOUND 日志且不回收 → 变野鱼,
// 所以这里直接回池(isMove=false 防下一帧再进,Pool.Return 触发 OnDisable 复位)
if (stealthUntilActivated && !_activated
&& moveTime >= monsterData.moveLine.moveTime)
{
isMove = false;
Pool.Instance.Return(gameObject);
return;
}
base.OnMoveUpdata();
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a15e2f636cbc07e45bd36e39a3ff3ec6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: