@Override public void end(){
  super.end();
  final GameData data=getData();
  if (GameStepPropertiesHelper.isRemoveAirThatCanNotLand(data)) {
    removeAirThatCantLand();
  }
  if (GameStepPropertiesHelper.isFireRockets(data)) {
    if (m_needToDoRockets && TechTracker.hasRocket(m_bridge.getPlayerID())) {
      final RocketsFireHelper helper=new RocketsFireHelper();
      helper.fireRockets(m_bridge,m_bridge.getPlayerID());
      m_needToDoRockets=false;
    }
  }
  if (GameStepPropertiesHelper.isResetUnitStateAtEnd(data)) {
    resetUnitStateAndDelegateState();
  }
  m_needToInitialize=true;
  m_needToDoRockets=true;
}

@ Override public void end ( ) { super . end ( ) ; final GameData data = getData ( ) ; if ( GameStepPropertiesHelper . isRemoveAirThatCanNotLand ( data ) ) { removeAirThatCantLand ( ) ; } if ( GameStepPropertiesHelper . isFireRockets ( data ) ) { if ( m_needToDoRockets && TechTracker . hasRocket ( m_bridge . getPlayerID ( ) ) ) { final RocketsFireHelper helper = new RocketsFireHelper ( ) ; helper . fireRockets ( m_bridge , m_bridge . getPlayerID ( ) ) ; m_needToDoRockets = false ; } } if ( GameStepPropertiesHelper . isResetUnitStateAtEnd ( data ) ) { resetUnitStateAndDelegateState ( ) ; } m_needToInitialize = true ; m_needToDoRockets = true ; }
called before the delegate will stop running .
