You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

74 lines
1.5 KiB

class_name Country
extends Reference
signal state_changed()
var id
var name
var color
var money = 8 setget _set_money
var stock_price = 1
var total_stocks = 0
var player_stocks = [0,0,0]
var player_acceptance = [false, false, false]
var proposal = 0 setget _set_proposal
var tile_positions
var armies = []
var boats = []
var factory_positions = []
var grid
func add_unit(unit, v):
unit.country = self
armies.append(unit)
grid.add_unit(unit, v)
emit_signal("state_changed")
func remove_unit(unit):
armies.erase(unit)
grid.remove_unit(unit)
emit_signal("state_changed")
func add_boat(unit, v):
unit.country = self
boats.append(unit)
grid.add_boat(unit, v)
emit_signal("state_changed")
func remove_boat(unit):
boats.erase(unit)
grid.remove_boat(unit)
emit_signal("state_changed")
func get_net_profit():
return len(factory_positions) - len(armies) - len(boats)
func compute_balance():
money += get_net_profit()
emit_signal("state_changed")
func get_controller_id():
for i in len(player_stocks):
if player_stocks[i] >= 4:
return i
return -1
func process_proposal():
for i in len(player_acceptance):
var acceptance = player_acceptance[i]
var stocks = player_stocks[i]
if (not acceptance) and stocks > 0:
return false
stock_price += proposal
proposal = 0
player_acceptance = [false, false, false]
emit_signal("state_changed")
return true
func _set_money(value):
money = value
emit_signal("state_changed")
func _set_proposal(value):
proposal = value
emit_signal("state_changed")