Toni Förster has proposed merging lp:~widelands-dev/widelands/skipped_statistics into lp:widelands with lp:~widelands-dev/widelands/bug-1786613-10s-return-skipped as a prerequisite.
Commit message: skipping a work program decreases productivity accordingly Requested reviews: Widelands Developers (widelands-dev) For more details, see: https://code.launchpad.net/~widelands-dev/widelands/skipped_statistics/+merge/353552 I mentioned this in the forum: http://wl.widelands.org/forum/topic/4323/ This branch requires that we use the return=no_stats instead of return=skipped for suppressing the calculation of productivity stats. Which is the prerequisite branch for this one. The current implementation just stalls the productivity. E.g. 40+ if this was the last updated value. This change basically decrease the productivity for a building, and subsequently the global productivity, if the economy doesn't need the wares the building produces. Furthermore a building that creates more than on ware will only reach 100% productivity if it produces all wares. The barbarian's metal-workshop for instance produces 10 wares in total. It would only reach 100% is it produces all 10. If 5 wares would not be needed anymore the productivity would decrease to 50% and stays there as long as only 5 wares a produced. This would be displayed as "50% =". If the building the would start producing a sixth ware the productivity the would climb up to 60%. And so on.. There are still other parts that needs to be fixed though. Since productivity values that are not divisible by 5 or 10 are not displayed correctly. E.g. the barbarians big inn productivity would jump between 30% and 35% since 33% cant be displayed. -- Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/skipped_statistics into lp:widelands.
=== modified file 'src/logic/map_objects/tribes/production_program.h' --- src/logic/map_objects/tribes/production_program.h 2018-08-22 06:58:39 +0000 +++ src/logic/map_objects/tribes/production_program.h 2018-08-22 06:58:40 +0000 @@ -127,9 +127,10 @@ /// Parameter semantics: /// return_value: /// If return_value is Failed or Completed, the productionsite's - /// statistics is updated accordingly. If return_value is Skipped or - /// None, the statistics are not affected. But Skipped adds a 10s delay - /// before the program is executed again. + /// statistics is updated accordingly. If return_value is None, the + /// statistics are not affected. Skipped adds a 10s delay before + /// the program is executed again and updates the statistics + /// of the productionsite accordingly. /// condition: /// A boolean condition that can be evaluated to true or false. /// condition_part: === modified file 'src/logic/map_objects/tribes/productionsite.cc' --- src/logic/map_objects/tribes/productionsite.cc 2018-08-22 06:58:39 +0000 +++ src/logic/map_objects/tribes/productionsite.cc 2018-08-22 06:58:40 +0000 @@ -938,6 +938,9 @@ break; case Skipped: skipped_programs_[program_name] = game.get_gametime(); + statistics_.erase(statistics_.begin(), statistics_.begin() + 1); + statistics_.push_back(false); + calc_statistics(); crude_percent_ = crude_percent_ * 98 / 100; break; case None:
_______________________________________________ Mailing list: https://launchpad.net/~widelands-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~widelands-dev More help : https://help.launchpad.net/ListHelp

