summaryrefslogtreecommitdiffstats
path: root/relic.gd
blob: 6af34059fdb7897b2d2837f44bf89f7eb2ce140e (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
extends Sprite2D

@onready var top: Top = get_tree().root.get_node("Top")
@onready var ordinal = int(name.replace("Relic", ""))

var t: float = 0
const w: float = 5
const A: float = 1

var oscing = true
var already_got = false

func _ready():
	for existing in top.inventory.relics:
		if existing == ordinal:
			turn_transparent()
			already_got = true
			break

func turn_transparent():
	modulate.a = 0.3

func _physics_process(delta: float) -> void:
	if oscing: t += delta
	offset.y = A * sin(w * t)

func _on_area_2d_body_entered(player: Player) -> void:
	top.inventory.add_relic(ordinal)
	top.game_save()

	if already_got:
		queue_free()
	else:
		var dia = DialogueRelicGet.new(self)
		dia.process_mode = Node.PROCESS_MODE_ALWAYS
		get_parent().add_child(dia)