Skip to content

Commit

Permalink
Preparation of the Budget Menu for the simulation data
Browse files Browse the repository at this point in the history
  • Loading branch information
Jarturog committed Apr 28, 2024
1 parent 9e99050 commit af6c5fd
Showing 1 changed file with 199 additions and 15 deletions.
214 changes: 199 additions & 15 deletions game/src/Game/GameSession/NationManagementScreen/BudgetMenu.gd
Original file line number Diff line number Diff line change
@@ -1,6 +1,39 @@
extends GUINode

var _active : bool = false
var _incVal : int = 0 # incremental value to see the UI update, replace later by real values

# income
var _lower_class_label : Label
var _middle_class_label : Label
var _upper_class_label : Label
var _gold_label : Label
var _total_inc_label : Label

# debt
var _national_bank_label : Label
var _total_funds_label : Label
var _debt_val_label : Label
var _interest_val_label : Label

# costs
var _nat_stock_val_label : Label
var _nat_stock_est_label : Label
var _mil_cost_val_label : Label
var _overseas_cost_val_label : Label
var _ind_sub_val_label : Label
var _admin_efficiency_label : Label
var _exp_val_0_label : Label
var _exp_val_1_label : Label
var _exp_val_2_label : Label
var _exp_val_3_label : Label
var _total_exp_label : Label

# others
var _tariffs_percent_label : Label
var _tariff_val_label : Label
var _diplomatic_balance_label : Label
var _balance_label : Label

const _screen : NationManagement.Screen = NationManagement.Screen.BUDGET

Expand All @@ -15,20 +48,133 @@ func _ready() -> void:
if close_button:
close_button.pressed.connect(Events.NationManagementScreens.close_nation_management_screen.bind(_screen))

# Scrollbar test code
var test_scrollbar : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/tax_0_slider")
var test_label : Label = get_label_from_nodepath(^"./country_budget/tax_0_inc")
test_scrollbar.value_changed.connect(func(value : int) -> void: test_label.text = str(value))
test_scrollbar.set_range_limits(20, 80)
test_scrollbar.emit_value_changed()

var tariff_scrollbar : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/tariff_slider")
var tariff_label : Label = get_label_from_nodepath(^"./country_budget/tariffs_percent")
tariff_scrollbar.value_changed.connect(func(value : int) -> void: tariff_label.text = "%s%%" % GUINode.float_to_formatted_string(value, 1))
tariff_scrollbar.set_limits(-100, 100)
tariff_scrollbar.set_range_limits(-45, 80)
tariff_scrollbar.emit_value_changed()

# labels
# income
_lower_class_label = get_label_from_nodepath(^"./country_budget/tax_0_inc")
_middle_class_label = get_label_from_nodepath(^"./country_budget/tax_1_inc")
_upper_class_label = get_label_from_nodepath(^"./country_budget/tax_2_inc")
_gold_label = get_label_from_nodepath(^"./country_budget/gold_inc")
_total_inc_label = get_label_from_nodepath(^"./country_budget/total_inc")
# debt
_national_bank_label = get_label_from_nodepath(^"./country_budget/national_bank_val")
_total_funds_label = get_label_from_nodepath(^"./country_budget/total_funds_val")
_debt_val_label = get_label_from_nodepath(^"./country_budget/debt_val")
_interest_val_label = get_label_from_nodepath(^"./country_budget/interest_val")
# costs
_nat_stock_val_label = get_label_from_nodepath(^"./country_budget/nat_stock_val")
_nat_stock_est_label = get_label_from_nodepath(^"./country_budget/nat_stock_est")
_mil_cost_val_label = get_label_from_nodepath(^"./country_budget/mil_cost_val")
_overseas_cost_val_label = get_label_from_nodepath(^"./country_budget/overseas_cost_val")
_ind_sub_val_label = get_label_from_nodepath(^"./country_budget/ind_sub_val")
_admin_efficiency_label = get_label_from_nodepath(^"./country_budget/admin_efficiency")
_exp_val_0_label = get_label_from_nodepath(^"./country_budget/exp_val_0")
_exp_val_1_label = get_label_from_nodepath(^"./country_budget/exp_val_1")
_exp_val_2_label = get_label_from_nodepath(^"./country_budget/exp_val_2")
_exp_val_3_label = get_label_from_nodepath(^"./country_budget/exp_val_3")
_total_exp_label = get_label_from_nodepath(^"./country_budget/total_exp")
# others
_tariffs_percent_label = get_label_from_nodepath(^"./country_budget/tariffs_percent")
_tariff_val_label = get_label_from_nodepath(^"./country_budget/tariff_val")
_diplomatic_balance_label = get_label_from_nodepath(^"./country_budget/diplomatic_balance")
_balance_label = get_label_from_nodepath(^"./country_budget/balance")

