summaryrefslogtreecommitdiff
path: root/Game/Client.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2024-10-10 13:16:33 +0200
committerDaniel Weipert <git@mail.dweipert.de>2024-10-10 13:16:33 +0200
commit911699e9563a8791d72173b46fd8860ce15bb91a (patch)
tree0f62aa539c5662a9cf3a432e83e571631fd3f586 /Game/Client.gd
parent1aac583cee47d232ef22d8c5df97b888f689ab96 (diff)
intermediate commit
Diffstat (limited to 'Game/Client.gd')
-rw-r--r--Game/Client.gd32
1 files changed, 13 insertions, 19 deletions
diff --git a/Game/Client.gd b/Game/Client.gd
index dbaf69e..dc18765 100644
--- a/Game/Client.gd
+++ b/Game/Client.gd
@@ -9,17 +9,16 @@ var state: State :
stage_state_changed.emit(value)
var stage: Stage
-var player: Player = Player.new()
-
-func _ready():
- #player = Player.new()
- player.id = multiplayer.get_unique_id()
+var _player: Player # workaround for MultiplayerSpawner
+var player: Player:
+ get():
+ if _player: return _player
+ else: return Network.get_player(multiplayer.get_unique_id())
-func update_player():
- Network.players[multiplayer.get_unique_id()] = player
- Network.update_player.rpc(Network.to_rpc_object(player))
+func _ready():
+ _player = preload("res://Game/Player.tscn").instantiate()
func initialize_stage(current_stage: Stage):
@@ -37,25 +36,20 @@ func place_tower(tower: Tower, position: Vector2):
#Network.place_tower.rpc(Network.to_rpc_object(tower), position)
player.towers[position] = tower
- player.score += 1
- update_player()
+ #player.score += 1
func remove_tower(tower: Tower):
if tower.owner_id == multiplayer.get_unique_id():
destroy_tower(tower)
- player.score -= 1
- update_player()
+ #player.score -= 1
func destroy_tower(tower: Tower):
- if multiplayer.is_server():
- stage.destroy_tower(tower)
- else:
- Network.destroy_tower.rpc_id(1, tower.global_position)
+ stage.destroy_tower(tower)
+ Network.destroy_tower.rpc(tower.global_position)
player.towers.erase(tower.global_position)
- update_player()
func select_tower(tower: Tower):
@@ -69,8 +63,8 @@ func deselect_tower():
tower.is_selected = false
-func update_tower(tower: Tower, data: Dictionary):
- Network.update_tower.rpc(tower.get_path(), data)
+func update_tower(path: NodePath, data: Tower.NetworkData):
+ Network.update_tower.rpc(path, inst_to_dict(data))
func spawn_unit(unit: Unit, spawn: Spawn):