diff options
author | metamuffin <metamuffin@disroot.org> | 2024-12-23 16:41:57 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-12-25 20:01:20 +0100 |
commit | 469d554381597a383aa799b29261786de19fb08e (patch) | |
tree | 229303a223d786f4f725b2f41e79b59d9e3a2e13 /client/game.gd | |
parent | b0df9b7c27a3d6316969d7feff4d912c3abf99f6 (diff) | |
download | hurrycurry-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.gd | 29 |
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: |