This commit is contained in:
2026-07-21 01:06:09 +08:00
parent 285dd90e53
commit a8b4691d1e
@@ -2425,7 +2425,12 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
return 1;
}
/// <summary>按档位索引设置炮台消耗(直接对齐 consumeGoldNum,避免触发音效/SyncCannonMultiple)</summary>
/// <summary>
/// 按档位索引设置 bot 炮台消耗。
/// 同时更新底层数据 consumeGoldNum、文本显示,并广播给其他客户端,
/// 保证所有客户端的 bot 炮倍一致(发射子弹扣金币、打中鱼计算奖励都用最新值)。
/// 不走 SyncCannonMultiple(那个用的是本地玩家 currSitData.posID,不能给 bot 用)。
/// </summary>
private void ApplyBotLevelIndex(SitPosData sit, int targetIndex)
{
int count = GetPaoBeiCount();
@@ -2434,6 +2439,19 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
sit.consumeGoldNum = paoBeiList[targetIndex];
if (sit.tMP_TurretConsumeNum != null)
sit.tMP_TurretConsumeNum.text = sit.consumeGoldNum.ToString();
// ⭐ 同步 indexConsume,保持档位索引与 consumeGoldNum 一致
sit.SyncIndexByConsume(sit.consumeGoldNum);
// ⭐ 广播 bot 炮倍变化给其他客户端(用 bot 自己的 sitPos),
// 接收端 SyncGameData_ChangeCannonMultiple 会根据 sitPos 更新对应座位
var sgd = new SyncGameData
{
sitPos = sit.posID,
frameType = FrameDataType.changeCannonMultiple,
time = BeijingTimeManager.Instance.CurrentTimestampMs,
frameData = new FrameData_ChangeCannonMultiple { cannonMultiple = (int)sit.consumeGoldNum }
};
WebSocketSendList.SyncGameData(sgd);
}
/// <summary>退出条件检查:金币>设定 或 金币<设定</summary>