Initial progress syncing + many existing bugs

This commit is contained in:
2026-01-15 23:00:15 +01:00
parent fb902aaddc
commit c41491e55e
11 changed files with 345 additions and 230 deletions

View File

@@ -69,7 +69,7 @@ namespace Marro.PacManUdon
networkManager.Initialize();
ghostManager.Initialize(maze.ghostTargets, pacMan, this);
pacMan.Initialize(playerInput, this);
pacMan.Initialize(playerInput, maze.pacManStart, this);
bonusFruit.Initialize();
pelletManager.Initialize();
statusDisplay.Initialize();
@@ -112,6 +112,10 @@ namespace Marro.PacManUdon
public void StartGameButtonPressed()
{
Debug.Log($"{gameObject} Start Game Button was pressed!");
if (networkManager.IsOwner)
{
networkManager.SendEvent(NetworkEventType.StartGameButtonPressed);
}
StartTimeSequence(PacManTimeSequence.StartNewGame);
}
@@ -197,6 +201,8 @@ namespace Marro.PacManUdon
public void GotPowerPellet()
{
Debug.Log($"{gameObject} GotPowerPellet");
if (gameState == PacManGameState.AttractMode)
{
TimeSequenceSkipToNextStep();
@@ -224,6 +230,8 @@ namespace Marro.PacManUdon
public void GhostCaught(int scoreBonus)
{
Debug.Log($"{gameObject} GhostCaught");
if (gameState == PacManGameState.AttractMode)
{
TimeSequenceSkipToNextStep();
@@ -237,7 +245,7 @@ namespace Marro.PacManUdon
public void PacManCaught()
{
StartTimeSequence(PacManTimeSequence.PacManCaught);
//StartTimeSequence(PacManTimeSequence.PacManCaught);
}
public void NoGhostsScared()
@@ -252,6 +260,8 @@ namespace Marro.PacManUdon
public void Intermission2PoleUpdate()
{
Debug.Log($"{gameObject} Intermission2PoleUpdate");
TimeSequenceSkipToNextStep();
}
@@ -400,21 +410,26 @@ namespace Marro.PacManUdon
public override void AppendSyncedData(byte[][] data, ref int offset, NetworkEventType eventType)
{
data[offset++] = new byte[] { NetworkManager.Int32ToByte((int)gameState) };
data[offset++] = BitConverter.GetBytes(currentlyInTimeSequence);
data[offset++] = new byte[] { NetworkManager.Int32ToByte((int)currentTimeSequence) };
data[offset++] = BitConverter.GetBytes(timeSequenceProgress);
//data[offset++] = new byte[] { NetworkManager.Int32ToByte((int)gameState) };
//data[offset++] = BitConverter.GetBytes(currentlyInTimeSequence);
//data[offset++] = new byte[] { NetworkManager.Int32ToByte((int)currentTimeSequence) };
//data[offset++] = BitConverter.GetBytes(timeSequenceSecondsPassed);
}
public override bool SetSyncedData(byte[] data, ref int offset, NetworkEventType eventType)
{
SetGameState((PacManGameState)data[offset++]);
if (eventType == NetworkEventType.StartGameButtonPressed)
{
StartGameButtonPressed();
}
var currentlyInTimeSequence = BitConverter.ToBoolean(data, offset++);
var currentTimeSequence = (PacManTimeSequence)data[offset++];
var timeSequenceProgress = BitConverter.ToSingle(data, offset);
offset += 4;
TimeSequenceSyncWithRemote(currentlyInTimeSequence, currentTimeSequence, timeSequenceProgress);
//SetGameState((PacManGameState)data[offset++]);
//var currentlyInTimeSequence = BitConverter.ToBoolean(data, offset++);
//var currentTimeSequence = (PacManTimeSequence)data[offset++];
//var timeSequenceSecondsPassed = BitConverter.ToSingle(data, offset);
//offset += 4;
//TimeSequenceSyncWithRemote(currentlyInTimeSequence, currentTimeSequence, timeSequenceSecondsPassed);
return true;
}