aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/politics
diff options
context:
space:
mode:
author zaaarf <me@zaaarf.foo>2023-12-05 10:16:27 +0100
committer zaaarf <me@zaaarf.foo>2023-12-05 10:16:27 +0100
commitfa2ca50905f327713207069cf9a2e66cf6c00076 (patch)
treea6c82c543d5fc52183ca1363e171dbd4cc161943 /src/openvic-simulation/politics
parent444a27726695478e44e0166e75df1f354b6432d5 (diff)
feat: implemented invention dataloading
Diffstat (limited to 'src/openvic-simulation/politics')
-rw-r--r--src/openvic-simulation/politics/Rebel.cpp14
-rw-r--r--src/openvic-simulation/politics/Rebel.hpp6
2 files changed, 17 insertions, 3 deletions
diff --git a/src/openvic-simulation/politics/Rebel.cpp b/src/openvic-simulation/politics/Rebel.cpp
index e58b3de..ec39c9e 100644
--- a/src/openvic-simulation/politics/Rebel.cpp
+++ b/src/openvic-simulation/politics/Rebel.cpp
@@ -142,4 +142,18 @@ bool RebelManager::load_rebels_file(
lock_rebel_types();
return ret;
+}
+
+bool RebelManager::generate_modifiers(ModifierManager& modifier_manager) {
+ bool ret = true;
+
+ modifier_manager.register_complex_modifier("rebel_org_gain");
+
+ ret &= modifier_manager.add_modifier_effect("rebel_org_gain_all", false);
+
+ for (RebelType const& rebel_type : get_rebel_types()) {
+ std::string modifier_name = StringUtils::append_string_views("rebel_org_gain_", rebel_type.get_identifier());
+ ret &= modifier_manager.add_modifier_effect(modifier_name, false);
+ }
+ return ret;
} \ No newline at end of file
diff --git a/src/openvic-simulation/politics/Rebel.hpp b/src/openvic-simulation/politics/Rebel.hpp
index f012829..ba7b33f 100644
--- a/src/openvic-simulation/politics/Rebel.hpp
+++ b/src/openvic-simulation/politics/Rebel.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include "openvic-simulation/misc/Modifier.hpp"
#include "openvic-simulation/types/IdentifierRegistry.hpp"
#include "openvic-simulation/politics/Government.hpp"
#include "openvic-simulation/politics/Ideology.hpp"
@@ -78,8 +79,7 @@ namespace OpenVic {
bool reinforcing, bool general, bool smart, bool unit_transfer, fixed_point_t occupation_mult
);
- bool load_rebels_file(
- IdeologyManager const& ideology_manager, GovernmentTypeManager const& government_type_manager, ast::NodeCPtr root
- );
+ bool load_rebels_file(IdeologyManager const& ideology_manager, GovernmentTypeManager const& government_type_manager, ast::NodeCPtr root);
+ bool generate_modifiers(ModifierManager& modifier_manager);
};
} \ No newline at end of file