mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 15:38:14 +00:00
42 lines
1.0 KiB
GDScript
42 lines
1.0 KiB
GDScript
extends Node2D
|
|
|
|
@export var COIN_SPARKLE: PackedScene = null
|
|
|
|
@export var spinning_coin_scene: PackedScene = null
|
|
|
|
var can_spawn_particles := true
|
|
|
|
signal collected
|
|
|
|
func area_entered(area: Area2D) -> void:
|
|
if area.owner is Player:
|
|
collect()
|
|
|
|
func collect() -> void:
|
|
collected.emit()
|
|
$Hitbox.area_entered.disconnect(area_entered)
|
|
Global.coins += 1
|
|
DiscoLevel.combo_meter += 10
|
|
Global.score += 200
|
|
AudioManager.play_sfx("coin", global_position)
|
|
if can_spawn_particles and Settings.file.visuals.extra_particles == 1:
|
|
summon_particle()
|
|
$Sprite.queue_free()
|
|
else:
|
|
queue_free()
|
|
if get_parent() is TileMapLayer:
|
|
get_parent().erase_cell(get_parent().local_to_map(position))
|
|
|
|
func summon_block_coin() -> void:
|
|
var node = spinning_coin_scene.instantiate()
|
|
node.global_position = global_position
|
|
add_sibling(node)
|
|
queue_free()
|
|
if get_parent() is TileMapLayer:
|
|
get_parent().erase_cell(get_parent().local_to_map(position))
|
|
|
|
func summon_particle() -> void:
|
|
var node = COIN_SPARKLE.instantiate()
|
|
node.finished.connect(queue_free)
|
|
add_child(node)
|