void Forum::timeStep( const unsigned long time ) { WalkerList walkers = getWalkerList(); foreach( WalkerPtr walker, walkers ) { if( walker->isDeleted() ) { TaxCollectorPtr collector = walker.as< TaxCollector >(); if( collector.isValid() ) { _d->taxInThisMonth += collector->getMoney(); _d->citizensReached += collector->getCitizensReachedCount(); } } } Building::timeStep( time ); }
void Forum::applyService(ServiceWalkerPtr walker) { switch( walker->type() ) { case walker::taxCollector: { TaxCollectorPtr txcl = ptr_cast<TaxCollector>( walker ); if( txcl.isValid() ) { float tax = txcl->takeMoney();; _d->taxValue += tax; Logger::warning( "Forum: collect money %f. All money %f", tax, _d->taxValue ); } } break; default: break; } ServiceBuilding::applyService( walker ); }