aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author Hop311 <Hop3114@gmail.com>2023-12-24 13:44:48 +0100
committer GitHub <noreply@github.com>2023-12-24 13:44:48 +0100
commitf036506b88af02508242f279ca29b743ef713976 (patch)
tree0fb82e22b383996606ef6adc3e92c42d85bc6777 /src
parent14e47d58b85f657ec1fed8abf88219f09bd3efbb (diff)
parent8a33982e543b7fb8c09be90ebadb33fe7f99b52f (diff)
Merge pull request #102 from OpenVicProject/tgc-compat
Fixed TGC compatibility + misc cleanup
Diffstat (limited to 'src')
-rw-r--r--src/openvic-simulation/dataloader/Dataloader.cpp25
-rw-r--r--src/openvic-simulation/economy/Good.cpp6
-rw-r--r--src/openvic-simulation/history/DiplomaticHistory.cpp8
-rw-r--r--src/openvic-simulation/interface/GFX.cpp16
-rw-r--r--src/openvic-simulation/interface/GFX.hpp20
-rw-r--r--src/openvic-simulation/interface/GUI.cpp6
-rw-r--r--src/openvic-simulation/interface/GUI.hpp3
-rw-r--r--src/openvic-simulation/map/Map.cpp2
-rw-r--r--src/openvic-simulation/military/Unit.cpp4
-rw-r--r--src/openvic-simulation/misc/Decision.cpp25
-rw-r--r--src/openvic-simulation/misc/Decision.hpp10
-rw-r--r--src/openvic-simulation/misc/Event.cpp16
-rw-r--r--src/openvic-simulation/misc/Event.hpp9
-rw-r--r--src/openvic-simulation/misc/Modifier.cpp86
14 files changed, 145 insertions, 91 deletions
diff --git a/src/openvic-simulation/dataloader/Dataloader.cpp b/src/openvic-simulation/dataloader/Dataloader.cpp
index abaaf8b..82f86c6 100644
--- a/src/openvic-simulation/dataloader/Dataloader.cpp
+++ b/src/openvic-simulation/dataloader/Dataloader.cpp
@@ -779,18 +779,6 @@ bool Dataloader::load_defines(GameManager& game_manager) const {
Logger::error("Failed to load issues!");
ret = false;
}
- if (!game_manager.get_politics_manager().load_national_foci_file(
- game_manager.get_pop_manager(), game_manager.get_economy_manager().get_good_manager(), game_manager.get_modifier_manager(), parse_defines(lookup_file(national_foci_file)).get_file_node()
- )) {
- Logger::error("Failed to load national foci!");
- ret = false;
- }
- if (!game_manager.get_politics_manager().get_national_value_manager().load_national_values_file(
- game_manager.get_modifier_manager(), parse_defines(lookup_file(national_values_file)).get_file_node()
- )) {
- Logger::error("Failed to load national values!");
- ret = false;
- }
if (!game_manager.get_economy_manager().load_production_types_file(game_manager.get_pop_manager(),
parse_defines(lookup_file(production_types_file)).get_file_node()
)) {
@@ -810,6 +798,19 @@ bool Dataloader::load_defines(GameManager& game_manager) const {
if (!_load_technologies(game_manager)) {
ret = false;
}
+ if (!game_manager.get_politics_manager().load_national_foci_file(
+ game_manager.get_pop_manager(), game_manager.get_economy_manager().get_good_manager(),
+ game_manager.get_modifier_manager(), parse_defines(lookup_file(national_foci_file)).get_file_node()
+ )) {
+ Logger::error("Failed to load national foci!");
+ ret = false;
+ }
+ if (!game_manager.get_politics_manager().get_national_value_manager().load_national_values_file(
+ game_manager.get_modifier_manager(), parse_defines(lookup_file(national_values_file)).get_file_node()
+ )) {
+ Logger::error("Failed to load national values!");
+ ret = false;
+ }
if (!game_manager.get_crime_manager().load_crime_modifiers(
game_manager.get_modifier_manager(), parse_defines(lookup_file(crime_modifiers_file)).get_file_node()
)) {
diff --git a/src/openvic-simulation/economy/Good.cpp b/src/openvic-simulation/economy/Good.cpp
index 44b896b..5940df2 100644
--- a/src/openvic-simulation/economy/Good.cpp
+++ b/src/openvic-simulation/economy/Good.cpp
@@ -106,9 +106,15 @@ bool GoodManager::generate_modifiers(ModifierManager& modifier_manager) const {
}
};
+ good_modifier("artisan_goods_input");
+ good_modifier("artisan_goods_output");
+ good_modifier("artisan_goods_throughput");
+ good_modifier("factory_goods_input");
good_modifier("factory_goods_output");
good_modifier("factory_goods_throughput");
+ good_modifier("rgo_goods_input");
good_modifier("rgo_goods_output");
+ good_modifier("rgo_goods_throughput");
good_modifier("rgo_size");
return ret;
diff --git a/src/openvic-simulation/history/DiplomaticHistory.cpp b/src/openvic-simulation/history/DiplomaticHistory.cpp
index ce55001..9fd6060 100644
--- a/src/openvic-simulation/history/DiplomaticHistory.cpp
+++ b/src/openvic-simulation/history/DiplomaticHistory.cpp
@@ -186,8 +186,8 @@ bool DiplomaticHistoryManager::load_war_history_file(GameManager const& game_man
}
if (participant_to_remove == nullptr) {
- Logger::error("In history of war ", name, " at date ", current_date.to_string(), ": Attempted to remove attacking country ", country.get_identifier(), " which was not present!");
- return false;
+ Logger::warning("In history of war ", name, " at date ", current_date.to_string(), ": Attempted to remove attacking country ", country.get_identifier(), " which was not present!");
+ return true;
}
participant_to_remove->exited.emplace(current_date);
@@ -204,8 +204,8 @@ bool DiplomaticHistoryManager::load_war_history_file(GameManager const& game_man
}
if (participant_to_remove == nullptr) {
- Logger::error("In history of war ", name, " at date ", current_date.to_string(), ": Attempted to remove attacking country ", country.get_identifier(), " which was not present!");
- return false;
+ Logger::warning("In history of war ", name, " at date ", current_date.to_string(), ": Attempted to remove attacking country ", country.get_identifier(), " which was not present!");
+ return true;
}
participant_to_remove->exited.emplace(current_date);
diff --git a/src/openvic-simulation/interface/GFX.cpp b/src/openvic-simulation/interface/GFX.cpp
index 927b832..f9ae56b 100644
--- a/src/openvic-simulation/interface/GFX.cpp
+++ b/src/openvic-simulation/interface/GFX.cpp
@@ -15,9 +15,9 @@ node_callback_t Sprite::expect_sprite(callback_t<std::unique_ptr<Sprite>&&> call
"LineChartType", ZERO_OR_MORE, _expect_instance<Sprite, LineChart>(callback),
"textSpriteType", ZERO_OR_MORE, _expect_instance<Sprite, TextureSprite>(callback),
"maskedShieldType", ZERO_OR_MORE, _expect_instance<Sprite, MaskedFlag>(callback),
+ "tileSpriteType", ZERO_OR_MORE, _expect_instance<Sprite, TileTextureSprite>(callback),
// TODO - add the rest of the sprite types
"corneredTileSpriteType", ZERO_OR_MORE, success_callback,
- "tileSpriteType", ZERO_OR_MORE, success_callback,
"BarChartType", ZERO_OR_MORE, success_callback,
"scrollingSprite", ZERO_OR_MORE, success_callback
);
@@ -42,6 +42,20 @@ bool TextureSprite::_fill_key_map(key_map_t& key_map) {
return ret;
}
+TileTextureSprite::TileTextureSprite() : texture_file {}, size {} {}
+
+bool TileTextureSprite::_fill_key_map(key_map_t& key_map) {
+ bool ret = Sprite::_fill_key_map(key_map);
+ ret &= add_key_map_entries(key_map,
+ "texturefile", ZERO_OR_ONE, expect_string(assign_variable_callback_string(texture_file)),
+ "size", ZERO_OR_ONE, expect_ivec2(assign_variable_callback(size)),
+
+ "norefcount", ZERO_OR_ONE, success_callback,
+ "loadType", ZERO_OR_ONE, success_callback
+ );
+ return ret;
+}
+
ProgressBar::ProgressBar() : back_colour {}, progress_colour {} {}
bool ProgressBar::_fill_key_map(key_map_t& key_map) {
diff --git a/src/openvic-simulation/interface/GFX.hpp b/src/openvic-simulation/interface/GFX.hpp
index ff27613..c7523b3 100644
--- a/src/openvic-simulation/interface/GFX.hpp
+++ b/src/openvic-simulation/interface/GFX.hpp
@@ -45,7 +45,7 @@ namespace OpenVic::GFX {
std::string PROPERTY(texture_file);
frame_t PROPERTY(no_of_frames);
- // TODO - norefcount, effectFile, allwaystransparent
+ // TODO - effectFile, allwaystransparent
protected:
TextureSprite();
@@ -59,6 +59,24 @@ namespace OpenVic::GFX {
OV_DETAIL_GET_TYPE
};
+ class TileTextureSprite final : public Sprite {
+ friend std::unique_ptr<TileTextureSprite> std::make_unique<TileTextureSprite>();
+
+ std::string PROPERTY(texture_file);
+ ivec2_t PROPERTY(size);
+
+ protected:
+ TileTextureSprite();
+
+ bool _fill_key_map(NodeTools::key_map_t& key_map) override;
+
+ public:
+ TileTextureSprite(TileTextureSprite&&) = default;
+ virtual ~TileTextureSprite() = default;
+
+ OV_DETAIL_GET_TYPE
+ };
+
class ProgressBar final : public Sprite {
friend std::unique_ptr<ProgressBar> std::make_unique<ProgressBar>();
diff --git a/src/openvic-simulation/interface/GUI.cpp b/src/openvic-simulation/interface/GUI.cpp
index 244909e..23a577c 100644
--- a/src/openvic-simulation/interface/GUI.cpp
+++ b/src/openvic-simulation/interface/GUI.cpp
@@ -93,7 +93,9 @@ bool BaseButton::_fill_key_map(NodeTools::key_map_t& key_map, UIManager const& u
bool ret = Element::_fill_key_map(key_map, ui_manager);
// look up sprite registry for texture sprite with name...
ret &= add_key_map_entries(key_map,
- "quadTextureSprite", ONE_EXACTLY,
+ "quadTextureSprite", ZERO_OR_ONE,
+ expect_string(ui_manager.expect_sprite_str(assign_variable_callback_pointer(sprite)), true),
+ "spriteType", ZERO_OR_ONE,
expect_string(ui_manager.expect_sprite_str(assign_variable_callback_pointer(sprite)), true),
"shortcut", ZERO_OR_ONE, success_callback // TODO - load and use shortcuts (how to integrate with custom keybinds?)
);
@@ -160,7 +162,7 @@ bool OverlappingElementsBox::_fill_key_map(NodeTools::key_map_t& key_map, UIMana
bool ret = AlignedElement::_fill_key_map(key_map, ui_manager);
ret &= add_key_map_entries(key_map,
"size", ONE_EXACTLY, expect_fvec2(assign_variable_callback(size)),
- "spacing", ONE_EXACTLY, success_callback
+ "spacing", ONE_EXACTLY, expect_fixed_point(assign_variable_callback(spacing))
);
return ret;
}
diff --git a/src/openvic-simulation/interface/GUI.hpp b/src/openvic-simulation/interface/GUI.hpp
index 47bd57d..d658adf 100644
--- a/src/openvic-simulation/interface/GUI.hpp
+++ b/src/openvic-simulation/interface/GUI.hpp
@@ -196,8 +196,7 @@ namespace OpenVic::GUI {
friend std::unique_ptr<OverlappingElementsBox> std::make_unique<OverlappingElementsBox>();
fvec2_t PROPERTY(size);
-
- // TODO - spacing
+ fixed_point_t PROPERTY(spacing);
protected:
OverlappingElementsBox();
diff --git a/src/openvic-simulation/map/Map.cpp b/src/openvic-simulation/map/Map.cpp
index ec4691d..99108e4 100644
--- a/src/openvic-simulation/map/Map.cpp
+++ b/src/openvic-simulation/map/Map.cpp
@@ -27,7 +27,7 @@ Mapmode::base_stripe_t Mapmode::get_base_stripe_colours(Map const& map, Province
Map::Map()
: width { 0 }, height { 0 }, max_provinces { Province::MAX_INDEX }, selected_province_index { Province::NULL_INDEX },
- highest_province_population { 0 }, total_map_population { 0 } {}
+ highest_province_population { 0 }, total_map_population { 0 } {}
bool Map::add_province(std::string_view identifier, colour_t colour) {
if (provinces.size() >= max_provinces) {
diff --git a/src/openvic-simulation/military/Unit.cpp b/src/openvic-simulation/military/Unit.cpp
index 98fe392..0862741 100644
--- a/src/openvic-simulation/military/Unit.cpp
+++ b/src/openvic-simulation/military/Unit.cpp
@@ -204,6 +204,8 @@ bool UnitManager::generate_modifiers(ModifierManager& modifier_manager) const {
ret &= modifier_manager.register_complex_modifier(identifier);
+ stat_modifier("_attack", true, RAW_DECIMAL);
+ stat_modifier("_defence", true, RAW_DECIMAL);
stat_modifier("_default_organisation", true, RAW_DECIMAL);
stat_modifier("_maximum_speed", true, RAW_DECIMAL);
stat_modifier("_build_time", false, INT);
@@ -212,8 +214,6 @@ bool UnitManager::generate_modifiers(ModifierManager& modifier_manager) const {
switch (type) {
case Unit::type_t::LAND:
stat_modifier("_reconnaissance", true, RAW_DECIMAL);
- stat_modifier("_attack", true, RAW_DECIMAL);
- stat_modifier("_defence", true, RAW_DECIMAL);
stat_modifier("_discipline", true, PROPORTION_DECIMAL);
stat_modifier("_support", true, PROPORTION_DECIMAL);
stat_modifier("_maneuver", true, INT);
diff --git a/src/openvic-simulation/misc/Decision.cpp b/src/openvic-simulation/misc/Decision.cpp
index f1f2b6c..d50a16a 100644
--- a/src/openvic-simulation/misc/Decision.cpp
+++ b/src/openvic-simulation/misc/Decision.cpp
@@ -4,18 +4,16 @@ using namespace OpenVic;
using namespace OpenVic::NodeTools;
Decision::Decision(
- std::string_view new_identifier, bool new_alert, bool new_news,
- std::string_view new_news_title, std::string_view new_news_desc_long,
- std::string_view new_news_desc_medium, std::string_view new_news_desc_short,
+ std::string_view new_identifier, bool new_alert, bool new_news, std::string_view new_news_title,
+ std::string_view new_news_desc_long, std::string_view new_news_desc_medium, std::string_view new_news_desc_short,
std::string_view new_picture
) : HasIdentifier { new_identifier }, alert { new_alert }, news { new_news }, news_title { new_news_title },
news_desc_long { new_news_desc_long }, news_desc_medium { new_news_desc_medium },
news_desc_short { new_news_desc_short }, picture { new_picture } {}
bool DecisionManager::add_decision(
- std::string_view identifier, bool alert, bool news, std::string_view news_title,
- std::string_view news_desc_long, std::string_view news_desc_medium,
- std::string_view news_desc_short, std::string_view picture
+ std::string_view identifier, bool alert, bool news, std::string_view news_title, std::string_view news_desc_long,
+ std::string_view news_desc_medium, std::string_view news_desc_short, std::string_view picture
) {
if (identifier.empty()) {
Logger::error("Invalid decision identifier - empty!");
@@ -35,14 +33,7 @@ bool DecisionManager::add_decision(
}
return decisions.add_item({
- identifier,
- alert,
- news,
- news_title,
- news_desc_long,
- news_desc_medium,
- news_desc_short,
- picture
+ identifier, alert, news, news_title, news_desc_long, news_desc_medium, news_desc_short, picture
}, duplicate_warning_callback);
}
@@ -65,9 +56,11 @@ bool DecisionManager::load_decision_file(ast::NodeCPtr root) {
"effect", ONE_EXACTLY, success_callback, //TODO
"ai_will_do", ZERO_OR_ONE, success_callback //TODO
)(node);
- ret &= add_decision(identifier, alert, news, news_title, news_desc_long, news_desc_medium, news_desc_short, picture);
+ ret &= add_decision(
+ identifier, alert, news, news_title, news_desc_long, news_desc_medium, news_desc_short, picture
+ );
return ret;
}
)
)(root);
-} \ No newline at end of file
+}
diff --git a/src/openvic-simulation/misc/Decision.hpp b/src/openvic-simulation/misc/Decision.hpp
index 452512d..32141fe 100644
--- a/src/openvic-simulation/misc/Decision.hpp
+++ b/src/openvic-simulation/misc/Decision.hpp
@@ -18,9 +18,8 @@ namespace OpenVic {
const std::string PROPERTY(picture);
Decision(
- std::string_view new_identifier, bool new_alert, bool new_news,
- std::string_view new_news_title, std::string_view new_news_desc_long,
- std::string_view new_news_desc_medium, std::string_view new_news_desc_short,
+ std::string_view new_identifier, bool new_alert, bool new_news, std::string_view new_news_title,
+ std::string_view new_news_desc_long, std::string_view new_news_desc_medium, std::string_view new_news_desc_short,
std::string_view new_picture
);
@@ -34,9 +33,8 @@ namespace OpenVic {
public:
bool add_decision(
- std::string_view identifier, bool alert, bool news, std::string_view news_title,
- std::string_view news_desc_long, std::string_view news_desc_medium,
- std::string_view news_desc_short, std::string_view picture
+ std::string_view identifier, bool alert, bool news, std::string_view news_title, std::string_view news_desc_long,
+ std::string_view news_desc_medium, std::string_view news_desc_short, std::string_view picture
);
bool load_decision_file(ast::NodeCPtr root);
diff --git a/src/openvic-simulation/misc/Event.cpp b/src/openvic-simulation/misc/Event.cpp
index b7046af..4507de4 100644
--- a/src/openvic-simulation/misc/Event.cpp
+++ b/src/openvic-simulation/misc/Event.cpp
@@ -20,7 +20,7 @@ Event::Event(
news_desc_long { new_news_desc_long }, news_desc_medium { new_news_desc_medium }, news_desc_short { new_news_desc_short },
election { new_election }, election_issue_group { new_election_issue_group }, options { std::move(new_options) } {}
-OnAction::OnAction(std::string_view new_identifier, weight_map_t new_weighted_events)
+OnAction::OnAction(std::string_view new_identifier, weight_map_t&& new_weighted_events)
: HasIdentifier { new_identifier }, weighted_events { std::move(new_weighted_events) } {}
bool EventManager::register_event(
@@ -72,7 +72,7 @@ bool EventManager::register_event(
}, duplicate_warning_callback);
}
-bool EventManager::add_on_action(std::string_view identifier, OnAction::weight_map_t weighted_events) {
+bool EventManager::add_on_action(std::string_view identifier, OnAction::weight_map_t&& weighted_events) {
if (identifier.empty()) {
Logger::error("Invalid decision identifier - empty!");
return false;
@@ -149,8 +149,6 @@ bool EventManager::load_on_action_file(ast::NodeCPtr root) {
bool ret = expect_dictionary([this](std::string_view identifier, ast::NodeCPtr node) -> bool {
OnAction::weight_map_t weighted_events;
bool ret = expect_dictionary([this, &identifier, &weighted_events](std::string_view weight_str, ast::NodeCPtr event_node) -> bool {
- Event const* event = nullptr;
-
bool ret = false;
uint64_t weight = StringUtils::string_to_uint64(weight_str, &ret);
if (!ret) {
@@ -158,12 +156,18 @@ bool EventManager::load_on_action_file(ast::NodeCPtr root) {
return ret;
}
+ Event const* event = nullptr;
ret &= expect_event_identifier(assign_variable_callback_pointer(event))(event_node);
if (event != nullptr) {
ret &= weighted_events.emplace(event, weight).second;
- } else Logger::warning("Non-existing event ", event->get_identifier(), " loaded on action ", identifier, "with weight", weight, "!");
-
+ } else {
+ Logger::warning(
+ "Non-existing event ", event->get_identifier(), " loaded on action ", identifier, "with weight",
+ weight, "!"
+ );
+ }
+
return ret;
}
)(node);
diff --git a/src/openvic-simulation/misc/Event.hpp b/src/openvic-simulation/misc/Event.hpp
index a518f78..71957c4 100644
--- a/src/openvic-simulation/misc/Event.hpp
+++ b/src/openvic-simulation/misc/Event.hpp
@@ -65,13 +65,14 @@ namespace OpenVic {
struct OnAction : HasIdentifier {
friend struct EventManager;
- using weight_map_t = std::map<Event const*, uint64_t>;
+
+ using weight_map_t = std::map<Event const*, uint64_t>;
private:
weight_map_t PROPERTY(weighted_events);
- OnAction(std::string_view new_identifier, weight_map_t new_weighted_events);
-
+ OnAction(std::string_view new_identifier, weight_map_t&& new_weighted_events);
+
public:
OnAction(OnAction&&) = default;
};
@@ -90,7 +91,7 @@ namespace OpenVic {
std::vector<Event::EventOption>&& options
);
- bool add_on_action(std::string_view identifier, OnAction::weight_map_t new_weighted_events);
+ bool add_on_action(std::string_view identifier, OnAction::weight_map_t&& new_weighted_events);
bool load_event_file(IssueManager const& issue_manager, ast::NodeCPtr root);
bool load_on_action_file(ast::NodeCPtr root);
diff --git a/src/openvic-simulation/misc/Modifier.cpp b/src/openvic-simulation/misc/Modifier.cpp
index 40698e5..f22a2cc 100644
--- a/src/openvic-simulation/misc/Modifier.cpp
+++ b/src/openvic-simulation/misc/Modifier.cpp
@@ -100,12 +100,21 @@ bool ModifierManager::setup_modifier_effects() {
using enum ModifierEffect::format_t;
/* Country Modifier Effects */
+ ret &= add_modifier_effect("administrative_efficiency", true);
ret &= add_modifier_effect("administrative_efficiency_modifier", true);
ret &= add_modifier_effect("badboy", false, RAW_DECIMAL);
+ ret &= add_modifier_effect("cb_creation_speed", true); //seemingly works the same way as cb_generation_speed_modifier
ret &= add_modifier_effect("cb_generation_speed_modifier", true);
+ ret &= add_modifier_effect("colonial_life_rating", false, INT);
+ ret &= add_modifier_effect("colonial_migration", true);
+ ret &= add_modifier_effect("colonial_points", true, INT);
+ ret &= add_modifier_effect("colonial_prestige", true);
ret &= add_modifier_effect("core_pop_consciousness_modifier", false, RAW_DECIMAL);
ret &= add_modifier_effect("core_pop_militancy_modifier", false, RAW_DECIMAL);
+ ret &= add_modifier_effect("dig_in_cap", true, INT);
+ ret &= add_modifier_effect("diplomatic_points", true);
ret &= add_modifier_effect("diplomatic_points_modifier", true);
+ ret &= add_modifier_effect("education_efficiency", true);
ret &= add_modifier_effect("education_efficiency_modifier", true);
ret &= add_modifier_effect("factory_cost", false);
ret &= add_modifier_effect("factory_input", false);
@@ -115,23 +124,32 @@ bool ModifierManager::setup_modifier_effects() {
ret &= add_modifier_effect("global_assimilation_rate", true);
ret &= add_modifier_effect("global_immigrant_attract", true);
ret &= add_modifier_effect("global_pop_consciousness_modifier", false, RAW_DECIMAL);
+ ret &= add_modifier_effect("global_pop_growth", true);
ret &= add_modifier_effect("global_pop_militancy_modifier", false, RAW_DECIMAL);
ret &= add_modifier_effect("global_population_growth", true);
ret &= add_modifier_effect("goods_demand", false);
ret &= add_modifier_effect("import_cost", false);
+ ret &= add_modifier_effect("increase_research", true);
+ ret &= add_modifier_effect("influence", true);
ret &= add_modifier_effect("influence_modifier", true);
ret &= add_modifier_effect("issue_change_speed", true);
+ ret &= add_modifier_effect("land_attack_modifier", true);
+ ret &= add_modifier_effect("land_attrition", false);
+ ret &= add_modifier_effect("land_defense_modifier", true);
ret &= add_modifier_effect("land_organisation", true);
ret &= add_modifier_effect("land_unit_start_experience", true, RAW_DECIMAL);
ret &= add_modifier_effect("leadership", true, RAW_DECIMAL);
ret &= add_modifier_effect("leadership_modifier", true);
+ ret &= add_modifier_effect("literacy_con_impact", false);
ret &= add_modifier_effect("loan_interest", false);
ret &= add_modifier_effect("max_loan_modifier", true);
ret &= add_modifier_effect("max_military_spending", true);
+ ret &= add_modifier_effect("max_national_focus", true, INT);
ret &= add_modifier_effect("max_social_spending", true);
ret &= add_modifier_effect("max_tariff", true);
ret &= add_modifier_effect("max_tax", true);
ret &= add_modifier_effect("max_war_exhaustion", true, PERCENTAGE_DECIMAL);
+ ret &= add_modifier_effect("military_tactics", true);
ret &= add_modifier_effect("min_military_spending", true);
ret &= add_modifier_effect("min_social_spending", true);
ret &= add_modifier_effect("min_tariff", true);
@@ -139,76 +157,73 @@ bool ModifierManager::setup_modifier_effects() {
ret &= add_modifier_effect("mobilisation_economy_impact", false);
ret &= add_modifier_effect("mobilisation_impact", false);
ret &= add_modifier_effect("mobilisation_size", true);
+ ret &= add_modifier_effect("mobilization_economy_impact", false);
+ ret &= add_modifier_effect("mobilization_impact", false);
+ ret &= add_modifier_effect("mobilization_size", true);
+ ret &= add_modifier_effect("naval_attack_modifier", true);
+ ret &= add_modifier_effect("naval_attrition", false);
+ ret &= add_modifier_effect("naval_defense_modifier", true);
ret &= add_modifier_effect("naval_organisation", true);
ret &= add_modifier_effect("naval_unit_start_experience", true, RAW_DECIMAL);
ret &= add_modifier_effect("non_accepted_pop_consciousness_modifier", false, RAW_DECIMAL);
ret &= add_modifier_effect("non_accepted_pop_militancy_modifier", false, RAW_DECIMAL);
ret &= add_modifier_effect("org_regain", true);
+ ret &= add_modifier_effect("pension_level", true);
+ ret &= add_modifier_effect("permanent_prestige", true, RAW_DECIMAL);
+ ret &= add_modifier_effect("plurality", true, PERCENTAGE_DECIMAL);
ret &= add_modifier_effect("political_reform_desire", false);
+ ret &= add_modifier_effect("pop_growth", true);
ret &= add_modifier_effect("prestige", true, RAW_DECIMAL);
+ ret &= add_modifier_effect("regular_experience_level", true, RAW_DECIMAL);
+ ret &= add_modifier_effect("reinforce_rate", true);
ret &= add_modifier_effect("research_points", true, RAW_DECIMAL);
ret &= add_modifier_effect("research_points_modifier", true);
ret &= add_modifier_effect("research_points_on_conquer", true);
ret &= add_modifier_effect("rgo_output", true);
ret &= add_modifier_effect("RGO_output", true);
+ ret &= add_modifier_effect("rgo_size", true);
+ ret &= add_modifier_effect("RGO_size", true);
ret &= add_modifier_effect("rgo_throughput", true);
ret &= add_modifier_effect("RGO_throughput", true);
ret &= add_modifier_effect("ruling_party_support", true);
+ ret &= add_modifier_effect("shared_prestige", true, RAW_DECIMAL);
ret &= add_modifier_effect("social_reform_desire", false);
+ ret &= add_modifier_effect("soldier_to_pop_loss", true);
+ ret &= add_modifier_effect("seperatism", false); // paradox typo
ret &= add_modifier_effect("supply_consumption", false);
+ ret &= add_modifier_effect("supply_range", true);
+ ret &= add_modifier_effect("suppression_points_modifier", true);
+ ret &= add_modifier_effect("tariff_efficiency_modifier", true);
+ ret &= add_modifier_effect("tax_eff", true);
ret &= add_modifier_effect("tax_efficiency", true);
+ ret &= add_modifier_effect("unit_recruitment_time", false);
ret &= add_modifier_effect("unit_start_experience", true, RAW_DECIMAL);
ret &= add_modifier_effect("war_exhaustion", false);
- ret &= add_modifier_effect("reinforce_rate", true);
- ret &= add_modifier_effect("colonial_migration", true);
- ret &= add_modifier_effect("supply_range", true);
- ret &= add_modifier_effect("colonial_points", true, INT);
- ret &= add_modifier_effect("diplomatic_points", true);
- ret &= add_modifier_effect("cb_creation_speed", true); //seemingly works the same way as cb_generation_speed_modifier
- ret &= add_modifier_effect("education_efficiency", true);
- ret &= add_modifier_effect("increase_research", true);
- ret &= add_modifier_effect("influence", true);
- ret &= add_modifier_effect("administrative_efficiency", true);
- ret &= add_modifier_effect("tax_eff", true);
- ret &= add_modifier_effect("military_tactics", true);
- ret &= add_modifier_effect("dig_in_cap", true, INT);
- ret &= add_modifier_effect("max_national_focus", true, INT);
- ret &= add_modifier_effect("regular_experience_level", true, RAW_DECIMAL);
- ret &= add_modifier_effect("land_attrition", false);
- ret &= add_modifier_effect("naval_attrition", false);
- ret &= add_modifier_effect("permanent_prestige", true, RAW_DECIMAL);
- ret &= add_modifier_effect("shared_prestige", true, RAW_DECIMAL);
- ret &= add_modifier_effect("colonial_prestige", true);
- ret &= add_modifier_effect("soldier_to_pop_loss", true);
- ret &= add_modifier_effect("pop_growth", true);
- ret &= add_modifier_effect("plurality", true, PERCENTAGE_DECIMAL);
- ret &= add_modifier_effect("suppression_points_modifier", true);
- ret &= add_modifier_effect("colonial_life_rating", false, INT);
- ret &= add_modifier_effect("seperatism", false); //paradox typo
/* Province Modifier Effects */
ret &= add_modifier_effect("assimilation_rate", true);
ret &= add_modifier_effect("boost_strongest_party", false);
+ ret &= add_modifier_effect("farm_rgo_eff", true);
+ ret &= add_modifier_effect("farm_RGO_eff", true);
+ ret &= add_modifier_effect("farm_rgo_size", true);
+ ret &= add_modifier_effect("farm_RGO_size", true);
+ ret &= add_modifier_effect("flashpoint_tension", false);
ret &= add_modifier_effect("immigrant_attract", true);
ret &= add_modifier_effect("immigrant_push", false);
ret &= add_modifier_effect("life_rating", true);
+ ret &= add_modifier_effect("local_artisan_input", true);
+ ret &= add_modifier_effect("local_artisan_output", true);
+ ret &= add_modifier_effect("local_artisan_throughput", true);
ret &= add_modifier_effect("local_factory_input", true);
ret &= add_modifier_effect("local_factory_output", true);
ret &= add_modifier_effect("local_factory_throughput", true);
ret &= add_modifier_effect("local_repair", true);
ret &= add_modifier_effect("local_rgo_output", true);
ret &= add_modifier_effect("local_RGO_output", true);
+ ret &= add_modifier_effect("local_rgo_throughput", true);
ret &= add_modifier_effect("local_RGO_throughput", true);
ret &= add_modifier_effect("local_ruling_party_support", true);
ret &= add_modifier_effect("local_ship_build", false);
- ret &= add_modifier_effect("pop_consciousness_modifier", false, RAW_DECIMAL);
- ret &= add_modifier_effect("pop_militancy_modifier", false, RAW_DECIMAL);
- ret &= add_modifier_effect("population_growth", true);
- ret &= add_modifier_effect("flashpoint_tension", false);
- ret &= add_modifier_effect("farm_rgo_eff", true);
- ret &= add_modifier_effect("farm_RGO_eff", true);
- ret &= add_modifier_effect("farm_rgo_size", true);
- ret &= add_modifier_effect("farm_RGO_size", true);
ret &= add_modifier_effect("max_attrition", false, RAW_DECIMAL);
ret &= add_modifier_effect("mine_rgo_eff", true);
ret &= add_modifier_effect("mine_RGO_eff", true);
@@ -216,6 +231,9 @@ bool ModifierManager::setup_modifier_effects() {
ret &= add_modifier_effect("mine_RGO_size", true);
ret &= add_modifier_effect("movement_cost", false);
ret &= add_modifier_effect("number_of_voters", false);
+ ret &= add_modifier_effect("pop_consciousness_modifier", false, RAW_DECIMAL);
+ ret &= add_modifier_effect("pop_militancy_modifier", false, RAW_DECIMAL);
+ ret &= add_modifier_effect("population_growth", true);
ret &= add_modifier_effect("railroads", true); // capitalist likelihood for railroads vs factories
ret &= add_modifier_effect("supply_limit", true, RAW_DECIMAL);