summaryrefslogtreecommitdiff
path: root/client/game.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/game.gd')
-rw-r--r--client/game.gd33
1 files changed, 19 insertions, 14 deletions
diff --git a/client/game.gd b/client/game.gd
index e7d39aa2..6c152d8a 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -53,6 +53,7 @@ var tile_collide: Array = []
var tile_interact: Array = []
var maps: Array = []
var bot_algos: Array
+var hand_count = 0
var text_message_history: Array[TextMessage] = []
var join_state: JoinState = JoinState.SPECTATING
@@ -95,6 +96,7 @@ func handle_packet(p):
tile_interact = p["data"]["tile_interact"]
maps = p["data"]["maps"]
bot_algos = p["data"]["bot_algos"]
+ hand_count = p["data"]["hand_count"]
tile_index_by_name.clear()
for id in tile_names.size():
@@ -128,8 +130,9 @@ func handle_packet(p):
if p.id == player_id:
set_join_state(JoinState.SPECTATING)
camera.target = $Center
- if player.hand != null:
- player.hand.queue_free()
+ for h in player.hand:
+ if h != null:
+ h.queue_free()
players.erase(p.id)
player.queue_free()
update_players.emit(players)
@@ -143,13 +146,13 @@ func handle_packet(p):
player_instance.position_ = last_position
"move_item":
if "player" in p.from and "player" in p.to:
- players[p.from.player].pass_to(players[p.to.player])
+ players[p.from.player[0]].pass_to(players[p.to.player[0]], int(p.from.player[1]), int(p.to.player[1]))
elif "tile" in p.from and "player" in p.to:
var t: Tile = map.get_tile_instance(p.from.tile)
- players[p.to.player].take_item(t)
+ players[p.to.player[0]].take_item(t, int(p.to.player[1]))
elif "player" in p.from and "tile" in p.to:
var t: Tile = map.get_tile_instance(p.to.tile)
- players[p.from.player].put_item(t)
+ players[p.from.player[0]].put_item(t, int(p.from.player[1]))
elif "tile" in p.from and "tile" in p.to:
var from_tile2: Tile = map.get_tile_instance(p.from.tile)
var to_tile2: Tile = map.get_tile_instance(p.to.tile)
@@ -159,13 +162,13 @@ func handle_packet(p):
var t: Tile = map.get_tile_instance(p.item.tile)
t.progress(p.position, p.speed, p.warn, players.get(p.player))
else:
- players[p.item.player].progress(p.position, p.speed, p.warn)
+ players[p.item.player[0]].progress(p.position, p.speed, p.warn, int(p.item.player[1]))
"clear_progress":
if "tile" in p.item:
var t: Tile = map.get_tile_instance(p.item.tile)
t.finish()
else:
- players[p.item.player].finish()
+ players[p.item.player[0]].finish(int(p.item.player[1]))
"set_item":
var location: Dictionary = p["location"]
if p.item != null:
@@ -177,21 +180,23 @@ func handle_packet(p):
i.name = item_names[p.item]
t.set_item(i)
else:
- var pl: Player = players[p.location.player]
- var i = ItemFactory.produce(item_names[p.item], pl.hand_base)
- i.position = pl.hand_base.global_position
+ var pl: Player = players[p.location.player[0]]
+ var h = p.location.player[1]
+ var i = ItemFactory.produce(item_names[p.item], pl.hand_base[h])
+ i.position = pl.hand_base[h].global_position
add_child(i)
i.name = item_names[p.item]
- pl.set_item(i)
+ pl.set_item(i, h)
else:
if "tile" in p.location:
var t: Tile = map.get_tile_instance(p.location.tile)
t.finish()
t.set_item(null)
else:
- var player: Player = players[p.location.player]
- player.finish()
- player.set_item(null)
+ var pl: Player = players[p.location.player[0]]
+ var h = p.location.player[1]
+ pl.finish(h)
+ pl.set_item(null, h)
"update_map":
var neighbors: Array = p["neighbors"]
if p.kind != null: