aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/defines/EconomyDefines.hpp
blob: 122475fa869d8547e4910dbddfc6e881ee0532d0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma once

#include "openvic-simulation/dataloader/NodeTools.hpp"
#include "openvic-simulation/types/Date.hpp"
#include "openvic-simulation/types/fixed_point/FixedPoint.hpp"
#include "openvic-simulation/utility/Getters.hpp"

namespace OpenVic {
   struct DefineManager;

   struct EconomyDefines {
      friend struct DefineManager;

   private:
      fixed_point_t PROPERTY(max_daily_research);
      fixed_point_t PROPERTY(loan_base_interest);
      Timespan PROPERTY(bankruptcy_external_loan_duration);
      fixed_point_t PROPERTY(bankruptcy_factor);
      fixed_point_t PROPERTY(shadowy_financiers_max_loan_amount);
      fixed_point_t PROPERTY(max_loan_cap_from_banks);
      fixed_point_t PROPERTY(gunboat_low_tax_cap);
      fixed_point_t PROPERTY(gunboat_high_tax_cap);
      fixed_point_t PROPERTY(gunboat_fleet_size_factor);
      fixed_point_t PROPERTY(province_size_divider);
      fixed_point_t PROPERTY(capitalist_build_factory_state_employment_percent);
      fixed_point_t PROPERTY(goods_focus_swap_chance);
      size_t PROPERTY(num_closed_factories_per_state_lassiez_faire);
      size_t PROPERTY(min_num_factories_per_state_before_deleting_lassiez_faire);
      Timespan PROPERTY(bankrupcy_duration);
      fixed_point_t PROPERTY(second_rank_base_share_factor);
      fixed_point_t PROPERTY(civ_base_share_factor);
      fixed_point_t PROPERTY(unciv_base_share_factor);
      fixed_point_t PROPERTY(factory_paychecks_leftover_factor);
      fixed_point_t PROPERTY(max_factory_money_save);
      fixed_point_t PROPERTY(small_debt_limit);
      fixed_point_t PROPERTY(factory_upgrade_employee_factor);
      fixed_point_t PROPERTY(rgo_supply_demand_factor_hire_hi);
      fixed_point_t PROPERTY(rgo_supply_demand_factor_hire_lo);
      fixed_point_t PROPERTY(rgo_supply_demand_factor_fire);
      fixed_point_t PROPERTY(employment_hire_lowest);
      fixed_point_t PROPERTY(employment_fire_lowest);
      fixed_point_t PROPERTY(trade_cap_low_limit_land);
      fixed_point_t PROPERTY(trade_cap_low_limit_naval);
      fixed_point_t PROPERTY(trade_cap_low_limit_constructions);
      fixed_point_t PROPERTY(factory_purchase_min_factor);
      fixed_point_t PROPERTY(factory_purchase_drawdown_factor);

      EconomyDefines();

      std::string_view get_name() const;
      NodeTools::node_callback_t expect_defines();
   };
}