diff options
Diffstat (limited to 'Game/Client.gd')
-rw-r--r-- | Game/Client.gd | 31 |
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): |