From f4cdbe18cbb982aa53560f7e55c0f2d8393815f7 Mon Sep 17 00:00:00 2001 From: JHDev2006 Date: Sun, 28 Sep 2025 16:49:08 +0100 Subject: [PATCH] added in coin sparkles to blue coins and red coins --- Assets/Sprites/Items/BlueCoin.json | 1 + Assets/Sprites/Items/Coin.json | 2 +- Assets/Sprites/Items/RedCoin.json | 1 + Assets/Sprites/Items/SpinningCoin.json | 4 +- Assets/Sprites/Particles/BlueCoinSparkle.json | 11 + Assets/Sprites/Particles/BlueCoinSparkle.png | Bin 0 -> 193 bytes .../Particles/BlueCoinSparkle.png.import | 40 + Assets/Sprites/Particles/CoinSparkle.json | 3 +- Assets/Sprites/Particles/RedCoinSparkle.json | 11 + Assets/Sprites/Particles/RedCoinSparkle.png | Bin 0 -> 222 bytes .../Particles/RedCoinSparkle.png.import | 40 + Scenes/Levels/SMB1/World8/8-2.tscn | 340 +++++++++ Scenes/Levels/SMBS/World1/1-1.tscn | 702 +++++++++--------- Scenes/Parts/Particles/CoinSparkle.tscn | 2 +- Scenes/Prefabs/Entities/Items/BlueCoin.tscn | 4 +- Scenes/Prefabs/Entities/Items/Coin.tscn | 4 +- Scenes/Prefabs/Entities/Items/RedCoin.tscn | 3 +- .../Entities/Items/SpinningBlueCoin.tscn | 4 +- .../Prefabs/Entities/Items/SpinningCoin.tscn | 4 +- .../Entities/Items/SpinningRedCoin.tscn | 3 +- Scenes/Prefabs/Particles/BlueCoinSparkle.tscn | 42 ++ Scenes/Prefabs/Particles/CoinSparkle.tscn | 0 Scenes/Prefabs/Particles/RedCoinSparkle.tscn | 42 ++ Scripts/Classes/Entities/Items/Coin.gd | 3 +- Scripts/Classes/Entities/Items/RedCoin.gd | 13 +- .../Classes/Entities/Items/SpinningCoin.gd | 6 +- .../Classes/Entities/Items/SpinningRedCoin.gd | 15 +- 27 files changed, 948 insertions(+), 352 deletions(-) create mode 100644 Assets/Sprites/Particles/BlueCoinSparkle.json create mode 100644 Assets/Sprites/Particles/BlueCoinSparkle.png create mode 100644 Assets/Sprites/Particles/BlueCoinSparkle.png.import create mode 100644 Assets/Sprites/Particles/RedCoinSparkle.json create mode 100644 Assets/Sprites/Particles/RedCoinSparkle.png create mode 100644 Assets/Sprites/Particles/RedCoinSparkle.png.import create mode 100644 Scenes/Prefabs/Particles/BlueCoinSparkle.tscn mode change 100755 => 100644 Scenes/Prefabs/Particles/CoinSparkle.tscn create mode 100644 Scenes/Prefabs/Particles/RedCoinSparkle.tscn mode change 100755 => 100644 Scripts/Classes/Entities/Items/SpinningCoin.gd diff --git a/Assets/Sprites/Items/BlueCoin.json b/Assets/Sprites/Items/BlueCoin.json index 910d18f..70997c2 100644 --- a/Assets/Sprites/Items/BlueCoin.json +++ b/Assets/Sprites/Items/BlueCoin.json @@ -11,6 +11,7 @@ "loop": true } }, + "properties": {"can_spawn_particles": false}, "variations": { "default": {"source": "BlueCoin.png", "rect": [0, 0, 64, 16]}, "Underground": {"source": "BlueCoin.png", "rect": [0, 16, 64, 16]}, diff --git a/Assets/Sprites/Items/Coin.json b/Assets/Sprites/Items/Coin.json index ac470ca..63686b1 100644 --- a/Assets/Sprites/Items/Coin.json +++ b/Assets/Sprites/Items/Coin.json @@ -86,7 +86,7 @@ } }, "properties": { - "can_spawn_particles": true + "can_spawn_particles": false }, "variations": { "default": {"source": "StaticCoin.png", "rect": [0, 0, 64, 16]}, diff --git a/Assets/Sprites/Items/RedCoin.json b/Assets/Sprites/Items/RedCoin.json index 5ddde1b..c96a009 100644 --- a/Assets/Sprites/Items/RedCoin.json +++ b/Assets/Sprites/Items/RedCoin.json @@ -1,4 +1,5 @@ { + "properties": {"can_spawn_particles": false}, "animations": { "Collected": { "frames": [ diff --git a/Assets/Sprites/Items/SpinningCoin.json b/Assets/Sprites/Items/SpinningCoin.json index 0f80196..1de430b 100644 --- a/Assets/Sprites/Items/SpinningCoin.json +++ b/Assets/Sprites/Items/SpinningCoin.json @@ -32,7 +32,7 @@ } }, "properties": { - "can_spawn_particles": true + "can_spawn_particles": false }, "variations": { "default": { @@ -102,4 +102,4 @@ ] } } -} \ No newline at end of file +} diff --git a/Assets/Sprites/Particles/BlueCoinSparkle.json b/Assets/Sprites/Particles/BlueCoinSparkle.json new file mode 100644 index 0000000..0c602a4 --- /dev/null +++ b/Assets/Sprites/Particles/BlueCoinSparkle.json @@ -0,0 +1,11 @@ +{ + "properties": { + "amount": 3, + "process_material.emission_shape": 1, + "material.particles_anim_h_frames": 8, + "lifetime": 0.5 + }, + "variations": { + "default": {"source": "BlueCoinSparkle.png", "rect": [0, 0, 64, 8]} + } +} diff --git a/Assets/Sprites/Particles/BlueCoinSparkle.png b/Assets/Sprites/Particles/BlueCoinSparkle.png new file mode 100644 index 0000000000000000000000000000000000000000..83b07359513dd3c6d4de8c6dfdbb1eb20d79e26e GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^4nWMo!3HEflYZU@QjEnx?oJHr&dIz4a;iOD978-h zlM^IZzc3dT{{PRvMfw7xuqp53$&pSI+1ZsEJh&K~ZU2x5XOuQ|9fy&z$`4*Ib33 z-Q^ZpKbJ&)3uCQtcgz 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() diff --git a/Scripts/Classes/Entities/Items/SpinningCoin.gd b/Scripts/Classes/Entities/Items/SpinningCoin.gd old mode 100755 new mode 100644 index a16da8b..4c32939 --- a/Scripts/Classes/Entities/Items/SpinningCoin.gd +++ b/Scripts/Classes/Entities/Items/SpinningCoin.gd @@ -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) diff --git a/Scripts/Classes/Entities/Items/SpinningRedCoin.gd b/Scripts/Classes/Entities/Items/SpinningRedCoin.gd index 4e7513e..3d12071 100644 --- a/Scripts/Classes/Entities/Items/SpinningRedCoin.gd +++ b/Scripts/Classes/Entities/Items/SpinningRedCoin.gd @@ -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)