question: public void finalStatus ( GameStatus gs ) { if ( ! gs . isFinal ) return ; int maxVP = 0 ; int minTurns = 10000 ; ArrayList < Integer > winners = new ArrayList < Integer > ( ) ; for ( int i = 0 ; i < players . getCount ( ) ; i ++ ) { if ( gs . handSizes [ i ] > maxVP ) { winners . clear ( ) ; winners . add ( i ) ; maxVP = gs . handSizes [ i ] ; minTurns = gs . turnCounts [ i ] ; } else if ( gs . handSizes [ i ] == maxVP ) { if ( gs . turnCounts [ i ] < minTurns ) { winners . clear ( ) ; winners . add ( i ) ; minTurns = gs . turnCounts [ i ] ; } else if ( gs . turnCounts [ i ] == minTurns ) winners . add ( i ) ; } } try { if ( ! finalStatsReported ) { finalStatsReported = true ; ArrayList < String > pl = new ArrayList < String > ( players . getCount ( ) ) ; for ( int i = 0 ; i < players . getCount ( ) ; i ++ ) { pl . add ( gs . realNames [ i ] ) ; } achievements . gameOver ( pl , winners ) ; } } catch ( Exception e ) { e . printStackTrace ( ) ; } boolean won = false ; for ( int i : winners ) if ( i == gs . whoseTurn ) won = true ; tr . setVisibility ( GONE ) ; gameOver . setVisibility ( VISIBLE ) ; gameOverScroll . setVisibility ( VISIBLE ) ; @ SuppressWarnings ( "deprecation" ) LinearLayout . LayoutParams lp = new LinearLayout . LayoutParams ( ViewGroup . LayoutParams . FILL_PARENT , ViewGroup . LayoutParams . WRAP_CONTENT ) ; FinalView fv = new FinalView ( top , this , gs . realNames [ gs . whoseTurn ] , gs . turnCounts [ gs . whoseTurn ] , gs . embargos , gs . numCards [ gs . whoseTurn ] , gs . supplySizes , gs . handSizes [ gs . whoseTurn ] , won ) ; fv . setLayoutParams ( lp ) ; showCardsButtons . add ( fv . showCards ) ; gameOver . addView ( fv ) ; }
target:  Is executed instead of setStatus if the gs.isFinal flag is set. This gets executed /for each player/.