aboutsummaryrefslogtreecommitdiff
path: root/client/player/player.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/player/player.gd')
-rw-r--r--client/player/player.gd40
1 files changed, 38 insertions, 2 deletions
diff --git a/client/player/player.gd b/client/player/player.gd
index b20eba14..75e3861e 100644
--- a/client/player/player.gd
+++ b/client/player/player.gd
@@ -30,6 +30,9 @@ var position_anim = Vector2(0, 0)
var character: Character = preload("res://player/character/character.tscn").instantiate()
var chat_bubble: ChatBubble = preload("res://player/chat_bubble.tscn").instantiate()
var item_bubble: ItemBubble = preload("res://player/item_bubble.tscn").instantiate()
+var effect: Effect = preload("res://player/effect.tscn").instantiate()
+
+var clear_timer: Timer = Timer.new()
var hand: Item = null
var hand_base: Node3D = Node3D.new()
@@ -50,12 +53,18 @@ func _init(_id: int, new_name: String, pos: Vector2, new_character_idx: int, new
add_child(chat_bubble)
add_child(item_bubble)
-
+ add_child(effect)
+
+ clear_timer.one_shot = true
+ clear_timer.wait_time = 5.
+ add_child(clear_timer)
+
character_idx = new_character_idx
-
+
func _ready():
character.select_hairstyle(character_idx)
+ clear_timer.timeout.connect(clear_message)
func update_position(new_position: Vector2, new_rotation: float):
position_ = new_position
@@ -97,3 +106,30 @@ func _process(delta):
position.z = position_anim.y
rotation.y = rotation_anim
character.walking = position_.distance_squared_to(position_anim) > 0.001
+
+
+func clear_message():
+ item_bubble.remove_item()
+ chat_bubble.remove_text()
+ effect.clear_effect()
+
+func item_message(item_name: String, persist: bool):
+ item_bubble.set_item(item_name)
+ if persist:
+ clear_timer.stop()
+ else:
+ clear_timer.start()
+
+func text_message(m: String, persist: bool):
+ chat_bubble.set_text(m)
+ if persist:
+ clear_timer.stop()
+ else:
+ clear_timer.start()
+
+func effect_message(effect_name: String, persist: bool):
+ effect.set_effect(effect_name)
+ if persist:
+ clear_timer.stop()
+ else:
+ clear_timer.start()