extends Spatial # MULTIPLAYER DATA var gc_client # to be assigned by MainScene upon game creation/joining # END MULTIPLAYER DATA # GAME DATA enum { PREGAME, PLACING, DETERMINE_ACTIONS, MOVEMENT } var game_state: int var BOARD_GEN_PARAMS = { "airport_style" : 0, # 0 = colors + numbers, 1 = names "num_airports" : 18, "board_side_length" : 6, "num_hills" : 8, "num_mountains" : 4, "runways_per_airport" : 0 # 0 random, 1-3 } var RULES = { "fly_over_airports" : 0, # 1 = only at altitude 2, 2 = any altitude "must_land_on_final_action" : 0, "takeoff_action" : 2, # 0 - 4 "move_forward_order" : 0, # 0 = either before or after, 1 = after, 2 = before "gamemode" : 0, # 0 = cooperative, 1 = versus "plane_assignment" : 0, # 0 = random, 1 = draft "altitude_and_turn" : 0, # whether a plane can change altitude and turn in the same action "event_frequency" : 1, # turns per event "weather_enabled" : 1, "misc_enabled" : 1, "new_planes_per_turn" : 4, # 1 - 8 "ramp_up_enabled" : 0, # whether to ramp up to max planes per turn "starting_planes_per_player": 4, "round_timer" : 60, # seconds } onready var BOARD = $Board var PLANES = [] var desired_player_count: int var is_board_generated: bool = false # determine whether host can begin the game # END GAME DATA # directions: E, NE, NW, W, SW, SE const adjacent_offsets = [ [0,1] , [-1, 0], [-1, -1], [0, -1], [1, 0], [1, 1] ] func _ready(): pass func set_up(ws_client, is_host: bool, lobby_id: String, player_id: String, rejoin_key: String): self.ws_client = ws_client self.is_host = is_host self.lobby_id = lobby_id self.player_id = player_id self.rejoin_key = rejoin_key # ask host for complete game state. returned fields will depend on game state func request_complete_game_state(): if is_host: return var request = { "type" : "request", "source" : host_id, "requested_data" : "ALL" }