void Simple::renderUi(Engine &engine)
{
    Layer::renderUi( engine );

    Tile* lastTile = _currentTile();
    if( lastTile )
    {
        SenatePtr senate = lastTile->overlay<Senate>();
        if( senate.isValid() )
        {
            _d->senateInfo.draw( _lastCursorPos(), Engine::instance(), senate );
        }
    }
}
Exemple #2
0
void Forum::Impl::removeMoney(PlayerCityPtr city)
{
  SenatePtr senate;
  SenateList senates = city::statistic::getObjects<Senate>( city, object::senate );
  if( !senates.empty() )
    senate = senates.front();

  int maxMoney = city->treasury().money();
  if( maxMoney > 0 )
  {
    ForumList forums = city::statistic::getObjects<Forum>( city );

    if( senate.isValid() )
      maxMoney /= 2;

    maxMoney /= forums.size();

    events::GameEventPtr e = events::Payment::create( econ::Issue::moneyStolen, -maxMoney );
    e->dispatch();
  }
}
AboutSenate::AboutSenate(Widget* parent, PlayerCityPtr city, const Tile& tile )
  : Simple( parent, Rect( 0, 0, 510, 290 ), Rect( 16, 126, 510 - 16, 126 + 62 ) )
{
  SenatePtr senate = ptr_cast<Senate>( tile.overlay() );
  std::string title = MetaDataHolder::instance().getData( building::senate ).prettyName();
  setTitle( _(title) );

  // number of workers
  _updateWorkersLabel( Point( 32, 136), 542, senate->maximumWorkers(), senate->numberWorkers() );

  std::string denariesStr = StringHelper::format( 0xff, "%s %d", _("##senate_save##"), senate->funds() );

  Label* lb = new Label( this, Rect( 60, 35, width() - 16, 35 + 30 ), denariesStr );
  lb->setIcon( GoodHelper::picture( Good::denaries ) );
  lb->setText( denariesStr );
  lb->setTextOffset( Point( 30, 0 ));

  new Label( this, Rect( 60, 215, 60 + 300, 215 + 24 ), _("##visit_rating_advisor##") );
  TexturedButton* btnAdvisor = new TexturedButton( this, Point( 350, 215 ), Size(28), advisorBtnId, 289 );
  CONNECT( btnAdvisor, onClicked(), this, AboutSenate::_showRatingAdvisor );
  CONNECT( btnAdvisor, onClicked(), this, AboutSenate::deleteLater );
}