示例#1
0
 private void SendEndOfTurnState(EndOfTurnState state)
 {
     NetworkTracker.ClientSendEoT(new EndOfTurnStateMessage()
     {
         state = state,
     });
     eotReadyCheck.Active = true;
 }
示例#2
0
 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
         });
     }
 }
示例#3
0
        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);
        }