summaryrefslogtreecommitdiff
path: root/client/game.gd
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-12-23 16:41:57 +0100
committermetamuffin <metamuffin@disroot.org>2024-12-25 20:01:20 +0100
commit469d554381597a383aa799b29261786de19fb08e (patch)
tree229303a223d786f4f725b2f41e79b59d9e3a2e13 /client/game.gd
parentb0df9b7c27a3d6316969d7feff4d912c3abf99f6 (diff)
downloadhurrycurry-469d554381597a383aa799b29261786de19fb08e.tar
hurrycurry-469d554381597a383aa799b29261786de19fb08e.tar.bz2
hurrycurry-469d554381597a383aa799b29261786de19fb08e.tar.zst
two-handed mostly works
Diffstat (limited to 'client/game.gd')
-rw-r--r--client/game.gd29
1 files changed, 16 insertions, 13 deletions
diff --git a/client/game.gd b/client/game.gd
index e7d39aa2..850d539e 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -128,8 +128,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 +144,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]], p.from.player[1], 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, 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, 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,7 +160,7 @@ 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, p.item.player[1])
"clear_progress":
if "tile" in p.item:
var t: Tile = map.get_tile_instance(p.item.tile)
@@ -177,21 +178,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[G.hand_to_index(h)])
+ i.position = pl.hand_base[G.hand_to_index(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()
+ pl.set_item(null, h)
"update_map":
var neighbors: Array = p["neighbors"]
if p.kind != null: