37 lines
1.1 KiB
GDScript
37 lines
1.1 KiB
GDScript
extends Node2D
|
|
|
|
signal collected(shard_number)
|
|
|
|
export var number = 0 #Used for saving which specific shards collected
|
|
|
|
onready var player: Node2D = get_tree().get_nodes_in_group("player").pop_back()
|
|
|
|
var gotten := false
|
|
|
|
func _ready():
|
|
player.connect("died", self, "_on_player_died")
|
|
var hud = get_tree().get_nodes_in_group("hud").pop_back()
|
|
if hud != null:
|
|
connect("collected",hud,"shard_popup")
|
|
$AnimationPlayer.play("glow")
|
|
|
|
func _on_Area2D_body_entered(body):
|
|
#Collect
|
|
if body.is_in_group("player") and not gotten:
|
|
gotten = true
|
|
$Sprite.visible = false
|
|
Audio.play_sound(Audio.a_star,Audio.ac_collectible)
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
if gotten or Game.shards >= 4:
|
|
var player: Node2D = get_tree().get_nodes_in_group("player").pop_back()
|
|
if Game.get_sector(player.global_position) != Game.get_sector(global_position):
|
|
Game.score += 500
|
|
Game.shards_collected[number] = true
|
|
emit_signal("collected",number)
|
|
Audio.play_shard_sound()
|
|
queue_free()
|
|
|
|
func _on_player_died() -> void:
|
|
gotten = false
|
|
$Sprite.visible = true
|