mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-21 23:18:11 +00:00
44 lines
1.4 KiB
GDScript
44 lines
1.4 KiB
GDScript
extends Node2D
|
|
|
|
@export var id := 0
|
|
var already_collected := false
|
|
const COLLECTION_SFXS := [preload("uid://drr1qqeuhmv6m"), preload("uid://de1tktivtggdv"), preload("uid://cdtlca36qsba5"), preload("uid://dd47k4c5sypwp"), preload("uid://chi2nogc2op4i")]
|
|
const SPINNING_RED_COIN = preload("res://Scenes/Prefabs/Entities/Items/SpinningRedCoin.tscn")
|
|
var can_spawn_particles := false
|
|
|
|
@onready var COIN_SPARKLE = load("res://Scenes/Prefabs/Particles/RedCoinSparkle.tscn")
|
|
|
|
func _ready() -> void:
|
|
if ChallengeModeHandler.is_coin_collected(id):
|
|
already_collected = true
|
|
$Sprite.play("Collected")
|
|
set_visibility_layer_bit(0, false)
|
|
|
|
func on_area_entered(area: Area2D) -> void:
|
|
if area.owner is Player:
|
|
collected()
|
|
|
|
func collected() -> void:
|
|
if already_collected:
|
|
AudioManager.play_sfx("coin", global_position, 2)
|
|
else:
|
|
AudioManager.play_sfx(COLLECTION_SFXS[ChallengeModeHandler.red_coins], global_position)
|
|
ChallengeModeHandler.red_coins += 1
|
|
Global.score += 200
|
|
ChallengeModeHandler.set_value(id, true)
|
|
if can_spawn_particles and Settings.file.visuals.extra_particles == 1:
|
|
summon_particle()
|
|
queue_free()
|
|
|
|
func summon_particle() -> void:
|
|
var node = COIN_SPARKLE.instantiate()
|
|
node.global_position = global_position
|
|
add_sibling(node)
|
|
|
|
func summon_bounced_coin() -> void:
|
|
var node = SPINNING_RED_COIN.instantiate()
|
|
node.id = id
|
|
node.global_position = global_position + Vector2(0, 8)
|
|
add_sibling(node)
|
|
queue_free()
|