hero-mark-2/objects/collectibles/shard.gd

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