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")