summaryrefslogtreecommitdiff
path: root/Game/Client.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Game/Client.gd')
-rw-r--r--Game/Client.gd31
1 files changed, 21 insertions, 10 deletions
diff --git a/Game/Client.gd b/Game/Client.gd
index 3d9cf34..dbaf69e 100644
--- a/Game/Client.gd
+++ b/Game/Client.gd
@@ -9,11 +9,11 @@ var state: State :
stage_state_changed.emit(value)
var stage: Stage
-var player: Player
+var player: Player = Player.new()
func _ready():
- player = Player.new()
+ #player = Player.new()
player.id = multiplayer.get_unique_id()
@@ -29,11 +29,12 @@ func initialize_stage(current_stage: Stage):
func place_tower(tower: Tower, position: Vector2):
var network_id = multiplayer.get_unique_id()
tower.owner_id = network_id
- tower.set_multiplayer_authority(network_id)
+ #tower.set_multiplayer_authority(network_id)
tower.name = "Tower@" + str(network_id) + "@" + str(Time.get_ticks_usec())
stage.place_tower(tower, position)
- Network.place_tower.rpc(Network.to_rpc_object(tower), position)
+ Network.place_tower.rpc(inst_to_dict(tower.to_network_data()))
+ #Network.place_tower.rpc(Network.to_rpc_object(tower), position)
player.towers[position] = tower
player.score += 1
@@ -48,8 +49,10 @@ func remove_tower(tower: Tower):
func destroy_tower(tower: Tower):
- stage.destroy_tower(tower)
- Network.destroy_tower.rpc(Network.to_rpc_object(tower))
+ if multiplayer.is_server():
+ stage.destroy_tower(tower)
+ else:
+ Network.destroy_tower.rpc_id(1, tower.global_position)
player.towers.erase(tower.global_position)
update_player()
@@ -66,19 +69,27 @@ func deselect_tower():
tower.is_selected = false
+func update_tower(tower: Tower, data: Dictionary):
+ Network.update_tower.rpc(tower.get_path(), data)
+
+
func spawn_unit(unit: Unit, spawn: Spawn):
var network_id = multiplayer.get_unique_id()
unit.owner_id = network_id
- unit.set_multiplayer_authority(network_id)
+ #unit.set_multiplayer_authority(network_id)
unit.name = "Unit@" + str(network_id) + "@" + str(Time.get_ticks_usec())
unit.global_position = spawn.spawn_position
- unit.target = spawn.next_node
+ unit.target = spawn.next_node.path_position
unit.hp = randi_range(50, 150) #20000b
unit.speed = randi_range(100, 150)
- stage.spawn_unit(unit, spawn)
- Network.spawn_unit.rpc(Network.to_rpc_object(unit), Network.to_rpc_object(spawn))
+ stage.spawn_unit(unit)
+
+ #var data := UnitCreationData.fromUnit(unit)
+ var data := unit.to_network_data()
+ Network.spawn_unit.rpc(inst_to_dict(data))
+ #Network.spawn_unit.rpc(Network.to_rpc_object(unit), Network.to_rpc_object(spawn))
func array_intersect(first, second):