summaryrefslogtreecommitdiff
path: root/Target/balloon.gd
blob: af7a8bd62600b6c945701681457547d8994d8f86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
extends CharacterBody2D


func _ready():
	if OS.has_feature("mobile"):
		scale = Vector2(1.5, 1.5)
	
	var tween = create_tween()
	tween.set_loops()
	tween.tween_method(func(value):
		$Line2D.set_point_position(2, Vector2(value, $Line2D.points[2].y))
	, -2, 2, randf_range(0.5, 1.5)).set_delay(0.01)
	tween.tween_method(func(value):
		$Line2D.set_point_position(2, Vector2(value, $Line2D.points[2].y))
	, 2, -2, randf_range(0.5, 1.5)).set_delay(0.01)
	tween.tween_method(func(value):
		$Line2D.set_point_position(3, Vector2(value, $Line2D.points[3].y))
	, -1, 1, randf_range(0.5, 1.5)).set_delay(0.01)
	tween.tween_method(func(value):
		$Line2D.set_point_position(3, Vector2(value, $Line2D.points[3].y))
	, 1, -1, randf_range(0.5, 1.5)).set_delay(0.01)


func _process(_delta: float) -> void:
	move_and_slide()
	
	var collision := get_last_slide_collision()
	if collision:
		velocity = velocity.bounce(collision.get_normal())


func _on_area_2d_area_entered(area: Area2D) -> void:
	if area.is_in_group("arrow"):
		Game.score += 1
		SoundManager.balloon.get_children().pick_random().play()
		queue_free()


func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
	queue_free()