diff options
Diffstat (limited to 'Stages/Stage.gd')
-rw-r--r-- | Stages/Stage.gd | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/Stages/Stage.gd b/Stages/Stage.gd index e5bd217..e958b86 100644 --- a/Stages/Stage.gd +++ b/Stages/Stage.gd @@ -7,10 +7,6 @@ signal path_grid_changed static var map: TileMapLayer static var path_grid: AStarGrid2D static var last_solid_set_points: Array[Vector2] -static var towers: Node -static var units: Node -static var spawn: Spawn -static var hud: HUD func _ready() -> void: @@ -25,13 +21,6 @@ func _ready() -> void: path_grid.diagonal_mode = AStarGrid2D.DIAGONAL_MODE_AT_LEAST_ONE_WALKABLE path_grid.update() - towers = get_node("%Towers") # y-sort? - #towers = self - units = get_node("%Units") # y-sort? - #units = self - spawn = get_node("%Spawn") - hud = get_node("%HUD") - assert(get_node("%StateManager"), "StateManager missing") assert(get_node("%StateManager").get_children().size() > 0, "StateManager has no States") @@ -41,14 +30,16 @@ func _ready() -> void: path_grid.set_point_solid(cell, true) -func place_tower(tower: Tower, position: Vector2): +func place_tower(_remote_data: Dictionary) -> void: + pass + +func _place_tower(parent: Node2D, tower: Tower): var player: Player = Network.get_player(tower.owner_id) tower.get_node("Sprite2D").modulate = player.get_color() tower.get_node("ComponentsAnchor").modulate = player.get_color() - tower.global_position = position fill_tower_region(tower, true) - towers.add_child(tower, true) + parent.add_child(tower, true) func destroy_tower(tower: Tower): @@ -78,9 +69,25 @@ func fill_tower_region(tower: Tower, solid = true): path_grid_changed.emit() -@warning_ignore("shadowed_variable") -func spawn_unit(unit: Unit):#, _spawn: Spawn): +func spawn_unit(_remote_data: Dictionary) -> void: + pass + +func _spawn_unit(parent: Node2D, unit: Unit): var player: Player = Network.get_player(unit.owner_id) unit.get_node("Sprite2D").modulate = player.get_color() - units.add_child(unit, true) + parent.add_child(unit, true) + + +func transform_players(script: Script): + for player in Network.get_node("%Players").get_children(): + var previous_values := {} + var property_list = player.get_script().get_script_property_list().filter(func(item): + return item.type != 0 + ) + for property in property_list: + previous_values[property.name] = player[property.name] + + player.set_script(script) + for property in previous_values: + player[property] = previous_values[property] |