diff options
author | wvpm <24685035+wvpm@users.noreply.github.com> | 2024-01-09 23:11:16 +0100 |
---|---|---|
committer | wvpm <24685035+wvpm@users.noreply.github.com> | 2024-02-05 09:29:47 +0100 |
commit | 1c0505e4b5952c9480fb802b3e2d2bfa9ddb4951 (patch) | |
tree | 66afe2e4e9017a6267199ec4a91790a8a6f9dc73 /src/openvic-simulation/economy/FactoryProducer.cpp | |
parent | 068c13ede817d17df599ca3481261bf17ed95604 (diff) |
Added producer typesproducer_types
Diffstat (limited to 'src/openvic-simulation/economy/FactoryProducer.cpp')
-rw-r--r-- | src/openvic-simulation/economy/FactoryProducer.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/openvic-simulation/economy/FactoryProducer.cpp b/src/openvic-simulation/economy/FactoryProducer.cpp new file mode 100644 index 0000000..81ebd4a --- /dev/null +++ b/src/openvic-simulation/economy/FactoryProducer.cpp @@ -0,0 +1,39 @@ +#include "FactoryProducer.hpp" + +using namespace OpenVic; + +FactoryProducer::FactoryProducer( + ProductionType const& new_production_type, const fixed_point_t new_size_multiplier, + const fixed_point_t new_revenue_yesterday, const fixed_point_t new_output_quantity_yesterday, + const fixed_point_t new_unsold_quantity_yesterday, ordered_map<Pop*, Pop::pop_size_t>&& new_employees, + Good::good_map_t&& new_stockpile, fixed_point_t new_budget, const fixed_point_t new_balance_yesterday, + const fixed_point_t new_received_investments_yesterday, const fixed_point_t new_market_spendings_yesterday, + const fixed_point_t new_paychecks_yesterday, const uint32_t new_unprofitable_days, const uint32_t new_subsidised_days, + const uint32_t new_days_without_input, const uint8_t new_hiring_priority, const uint8_t new_profit_history_current, + daily_profit_history_t&& new_daily_profit_history +) + : production_type { new_production_type }, size_multiplier { new_size_multiplier }, + revenue_yesterday { new_revenue_yesterday }, output_quantity_yesterday { new_output_quantity_yesterday }, + unsold_quantity_yesterday { new_unsold_quantity_yesterday }, employees { std::move(new_employees) }, + stockpile { std::move(new_stockpile) }, budget { new_budget }, balance_yesterday { new_balance_yesterday }, + received_investments_yesterday { new_received_investments_yesterday }, + market_spendings_yesterday { new_market_spendings_yesterday }, paychecks_yesterday { new_paychecks_yesterday }, + unprofitable_days { new_unprofitable_days }, subsidised_days { new_subsidised_days }, + days_without_input { new_days_without_input }, hiring_priority { new_hiring_priority }, + profit_history_current { new_profit_history_current }, daily_profit_history { std::move(new_daily_profit_history) } {} +FactoryProducer::FactoryProducer(ProductionType const& new_production_type, const fixed_point_t new_size_multiplier) + : FactoryProducer { new_production_type, new_size_multiplier, 0, 0, 0, {}, {}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {} } {} + +fixed_point_t FactoryProducer::get_profitability_yesterday() const { + return daily_profit_history[profit_history_current]; +} + +fixed_point_t FactoryProducer::get_average_profitability_last_seven_days() const { + fixed_point_t sum = 0; + + for (int i = 0; i <= profit_history_current; i++) { + sum += daily_profit_history[i]; + } + + return sum / (1 + profit_history_current); +} |