|
|
|
@ -91,10 +91,18 @@ func _setup_stock_ui(): |
|
|
|
|
buy_btn.text = "Buy" |
|
|
|
|
var sell_btn = Button.new() |
|
|
|
|
sell_btn.text = "Sell" |
|
|
|
|
var proposal_lbl = Label.new() |
|
|
|
|
proposal_lbl.text = "0$" |
|
|
|
|
var acceptance_btn = Button.new() |
|
|
|
|
acceptance_btn.text = "Accept" |
|
|
|
|
acceptance_btn.toggle_mode = true |
|
|
|
|
acceptance_btn.connect("toggled", self, "_on_acceptance_btn_toggled", [country]) |
|
|
|
|
|
|
|
|
|
stocks_ui.append({ |
|
|
|
|
stock_price_lbl = stock_price_lbl, |
|
|
|
|
stock_lbl = stock_lbl |
|
|
|
|
stock_lbl = stock_lbl, |
|
|
|
|
proposal_lbl = proposal_lbl, |
|
|
|
|
acceptance_btn = acceptance_btn, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
buy_btn.connect("pressed", self, "_on_stock_buy_button_pressed", [country]) |
|
|
|
@ -105,6 +113,8 @@ func _setup_stock_ui(): |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/Stocks.add_child(stock_lbl) |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/Stocks.add_child(buy_btn) |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/Stocks.add_child(sell_btn) |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/Stocks.add_child(proposal_lbl) |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/Stocks.add_child(acceptance_btn) |
|
|
|
|
|
|
|
|
|
func _refresh_stock_ui(): |
|
|
|
|
for country in countries: |
|
|
|
@ -112,6 +122,34 @@ func _refresh_stock_ui(): |
|
|
|
|
var ui = stocks_ui[country.id] |
|
|
|
|
ui.stock_price_lbl.text = str(country.stock_price) |
|
|
|
|
ui.stock_lbl.text = str(turn.object.stocks[country.id]) |
|
|
|
|
ui.proposal_lbl.text = str(country.proposal) + "$" |
|
|
|
|
ui.acceptance_btn.pressed = country.player_acceptance[turn.object.id] |
|
|
|
|
|
|
|
|
|
func set_proposal_display(cur_btn): |
|
|
|
|
cur_btn.pressed = true |
|
|
|
|
for button in $CanvasLayer/Control/VBoxContainer/CountryProposal.get_children(): |
|
|
|
|
if button is Button and button != cur_btn: |
|
|
|
|
button.pressed = false |
|
|
|
|
|
|
|
|
|
func _on_ProposalMinus1_pressed(): |
|
|
|
|
if turn.object.stock_price > 1: |
|
|
|
|
set_proposal_display($CanvasLayer/Control/VBoxContainer/CountryProposal/ProposalMinus1) |
|
|
|
|
turn.object.proposal = -1 |
|
|
|
|
else: |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/CountryProposal/ProposalMinus1.pressed = false |
|
|
|
|
|
|
|
|
|
func _on_ProposalZero_pressed(): |
|
|
|
|
set_proposal_display($CanvasLayer/Control/VBoxContainer/CountryProposal/ProposalZero) |
|
|
|
|
turn.object.proposal = 0 |
|
|
|
|
|
|
|
|
|
func _on_ProposalPlus1_pressed(): |
|
|
|
|
set_proposal_display($CanvasLayer/Control/VBoxContainer/CountryProposal/ProposalPlus1) |
|
|
|
|
turn.object.proposal = 1 |
|
|
|
|
|
|
|
|
|
func _on_acceptance_btn_toggled(value, country): |
|
|
|
|
country.player_acceptance[turn.object.id] = value |
|
|
|
|
country.process_proposal() |
|
|
|
|
_refresh_stock_ui() |
|
|
|
|
|
|
|
|
|
func _on_stock_buy_button_pressed(country): |
|
|
|
|
if turn.object.money >= country.stock_price and country.total_stocks < 7: |
|
|
|
@ -148,7 +186,7 @@ func _process(delta): |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/BuyBoat.visible = turn.layer == "country" |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/Stocks.visible = turn.layer == "player" |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/PayDividends.visible = turn.layer == "country" |
|
|
|
|
|
|
|
|
|
$CanvasLayer/Control/VBoxContainer/CountryProposal.visible = turn.layer == "country" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func _on_EndTurnButton_pressed(): |
|
|
|
@ -168,9 +206,16 @@ func _on_EndTurnButton_pressed(): |
|
|
|
|
_refresh_stock_ui() |
|
|
|
|
else: |
|
|
|
|
$CanvasLayer/Control/ControllerLabel.text = "Controller: " + (players[turn.object.get_controller_id()].name if turn.object.get_controller_id() >= 0 else "none") |
|
|
|
|
var proposal_btns = [ |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/CountryProposal/ProposalMinus1, |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/CountryProposal/ProposalZero, |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/CountryProposal/ProposalPlus1 |
|
|
|
|
] |
|
|
|
|
set_proposal_display(proposal_btns[turn.object.proposal + 1]) |
|
|
|
|
$CanvasLayer/Control/ControllerLabel.visible = turn.layer == "country" |
|
|
|
|
$CanvasLayer/Control/VBoxContainer/TurnLabel.text = turn.object.name + "'s turn." |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func _on_BuyFactory_pressed(): |
|
|
|
|
if button_selected: button_selected.pressed = false |
|
|
|
@ -227,3 +272,5 @@ func _input(event): |
|
|
|
|
button_selected.pressed = false |
|
|
|
|
mouse_click_mode = null |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|