# sliders
# income
var _lower_class_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/tax_0_slider")
var _middle_class_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/tax_1_slider")
var _upper_class_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/tax_2_slider")
# costs
var _land_stockpile_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/land_stockpile_slider")
var _naval_stockpile_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/naval_stockpile_slider")
var _projects_stockpile_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/projects_stockpile_slider")
var _exp_0_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/exp_0_slider")
var _exp_1_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/exp_1_slider")
var _exp_2_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/exp_2_slider")
var _exp_3_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/exp_3_slider")
# others
var _tariff_slider : GUIScrollbar = get_gui_scrollbar_from_nodepath(^"./country_budget/tariff_slider")

# debt buttons
var _tab_takenloans_button : Button = get_button_from_nodepath(^"./country_budget/tab_takenloans")
var _tab_givenloans_button : Button = get_button_from_nodepath(^"./country_budget/tab_givenloans")
var _debt_sort_country_button : Button = get_button_from_nodepath(^"./country_budget/debt_sort_country")
var _debt_sort_amount_button : Button = get_button_from_nodepath(^"./country_budget/debt_sort_amount")
var _take_loan_button : Button = get_button_from_nodepath(^"./country_budget/take_loan")
var _repay_loan_button : Button = get_button_from_nodepath(^"./country_budget/repay_loan")

# charts
var _lower_class_chart : GFXPieChartTexture = get_gfx_pie_chart_texture_from_nodepath(^"./country_budget/chart_0")
var _middle_class_chart : GFXPieChartTexture = get_gfx_pie_chart_texture_from_nodepath(^"./country_budget/chart_1")
var _upper_class_chart : GFXPieChartTexture = get_gfx_pie_chart_texture_from_nodepath(^"./country_budget/chart_2")
var _debt_chart : GFXPieChartTexture = get_gfx_pie_chart_texture_from_nodepath(^"./country_budget/chart_debt")

if _tab_takenloans_button:
_tab_takenloans_button.pressed.connect(_switch_loans_tab.bind(true))
if _tab_givenloans_button:
_tab_givenloans_button.pressed.connect(_switch_loans_tab.bind(false))
if _debt_sort_country_button:
_debt_sort_country_button.pressed.connect(_sort_loans.bind(true))
if _debt_sort_amount_button:
_debt_sort_amount_button.pressed.connect(_sort_loans.bind(false))
if _take_loan_button:
_take_loan_button.pressed.connect(_take_loan)
if _repay_loan_button:
_repay_loan_button.pressed.connect(_repay_loan)

