added in coin sparkles to blue coins and red coins

This commit is contained in:
JHDev2006
2025-09-28 16:49:08 +01:00
parent 6d23f9dcd4
commit f4cdbe18cb
27 changed files with 948 additions and 352 deletions

View File

@@ -1,5 +1,6 @@
extends Node2D
const COIN_SPARKLE = preload("res://Scenes/Prefabs/Particles/CoinSparkle.tscn")
@export var COIN_SPARKLE: PackedScene = null
@export var spinning_coin_scene: PackedScene = null

View File

@@ -4,7 +4,9 @@ extends Node2D
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):
@@ -23,7 +25,16 @@ func collected() -> void:
ChallengeModeHandler.red_coins += 1
Global.score += 200
ChallengeModeHandler.set_value(id, true)
queue_free()
if can_spawn_particles:
summon_particle()
$Sprite.queue_free()
else:
queue_free()
func summon_particle() -> void:
var node = COIN_SPARKLE.instantiate()
node.finished.connect(queue_free)
add_child(node)
func summon_bounced_coin() -> void:
var node = SPINNING_RED_COIN.instantiate()

6
Scripts/Classes/Entities/Items/SpinningCoin.gd Executable file → Normal file
View File

@@ -1,5 +1,7 @@
extends Node2D
const COIN_SPARKLE = preload("res://Scenes/Prefabs/Particles/CoinSparkle.tscn")
@export var particle: PackedScene = null
var velocity := Vector2(0, -300)
var can_spawn_particles := true
@@ -22,6 +24,6 @@ func vanish() -> void:
queue_free()
func summon_particle() -> void:
var node = COIN_SPARKLE.instantiate()
var node = particle.instantiate()
node.finished.connect(queue_free)
add_child(node)

View File

@@ -8,6 +8,9 @@ const collection_sounds := [preload("uid://drr1qqeuhmv6m"), preload("uid://de1tk
var already_collected := false
var can_spawn_particles := false
@onready var COIN_SPARKLE = load("res://Scenes/Prefabs/Particles/RedCoinSparkle.tscn")
func _ready() -> void:
already_collected = ChallengeModeHandler.is_coin_collected(id)
if already_collected == false:
@@ -25,4 +28,14 @@ func _physics_process(delta: float) -> void:
velocity.y += (15 / delta) * delta
func vanish() -> void:
queue_free()
if can_spawn_particles:
$Sprite.queue_free()
summon_particle()
else:
queue_free()
func summon_particle() -> void:
var node = COIN_SPARKLE.instantiate()
node.finished.connect(queue_free)
node.global_position = global_position
add_sibling(node)