summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-06-24 13:36:42 +0200
committermetamuffin <metamuffin@disroot.org>2025-06-24 13:36:42 +0200
commit0a76fc8e0f687acc7df5644a6629aa2f5f9d3372 (patch)
treeef00699fd5a1c5bab81c69b9ad753d699989354f
parente01f7e357ac91b48bb5a4e9f6b741375bc415f84 (diff)
downloadhurrycurry-0a76fc8e0f687acc7df5644a6629aa2f5f9d3372.tar
hurrycurry-0a76fc8e0f687acc7df5644a6629aa2f5f9d3372.tar.bz2
hurrycurry-0a76fc8e0f687acc7df5644a6629aa2f5f9d3372.tar.zst
player despawn animation; close #327
-rw-r--r--client/game.gd2
-rw-r--r--client/player/player.gd8
2 files changed, 8 insertions, 2 deletions
diff --git a/client/game.gd b/client/game.gd
index f159077e..37404b7a 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -137,7 +137,7 @@ func handle_packet(p):
if h != null:
h.queue_free()
players.erase(p.id)
- player.queue_free()
+ player.is_despawning = true
update_players.emit(players)
"movement":
var player_instance: Player = players[p.player]
diff --git a/client/player/player.gd b/client/player/player.gd
index c82cf6e6..8121bb90 100644
--- a/client/player/player.gd
+++ b/client/player/player.gd
@@ -41,6 +41,8 @@ var marker: Marker = preload("res://player/marker/marker.tscn").instantiate()
var clear_timer: Timer = Timer.new()
+var is_despawning: bool = false
+
var hand = [null, null]
var hand_base
var character_style: Dictionary
@@ -170,7 +172,11 @@ func _process(delta):
character.walking = walking
character.boosting = boosting
walking = false
- movement_base.scale = Vector3.ONE * G.interpolate(movement_base.scale.x, 1, delta * 8)
+ if is_despawning:
+ movement_base.scale /= exp(delta * 8)
+ if movement_base.scale.length() < 0.01: self.queue_free()
+ else:
+ movement_base.scale = Vector3.ONE * G.interpolate(movement_base.scale.x, 1, delta * 8)
func clear_message():
item_bubble.remove_item()