diff options
Diffstat (limited to 'client/player/player.gd')
| -rw-r--r-- | client/player/player.gd | 40 | 
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() | 
