stock price and buying factories

master
potatoxel 7 months ago
parent 8ea75b804b
commit 2d9334f1bf
  1. 5
      prefabs/grid/grid.gd
  2. 2
      scenes/game/country.gd
  3. 43
      scenes/game/game.gd
  4. 56
      scenes/game/game.tscn

@ -1,6 +1,8 @@
class_name Grid
extends Node2D
signal tile_pressed(v)
var tileset_texture_2x: ImageTexture
var grid: Dictionary#<Vector2, TileInfo>
var Army = preload("res://prefabs/units/army/army.tscn")
@ -165,7 +167,8 @@ func _setup_map():
func _process(delta):
if Input.is_action_just_pressed("pick_tile"):
var position = $TileMap.world_to_map(get_local_mouse_position()/$TileMap.scale)
if position.x < 8 and position.y < 8:
emit_signal("tile_pressed", position)
func _get_atlas_from_tileset(tileset, name, texture):
var res = AtlasTexture.new()

@ -5,6 +5,7 @@ var id
var name
var color
var money = 8
var stock_price = 1
var tile_positions
var armies = []
var boats = []
@ -20,6 +21,5 @@ func remove_unit(unit):
armies.erase(unit)
grid.remove_unit(unit)
func compute_balance():
money += len(factory_positions) - len(armies) - len(boats)

@ -12,6 +12,8 @@ var countries = [
]
var country_turn_id = 0
var button_selected = null
var mouse_click_mode = null
func _ready():
randomize()
@ -36,7 +38,8 @@ func _ready():
countries[2].add_unit({}, Vector2(1,2))
func _process(delta):
$CanvasLayer/Control/CountryMoneyLabel.text = str(countries[country_turn_id].money) + "$"
$CanvasLayer/Control/VBoxContainer/CountryMoneyLabel.text = str(countries[country_turn_id].money) + "$"
$CanvasLayer/Control/VBoxContainer/StockPriceLabel.text = "STOCK PRICE: " + str(countries[country_turn_id].stock_price) + "$"
func _on_EndTurnButton_pressed():
for army in countries[country_turn_id].armies:
@ -45,4 +48,40 @@ func _on_EndTurnButton_pressed():
country_turn_id += 1
if country_turn_id == 8: country_turn_id = 1
$CanvasLayer/Control/TurnLabel.text = countries[country_turn_id].name + "'s turn."
$CanvasLayer/Control/VBoxContainer/TurnLabel.text = countries[country_turn_id].name + "'s turn."
func _on_BuyFactory_pressed():
if button_selected: button_selected.pressed = false
button_selected = $CanvasLayer/Control/VBoxContainer/BuyFactory
mouse_click_mode = "buy_factory"
button_selected.pressed = true
func _on_BuyArmy_pressed():
if button_selected: button_selected.pressed = false
button_selected = $CanvasLayer/Control/VBoxContainer/BuyArmy
mouse_click_mode = "buy_army"
button_selected.pressed = true
func _on_BuyBoat_pressed():
if button_selected: button_selected.pressed = false
button_selected = $CanvasLayer/Control/VBoxContainer/BuyBoat
mouse_click_mode = "buy_boat"
button_selected.pressed = true
func _on_Grid_tile_pressed(v):
var country = countries[country_turn_id]
var tile = $Grid.grid[v]
match mouse_click_mode:
"buy_factory":
if country.money >= 5 and tile.country == country and not tile.factory:
country.money -= 5
$Grid.set_factory(v, true)
func _input(event):
if event is InputEventMouseButton:
if event.pressed and event.button_index == BUTTON_RIGHT:
if button_selected:
button_selected.pressed = false
mouse_click_mode = null

@ -18,14 +18,53 @@ margin_top = 10.0
margin_right = -10.0
margin_bottom = -10.0
[node name="TurnLabel" type="Label" parent="CanvasLayer/Control"]
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Control"]
anchor_left = 1.0
anchor_right = 1.0
margin_left = -79.0
margin_left = -176.0
margin_bottom = 135.0
[node name="TurnLabel" type="Label" parent="CanvasLayer/Control/VBoxContainer"]
margin_right = 176.0
margin_bottom = 14.0
text = "TURN: ####"
align = 2
[node name="CountryMoneyLabel" type="Label" parent="CanvasLayer/Control/VBoxContainer"]
margin_top = 18.0
margin_right = 176.0
margin_bottom = 32.0
text = "?????$"
align = 2
[node name="StockPriceLabel" type="Label" parent="CanvasLayer/Control/VBoxContainer"]
margin_top = 36.0
margin_right = 176.0
margin_bottom = 50.0
text = "STOCK PRICE: ?????$"
align = 2
[node name="BuyFactory" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
margin_top = 54.0
margin_right = 176.0
margin_bottom = 74.0
toggle_mode = true
text = "Buy factory"
[node name="BuyArmy" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
margin_top = 78.0
margin_right = 176.0
margin_bottom = 98.0
toggle_mode = true
text = "Buy army"
[node name="BuyBoat" type="Button" parent="CanvasLayer/Control/VBoxContainer"]
margin_top = 102.0
margin_right = 176.0
margin_bottom = 122.0
toggle_mode = true
text = "Buy boat"
[node name="EndTurnButton" type="Button" parent="CanvasLayer/Control"]
anchor_left = 1.0
anchor_top = 1.0
@ -35,13 +74,8 @@ margin_left = -79.0
margin_top = -40.0
text = "END TURN"
[node name="CountryMoneyLabel" type="Label" parent="CanvasLayer/Control"]
anchor_left = 1.0
anchor_right = 1.0
margin_left = -79.0
margin_top = 14.0
margin_bottom = 28.0
text = "?????$"
align = 2
[connection signal="tile_pressed" from="Grid" to="." method="_on_Grid_tile_pressed"]
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/BuyFactory" to="." method="_on_BuyFactory_pressed"]
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/BuyArmy" to="." method="_on_BuyArmy_pressed"]
[connection signal="pressed" from="CanvasLayer/Control/VBoxContainer/BuyBoat" to="." method="_on_BuyBoat_pressed"]
[connection signal="pressed" from="CanvasLayer/Control/EndTurnButton" to="." method="_on_EndTurnButton_pressed"]

Loading…
Cancel
Save