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 910d18f3..70997c26 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 ac470ca1..63686b1a 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 5ddde1bf..c96a0091 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 0f80196f..1de430b3 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 00000000..0c602a40 --- /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!ia0y~yU~phyVBp|jV_;zLO!|4Bfq{XsILO_JVcj{ImkbOH z)t)YnAs(H{2@`DzDTntWfJOy29E5zqZN`KQm znr$D;%qksSRpJg_%lyD1c*6Tat9(GuLGfUsbN|8u=z3+if3X>QV vy+0fk*vGJ>?PoJnz^g{b_l{l%6TT=gSQe!EiEfhF%>Z(ntDnm{r-UW|z#u_b literal 0 HcmV?d00001 diff --git a/Assets/Sprites/Particles/BlueCoinSparkle.png.import b/Assets/Sprites/Particles/BlueCoinSparkle.png.import new file mode 100644 index 00000000..e391f949 --- /dev/null +++ b/Assets/Sprites/Particles/BlueCoinSparkle.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwiey4ewgo1qm" +path="res://.godot/imported/BlueCoinSparkle.png-6640ae517adee2b7ae9b991e76491298.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Particles/BlueCoinSparkle.png" +dest_files=["res://.godot/imported/BlueCoinSparkle.png-6640ae517adee2b7ae9b991e76491298.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Sprites/Particles/CoinSparkle.json b/Assets/Sprites/Particles/CoinSparkle.json index 8ac43a29..f892635a 100644 --- a/Assets/Sprites/Particles/CoinSparkle.json +++ b/Assets/Sprites/Particles/CoinSparkle.json @@ -2,7 +2,8 @@ "properties": { "amount": 3, "process_material.emission_shape": 1, - "material.particles_anim_h_frames": 8 + "material.particles_anim_h_frames": 8, + "lifetime": 0.5 }, "variations": { "default": {"source": "CoinSparkle.png", "rect": [0, 0, 64, 8]} diff --git a/Assets/Sprites/Particles/RedCoinSparkle.json b/Assets/Sprites/Particles/RedCoinSparkle.json new file mode 100644 index 00000000..21159d20 --- /dev/null +++ b/Assets/Sprites/Particles/RedCoinSparkle.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": "RedCoinSparkle.png", "rect": [0, 0, 64, 8]} + } +} diff --git a/Assets/Sprites/Particles/RedCoinSparkle.png b/Assets/Sprites/Particles/RedCoinSparkle.png new file mode 100644 index 0000000000000000000000000000000000000000..75491142fc1c07594bd2c0fa0f6a74e048ce2787 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyVBp|jV_;zLO!|4Bfq{XsILO_JVcj{ImkbOH zGdx`!Lp(a)PTDAVSV4eA(pCOa!>fc94_+&V^MCm`H$X7uxrdyaQ^NV%VvYJK^LF27 zPX706u0qf5a*M2=OCrC8u~xV{=8GCIEqTyZUM;7(EbpH=mzC&-wO4pf-fL>gW=hH5 zsL!5w#aMu?#qr=wp~(v$%uE036C1!Sa!A84cG`l!wfdPNm#P=au6e%j<9w&6hL?<6 cX9<2_+ 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 a16da8b0..4c329396 --- 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 4e7513eb..3d120717 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)