summaryrefslogtreecommitdiff
path: root/Stages/Stage.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Stages/Stage.gd')
-rw-r--r--Stages/Stage.gd41
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]