aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------extension/deps/openvic-simulation0
-rw-r--r--extension/src/openvic-extension/singletons/MenuSingleton.cpp58
-rw-r--r--extension/src/openvic-extension/singletons/MenuSingleton.hpp2
-rw-r--r--game/src/Game/GameSession/Topbar.gd17
4 files changed, 73 insertions, 4 deletions
diff --git a/extension/deps/openvic-simulation b/extension/deps/openvic-simulation
-Subproject 00a3121dd43a3b6e8f5a6efa2d3b6560ef78c37
+Subproject 82c04c2566d2ab3177b72f1bb33c5c81cfa612b
diff --git a/extension/src/openvic-extension/singletons/MenuSingleton.cpp b/extension/src/openvic-extension/singletons/MenuSingleton.cpp
index c4b704d..c6c480e 100644
--- a/extension/src/openvic-extension/singletons/MenuSingleton.cpp
+++ b/extension/src/openvic-extension/singletons/MenuSingleton.cpp
@@ -3,7 +3,7 @@
#include <godot_cpp/variant/utility_functions.hpp>
#include <openvic-simulation/GameManager.hpp>
-#include <openvic-simulation/misc/Modifier.hpp>
+#include <openvic-simulation/modifier/Modifier.hpp>
#include "openvic-extension/classes/GFXPieChartTexture.hpp"
#include "openvic-extension/classes/GUINode.hpp"
@@ -193,7 +193,63 @@ String MenuSingleton::make_rules_tooltip(RuleSet const& rules) const {
return result;
}
+String MenuSingleton::get_test_tooltip(int32_t line) const {
+ String ret = "Test Tooltip " + String::num_int64(line);
+
+ const RuleSet test_rules = [&line]() {
+ RuleSet ret;
+
+ GameSingleton const* game_singleton = GameSingleton::get_singleton();
+ ERR_FAIL_NULL_V(game_singleton, ret);
+
+ bool value = true;
+
+ for (auto const& rule : game_singleton->get_definition_manager().get_politics_manager().get_rule_manager().get_rules()) {
+ if (line > 0) {
+ line--;
+ } else {
+ ret.set_rule(rule, value);
+ }
+ value = !value;
+ }
+
+ return ret;
+ }();
+
+ if (test_rules.get_rule_count() > 0) {
+ ret += get_tooltip_separator() + make_rules_tooltip(test_rules);
+ }
+
+ const ModifierValue test_modifier = [&line]() {
+ ModifierValue ret;
+
+ GameSingleton const* game_singleton = GameSingleton::get_singleton();
+ ERR_FAIL_NULL_V(game_singleton, ret);
+
+ fixed_point_t value = 0;
+
+ for (auto const& effect : game_singleton->get_definition_manager().get_modifier_manager().get_modifier_effects()) {
+ if (line > 0) {
+ line--;
+ } else {
+ ret.set_effect(effect, value);
+ }
+ value++;
+ }
+
+ return ret;
+ }();
+
+ if (test_modifier.get_effect_count() > 0) {
+ ret += get_tooltip_separator() + make_modifier_effects_tooltip(test_modifier);
+ }
+
+ return ret;
+}
+
void MenuSingleton::_bind_methods() {
+ OV_BIND_METHOD(MenuSingleton::get_test_tooltip, { "line" });
+
OV_BIND_SMETHOD(get_tooltip_separator);
OV_BIND_METHOD(MenuSingleton::get_country_name_from_identifier, { "country_identifier" });
OV_BIND_METHOD(MenuSingleton::get_country_adjective_from_identifier, { "country_identifier" });
diff --git a/extension/src/openvic-extension/singletons/MenuSingleton.hpp b/extension/src/openvic-extension/singletons/MenuSingleton.hpp
index 0dcc8ff..713026c 100644
--- a/extension/src/openvic-extension/singletons/MenuSingleton.hpp
+++ b/extension/src/openvic-extension/singletons/MenuSingleton.hpp
@@ -119,6 +119,8 @@ namespace OpenVic {
static void _bind_methods();
public:
+ godot::String get_test_tooltip(int32_t line) const;
+
static MenuSingleton* get_singleton();
/* This should only be called AFTER GameSingleton has been initialised! */
diff --git a/game/src/Game/GameSession/Topbar.gd b/game/src/Game/GameSession/Topbar.gd
index 2f1fdbf..737ed9d 100644
--- a/game/src/Game/GameSession/Topbar.gd
+++ b/game/src/Game/GameSession/Topbar.gd
@@ -295,6 +295,16 @@ enum CountryStatus {
PRIMITIVE
}
+var test_scroll : int = 0
+
+func _input(event) -> void:
+ if event is InputEventKey and event.pressed:
+ if event.keycode == KEY_O:
+ test_scroll -= 1
+ elif event.keycode == KEY_P:
+ test_scroll += 1
+ _update_info()
+
func _update_info() -> void:
var topbar_info : Dictionary = MenuSingleton.get_topbar_info()
@@ -392,9 +402,10 @@ func _update_info() -> void:
_country_colonial_power_label.set_text(
"§%s%s§!/%s" % ["W" if available_colonial_power > 0 else "R", available_colonial_power, max_colonial_power]
)
- _country_colonial_power_label.set_tooltip_string(tr("COLONIAL_POINTS") + MenuSingleton.get_tooltip_separator() + (
- topbar_info.get(colonial_power_tooltip_key, "") if country_status <= CountryStatus.SECONDARY_POWER else tr("NON_COLONIAL_POWER")
- ))
+ #_country_colonial_power_label.set_tooltip_string(tr("COLONIAL_POINTS") + MenuSingleton.get_tooltip_separator() + (
+ #topbar_info.get(colonial_power_tooltip_key, "") if country_status <= CountryStatus.SECONDARY_POWER else tr("NON_COLONIAL_POWER")
+ #))
+ _country_colonial_power_label.set_tooltip_string("(Use O and P to scroll) " + MenuSingleton.get_test_tooltip(test_scroll))
## Time control
if _date_label: