This commit is contained in:
2026-08-28 22:50:26 +08:00
parent 1bff599e58
commit 92952e9b71
7 changed files with 59 additions and 12 deletions
@@ -48,6 +48,7 @@ public class ZuanTouXie_DieEvent : DieEffect_TSY
protected SitPosData _sit; // 击杀者座位
protected GameObject _paoTai; // 生成的钻头炮台
protected GameObject _normalTurret; // 被隐藏的普通炮台(恢复用)
protected bool _zhanShenHidden; // 是否隐藏了击杀者的战神(恢复用,炮台/战神二选一)
protected bool _endShown; // 结算(BJEndUI)只显示一次
/// <summary>
@@ -88,7 +89,14 @@ public class ZuanTouXie_DieEvent : DieEffect_TSY
if (paoBei <= 0 && _sit.consumeGoldNum > 0) paoBei = (int)_sit.consumeGoldNum;
// ===== 1. 炮台被钻头覆盖:关普通炮台 → 生成钻头炮台 → 禁普通开火 =====
// ===== 1. 炮台被钻头覆盖 → 生成钻头炮台 → 禁普通开火 =====
// ⭐ 炮台/战神二选一:隐藏的是"当前显示的那个"——战神出战(currentZhanShen!=null)时隐藏战神
// (turretParent 本来就是隐藏状态),否则隐藏普通炮台 turretParent
if (_sit.currentZhanShen != null)
{
_zhanShenHidden = true;
_sit.currentZhanShen.SetActive(false);
}
_normalTurret = _sit.turretParent != null ? _sit.turretParent.gameObject : null;
if (_normalTurret != null) _normalTurret.SetActive(false);
@@ -139,12 +147,39 @@ public class ZuanTouXie_DieEvent : DieEffect_TSY
EffectPool.Instance.Return(gameObject);
}
/// <summary>恢复普通炮台:销毁特殊鱼炮台 + 恢复 turretParent + 解除普通开火禁用</summary>
/// <summary>
/// 恢复击杀者座位炮台显示(爆奖结束后调用)。
/// ⭐ 炮台/战神二选一:恢复的是【爆奖前的状态】——
/// 击杀者装备着战神(currentZhanShen != null) → 战神继续显示,炮台保持隐藏;
/// 没装备战神 → 恢复普通炮台 turretParent。
/// </summary>
protected void RestoreTurret()
{
if (_sit != null) _sit.isDrillActive = false;
if (_paoTai != null) Destroy(_paoTai);
if (_normalTurret != null) _normalTurret.SetActive(true);
if (_normalTurret == null) return;
// ⭐ 恢复爆奖前状态(炮台/战神二选一):
// 隐藏过战神 → 重新显示战神(turretParent 保持隐藏,本来就是战神模式)
// 没隐藏过战神 → 恢复普通炮台 turretParent
if (_zhanShenHidden)
{
_zhanShenHidden = false;
_normalTurret.SetActive(false); // 战神模式下 turretParent 本来就隐藏
if (_sit.currentZhanShen != null)
_sit.currentZhanShen.SetActive(true);
return;
}
// 战神在爆奖期间才上场的(极端情况):保持战神显示,不硬显炮台
if (_sit.currentZhanShen != null && _sit.currentZhanShen.activeSelf)
{
_normalTurret.SetActive(false);
return;
}
// 无战神:恢复普通炮台
_normalTurret.SetActive(true);
}
/// <summary>
@@ -274,9 +309,21 @@ public class ZuanTouXie_DieEvent : DieEffect_TSY
private void OnDestroy()
{
StopAllCoroutines();
// 兜底:事件被外部销毁时恢复座位状态
if (_sit != null) _sit.isDrillActive = false;
// 兜底:事件被外部销毁时恢复座位状态(炮台/战神二选一,按爆奖前状态恢复)
if (_sit != null)
{
_sit.isDrillActive = false;
if (_zhanShenHidden)
{
_zhanShenHidden = false;
if (_normalTurret != null) _normalTurret.SetActive(false);
if (_sit.currentZhanShen != null) _sit.currentZhanShen.SetActive(true);
}
else if (_sit.currentZhanShen == null || !_sit.currentZhanShen.activeSelf)
{
if (_normalTurret != null) _normalTurret.SetActive(true);
}
}
if (_paoTai != null) Destroy(_paoTai);
if (_normalTurret != null) _normalTurret.SetActive(true);
}
}
@@ -1827,7 +1827,7 @@ MonoBehaviour:
skeletonAnimation: {fileID: 0}
old_CurrAnimation: {fileID: 0}
new_CurrAnimation: {fileID: 2419319936390476863}
currTurretType: 0
currTurretType: 3
isFrenzy: 0
idleAnim:
attackAnim:
@@ -613,7 +613,7 @@ MonoBehaviour:
skeletonAnimation: {fileID: 0}
old_CurrAnimation: {fileID: 0}
new_CurrAnimation: {fileID: 1341473795112683486}
currTurretType: 0
currTurretType: 3
isFrenzy: 0
idleAnim:
attackAnim:
@@ -1157,7 +1157,7 @@ MonoBehaviour:
skeletonAnimation: {fileID: 0}
old_CurrAnimation: {fileID: 0}
new_CurrAnimation: {fileID: 3494732693420063387}
currTurretType: 0
currTurretType: 3
isFrenzy: 0
idleAnim:
attackAnim:
@@ -1532,7 +1532,7 @@ MonoBehaviour:
skeletonAnimation: {fileID: 0}
old_CurrAnimation: {fileID: 0}
new_CurrAnimation: {fileID: 8661363738911940257}
currTurretType: 0
currTurretType: 3
isFrenzy: 0
idleAnim:
attackAnim:
@@ -3767,7 +3767,7 @@ MonoBehaviour:
skeletonAnimation: {fileID: 0}
old_CurrAnimation: {fileID: 0}
new_CurrAnimation: {fileID: 3827418405087986554}
currTurretType: 0
currTurretType: 3
isFrenzy: 0
idleAnim:
attackAnim:
@@ -943,7 +943,7 @@ MonoBehaviour:
skeletonAnimation: {fileID: 0}
old_CurrAnimation: {fileID: 0}
new_CurrAnimation: {fileID: 5075593569239273572}
currTurretType: 0
currTurretType: 3
isFrenzy: 0
idleAnim:
attackAnim: