question: public PoliticalActionAttachment waitForPoliticalAction ( final boolean firstRun , final IPoliticsDelegate iPoliticsDelegate ) { m_firstRun = firstRun ; m_validPoliticalActions = new ArrayList < > ( iPoliticsDelegate . getValidActions ( ) ) ; Collections . sort ( m_validPoliticalActions , new PoliticalActionComparator ( getCurrentPlayer ( ) , getData ( ) ) ) ; if ( m_firstRun && m_validPoliticalActions . isEmpty ( ) ) { return null ; } else { if ( m_firstRun ) { ClipPlayer . play ( SoundPath . CLIP_PHASE_POLITICS , getCurrentPlayer ( ) ) ; } SwingUtilities . invokeLater ( null ) ; } waitForRelease ( ) ; return m_choice ; }
target:  waits till someone calls release() and then returns the political action chosen