Example #1
0
Core::Core()
  : mGameRunning( false ),
    mGameMode( MODE_UNKNOWN ),
    mOutcome( OUTCOME_UNKNOWN ),
    mOrder( ORDER_UNKNOWN ),
    mOwnClass( CLASS_UNKNOWN ),
    mOpponentClass( CLASS_UNKNOWN ),
    mDuration( 0 ),
    mGameClientRestartRequired( false )
{
  mTimer = new QTimer( this );
  connect( mTimer, SIGNAL( timeout() ), this, SLOT( Tick() ) );
  mTimer->start( 1000 );

  // Connect log
  connect( &mLogTracker, SIGNAL( HandleOutcome(Outcome) ), this, SLOT( HandleOutcome(Outcome) ) );
  connect( &mLogTracker, SIGNAL( HandleOrder(GoingOrder) ), this, SLOT( HandleOrder(GoingOrder) ) );
  connect( &mLogTracker, SIGNAL( HandleOwnClass(Class) ), this, SLOT( HandleOwnClass(Class) ) ) ;
  connect( &mLogTracker, SIGNAL( HandleOpponentClass(Class) ), this, SLOT( HandleOpponentClass(Class) ) );
  connect( &mLogTracker, SIGNAL( HandleGameMode(GameMode) ), this, SLOT( HandleGameMode(GameMode) ) );

  connect( &mLogTracker, SIGNAL( HandleMatchStart() ), this, SLOT( HandleMatchStart() ) );
  connect( &mLogTracker, SIGNAL( HandleMatchEnd(const ::CardHistoryList&, bool) ), this, SLOT( HandleMatchEnd(const ::CardHistoryList&, bool) ) );

  ResetResult();
}
Example #2
0
void ResultTracker::UploadResult() {
  DBG( "UploadResult" );

  mResult.rank = DetermineRank();
  DBG( "Determined Rank: %d", mResult.rank );

  mResultsQueue.Add( mResult );
  ResetResult();
}
Example #3
0
void Core::HandleMatchEnd( const ::CardHistoryList& cardHistoryList, bool wasSpectating ) {
  if( wasSpectating ) {
    LOG( "Ignore spectated match" );
    ResetResult();
    return;
  }

  DEBUG( "HandleMatchEnd" );
  mCardHistoryList = cardHistoryList;
  mDuration = mDurationTimer.elapsed() / 1000;
  UploadResult();
}
Example #4
0
void ResultTracker::HandleMatchEnd( const ::CardHistoryList& cardHistoryList ) {
  if( mSpectating ) {
    LOG( "Ignore spectated match" );
    ResetResult();
    return;
  }

  DBG( "HandleMatchEnd" );
  mResult.cardList = cardHistoryList;
  mResult.duration = mDurationTimer.elapsed() / 1000;
  mResult.mode = mCurrentGameMode;
  UploadResult();
}
Example #5
0
void Core::UploadResult() {
  DEBUG( "UploadResult" );

  Tracker::Instance()->AddResult( mGameMode,
      mOutcome,
      mOrder,
      mOwnClass,
      mOpponentClass,
      mLogTracker.CardHistoryList(),
      mDuration );

  ResetResult();
}
Example #6
0
ResultTracker::ResultTracker()
  : mSpectating( false ), mCurrentGameMode( MODE_UNKNOWN )
{
  connect( &mLogTracker, &HearthstoneLogTracker::HandleOutcome, this, &ResultTracker::HandleOutcome );
  connect( &mLogTracker, &HearthstoneLogTracker::HandleOrder, this, &ResultTracker::HandleOrder );
  connect( &mLogTracker, &HearthstoneLogTracker::HandleOwnClass, this, &ResultTracker::HandleOwnClass ) ;
  connect( &mLogTracker, &HearthstoneLogTracker::HandleOpponentClass, this, &ResultTracker::HandleOpponentClass );
  connect( &mLogTracker, &HearthstoneLogTracker::HandleGameMode, this, &ResultTracker::HandleGameMode );
  connect( &mLogTracker, &HearthstoneLogTracker::HandleLegend, this, &ResultTracker::HandleLegend );
  connect( &mLogTracker, &HearthstoneLogTracker::HandleTurn, this, &ResultTracker::HandleTurn );

  connect( &mLogTracker, &HearthstoneLogTracker::HandleSpectating, this, &ResultTracker::HandleSpectating );
  connect( &mLogTracker, &HearthstoneLogTracker::HandleMatchStart, this, &ResultTracker::HandleMatchStart );
  connect( &mLogTracker, &HearthstoneLogTracker::HandleMatchEnd, this, &ResultTracker::HandleMatchEnd );

  ResetResult();
}