# -------------------------------------------------------------------------
# --------------- substitute for real values and operations ---------------
# -------------------------------------------------------------------------
# income
if _lower_class_slider and _lower_class_label:
_lower_class_slider.value_changed.connect(func(value : int) -> void: _lower_class_label.text = "%s£" % value)
_lower_class_slider.emit_value_changed()
if _middle_class_slider and _middle_class_label:
_middle_class_slider.value_changed.connect(func(value : int) -> void: _middle_class_label.text = "%s£" % value)
_middle_class_slider.emit_value_changed()
if _upper_class_slider and _upper_class_label:
_upper_class_slider.value_changed.connect(func(value : int) -> void: _upper_class_label.text = "%s£" % value)
_upper_class_slider.emit_value_changed()
# expenses
if _land_stockpile_slider and _mil_cost_val_label:
_land_stockpile_slider.value_changed.connect(func(value : int) -> void: _mil_cost_val_label.text = "%s£" % value)
_land_stockpile_slider.emit_value_changed()
if _naval_stockpile_slider and _overseas_cost_val_label:
_naval_stockpile_slider.value_changed.connect(func(value : int) -> void: _overseas_cost_val_label.text = "%s£" % value)
_naval_stockpile_slider.emit_value_changed()
if _projects_stockpile_slider:
if _nat_stock_val_label:
_projects_stockpile_slider.value_changed.connect(func(value : int) -> void: _nat_stock_val_label.text = "%s£" % value)
if _nat_stock_est_label:
_projects_stockpile_slider.value_changed.connect(func(value : int) -> void: _nat_stock_est_label.text = "%s£" % value)
_projects_stockpile_slider.emit_value_changed()
if _exp_0_slider and _exp_val_0_label:
_exp_0_slider.value_changed.connect(func(value : int) -> void: _exp_val_0_label.text = "%s£" % value)
_exp_0_slider.emit_value_changed()
if _exp_1_slider and _exp_val_1_label:
_exp_1_slider.value_changed.connect(func(value : int) -> void: _exp_val_1_label.text = "%s£" % value)
_exp_1_slider.emit_value_changed()
if _exp_2_slider and _exp_val_2_label:
_exp_2_slider.value_changed.connect(func(value : int) -> void: _exp_val_2_label.text = "%s£" % value)
_exp_2_slider.emit_value_changed()
if _exp_3_slider and _exp_val_3_label:
_exp_3_slider.value_changed.connect(func(value : int) -> void: _exp_val_3_label.text = "%s£" % value)
_exp_3_slider.emit_value_changed()
if _exp_1_slider and _admin_efficiency_label:
_exp_1_slider.value_changed.connect(func(value : int) -> void: _admin_efficiency_label.text = "%s%%" % value)
_exp_1_slider.emit_value_changed()
# others
if _tariff_slider:
if _tariff_val_label:
_tariff_slider.value_changed.connect(func(value : int) -> void: _tariff_val_label.text = "%s£" % value)
if _tariffs_percent_label:
_tariff_slider.value_changed.connect(func(value : int) -> void: _tariffs_percent_label.text = "%s%%" % value)
_tariff_slider.emit_value_changed()
# charts
#if _x_chart:
# _x_chart.set_slices_array(...)

# -------------------------------------------------------------------------

_update_info()

func _notification(what : int) -> void:
Expand All @@ -41,8 +187,46 @@ func _on_update_active_nation_management_screen(active_screen : NationManagement
_update_info()

func _update_info() -> void:
# TODO - remove _incVal and link the true data with the UI
_incVal += 1

if _active:
# TODO - update UI state
_gold_label.text = "%s£" % (_incVal - (_incVal % 7))
_total_inc_label.text = "%s£" % _incVal
_national_bank_label.text = "%s£" % (_incVal * 2)
_total_funds_label.text = "%s£" % (_incVal * 3)
_debt_val_label.text = "%s£" % (_incVal * 4)
_interest_val_label.text = "%s£" % (_incVal * 5)
_ind_sub_val_label.text = "%s£" % (_incVal * 6)
_diplomatic_balance_label.text = "%s£" % (_incVal * 8)
_total_exp_label.text = "%s£" % (_incVal + 1)
_balance_label.text = "%s£" % _incVal
if _incVal > 0:
_balance_label.add_theme_color_override("font_color", Color.DARK_GREEN)
elif _incVal < 0:
_balance_label.add_theme_color_override("font_color", Color.RED)
else:
_balance_label.add_theme_color_override("font_color", Color.BLACK)
show()
else:
hide()

func _switch_loans_tab(taken_loans : bool) -> void:
# TODO - code the necessary logic
var _variable_so_that_the_function_compiles # remove later
#if taken_loans:
#else: # given loans

func _sort_loans(sort_by_country : bool) -> void:
# TODO - code the necessary logic
var _variable_so_that_the_function_compiles # remove later
#if sort_by_country:
#else: # sort by amount

func _take_loan() -> void:
# TODO - code the necessary logic
var _variable_so_that_the_function_compiles # remove later

func _repay_loan() -> void:
# TODO - code the necessary logic
var _variable_so_that_the_function_compiles # remove later

0 comments on commit af6c5fd

Please sign in to comment.