This commit is contained in:
2026-09-27 20:34:42 +08:00
parent 21de07a56d
commit 2aa6a8f352
7 changed files with 171 additions and 21 deletions
@@ -59,6 +59,8 @@ namespace Assets.MyGame.Scripts.Net.WebResponses
changeZhanShen=13,
/// <summary>表情包:某玩家发送表情(spine动画/文字),广播给其他客户端在对应座位显示</summary>
biaoQing=14,
/// <summary>钻头蟹/激光蟹释放:击杀者点击(或超时)发射钻头/激光,广播给房间所有客户端(含发送者回广播),各端统一时刻发射</summary>
zuanTouRelease=15,
}
[Serializable]
public class FireCannonSendData
@@ -210,6 +212,22 @@ namespace Assets.MyGame.Scripts.Net.WebResponses
public string content;
}
/// <summary>
/// 钻头蟹/激光蟹释放帧数据(frameType=zuanTouRelease)。
/// 击杀者点击(或超时)时由击杀者客户端发送(机器人击杀由房主代发),
/// 服务器广播给房间所有人(含发送者回广播),各客户端按 fishId 匹配本地爆奖事件统一发射。
/// </summary>
[Serializable]
public class FrameData_ZuanTouRelease : FrameData
{
/// <summary>击杀者 userId</summary>
public string userId;
/// <summary>死亡的特殊鱼 ID(各端用它匹配本地正在等待释放的爆奖事件实例)</summary>
public string fishId;
/// <summary>发射时的炮台源角度(下方座位坐标系,接收端按该座位在本端显示位置用 SeatMirror 还原)</summary>
public float angle;
}
// ================================================================
// OnFishSpawn 事件数据结构 (服务端出鱼,破坏性替代 createFish 帧同步)
// ================================================================
@@ -383,6 +383,10 @@ namespace Assets.MyGame.Scripts.Net
case FrameDataType.baoJiangEnd:
EventCenter.Instance.EventTrigger<SyncGameData>(ConstEventString.BaoJiangEnd, syncGameData);
break;
// ⭐ 钻头蟹/激光蟹释放:击杀者点击(或超时)广播,各端(含击杀者回广播)统一时刻发射钻头/激光
case FrameDataType.zuanTouRelease:
EventCenter.Instance.EventTrigger<SyncGameData>(ConstEventString.SyncGameData_ZuanTouRelease, syncGameData);
break;
default:
break;
}
@@ -310,7 +310,8 @@ public partial class WebSocketSendList
{
case FrameDataType.fireBullet:
case FrameDataType.rotateTurrect:
// ⭐ 开火/旋转实时发送,和开炮一样立即广播,保证炮台旋转流畅
case FrameDataType.zuanTouRelease:
// ⭐ 开火/旋转/钻头释放实时发送,和开炮一样立即广播,保证各端同时刻触发
SendImmediate(BuildJson(sgd));
return;