private void Handle_Join_Match( CJoinMatchSuccess message ) { if ( Match != null ) { throw new CApplicationException( "Received duplicate match state data" ); } Set_Match( new CClientMatchInstance( message.MatchState, message.GameState ) ); CClientLogicalThread.Instance.Add_UI_Notification( new CUIScreenStateNotification( EUIScreenState.Match_Idle ) ); CClientResource.Output_Text< EClientTextID >( EClientTextID.Client_Match_Join_Success ); }
public void On_Player_Reconnect( EPersistenceID player_id ) { if ( MatchState.On_Player_Reconnect( player_id ) ) { Send_Message_To_Members( new CMatchPlayerConnectionStateMessage( player_id, true ), player_id ); } CMatchState match_state = Clone_Match_State( player_id ); CGameState game_state = Clone_Game_State( player_id ); CJoinMatchSuccess join_success = new CJoinMatchSuccess( match_state, game_state ); CServerMessageRouter.Send_Message_To_Player( join_success, player_id ); if ( Players.Contains( player_id ) ) { CAsyncBackendOperations.Join_Match_Channel( ID, player_id, MatchChannel ); } if ( Observers.Contains( player_id ) ) { CAsyncBackendOperations.Join_Observer_Channel( ID, player_id, ObserverChannel ); } }