private void SendEndOfTurnState(EndOfTurnState state) { NetworkTracker.ClientSendEoT(new EndOfTurnStateMessage() { state = state, }); eotReadyCheck.Active = true; }
private void OnEoTReceived(int connection, EndOfTurnStateMessage msg) { if (eotReadyCheck.PlayerNotifiedReady(connection, true, msg)) { EndOfTurnState hostEoT = eotReadyCheck.GetHostData <EndOfTurnStateMessage>().state; EndOfTurnState clientEoT = eotReadyCheck.GetClientData <EndOfTurnStateMessage>().state; eotReadyCheck.Clear(); ServerEndOfTurnState serverResponse = ServerEndOfTurnState.Error; if (hostEoT == EndOfTurnState.Error || clientEoT == EndOfTurnState.Error) { serverResponse = ServerEndOfTurnState.Error; } else if (hostEoT == EndOfTurnState.Forfeit && clientEoT == EndOfTurnState.Forfeit) { serverResponse = ServerEndOfTurnState.Tie; } else if (hostEoT == EndOfTurnState.Forfeit) { serverResponse = ServerEndOfTurnState.ClientWin; } else if (clientEoT == EndOfTurnState.Forfeit) { serverResponse = ServerEndOfTurnState.HostWin; } else if (hostEoT == EndOfTurnState.Undecided && clientEoT == EndOfTurnState.Undecided) { serverResponse = ServerEndOfTurnState.Undecided; } else if (hostEoT == EndOfTurnState.Tie && clientEoT == EndOfTurnState.Tie) { serverResponse = ServerEndOfTurnState.Tie; } else if (hostEoT == EndOfTurnState.Win && clientEoT == EndOfTurnState.Loss) { serverResponse = ServerEndOfTurnState.HostWin; } else if (hostEoT == EndOfTurnState.Loss && clientEoT == EndOfTurnState.Win) { serverResponse = ServerEndOfTurnState.ClientWin; } else { serverResponse = ServerEndOfTurnState.Mismatch; } NetworkTracker.ServerSendEoT(new ServerEndOfTurnStateMessage() { state = serverResponse }); } }
private void SendEndOfTurnState() { EoTScriptState overType; switch (lastActionResult) { case TurnActionExecutionResult.Success: overType = checkGameOver.Send(); break; case TurnActionExecutionResult.Forfeit: overType = EoTScriptState.Forfeit; break; default: overType = EoTScriptState.Error; break; } BalugaDebug.Log("Game over type: " + overType); // Send win/loss/not-decided/error to server, and wait for reply EndOfTurnState eotState = EndOfTurnState.Error; switch (overType) { case EoTScriptState.FirstPlayerWins: if (board.LocalPlayerOrder == PlayerTurnOrder.First) { eotState = EndOfTurnState.Win; } else { eotState = EndOfTurnState.Loss; } break; case EoTScriptState.SecondPlayerWins: if (board.LocalPlayerOrder == PlayerTurnOrder.First) { eotState = EndOfTurnState.Loss; } else { eotState = EndOfTurnState.Win; } break; case EoTScriptState.Tie: eotState = EndOfTurnState.Tie; break; case EoTScriptState.Undecided: eotState = EndOfTurnState.Undecided; break; case EoTScriptState.Forfeit: eotState = EndOfTurnState.Forfeit; break; default: eotState = EndOfTurnState.Error; break; } BalugaDebug.Log("End of turn state: " + eotState); sendEoTState.Send(eotState); }