From 7a0adfa75c22206812dbe4468988fa210aa16dbc Mon Sep 17 00:00:00 2001 From: John Cooper McDonald Date: Mon, 3 Nov 2025 08:13:26 -0600 Subject: [PATCH 1/2] SMBS powerups give the proper amount of points when collecting (#671) * SMBS powerups give the proper amount of points when collecting * Flag die doesn't give double points --- Scenes/Prefabs/Entities/Items/HammerItem.tscn | 8 +++++++- Scenes/Prefabs/Entities/Items/LuckyStar.tscn | 12 ++++++++++-- Scenes/Prefabs/Entities/Items/WingItem.tscn | 3 +-- Scripts/Classes/Entities/Enemy.gd | 3 ++- Scripts/Classes/Entities/Items/Hachisuke.gd | 2 +- Scripts/Classes/Entities/Items/HammerItem.gd | 3 +++ 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Scenes/Prefabs/Entities/Items/HammerItem.tscn b/Scenes/Prefabs/Entities/Items/HammerItem.tscn index c21a7f15..5adfaee6 100644 --- a/Scenes/Prefabs/Entities/Items/HammerItem.tscn +++ b/Scenes/Prefabs/Entities/Items/HammerItem.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=7 format=3 uid="uid://bwdwavf4rp1m1"] +[gd_scene load_steps=8 format=3 uid="uid://bwdwavf4rp1m1"] [ext_resource type="Script" uid="uid://vhxup1pn2v8q" path="res://Scripts/Classes/Entities/Items/HammerItem.gd" id="1_ws752"] [ext_resource type="Texture2D" uid="uid://bbdcmhyxmc3pu" path="res://Assets/Sprites/Items/SPItems.png" id="2_c0srl"] [ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_uc7h7"] [ext_resource type="JSON" path="res://Assets/Sprites/Items/HammerItem.json" id="5_6qq3q"] +[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_uc7h7"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_uc7h7"] size = Vector2(10, 10) @@ -41,4 +42,9 @@ position = Vector2(0, -8) [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] shape = SubResource("RectangleShape2D_ws752") +[node name="ScoreNoteSpawner" type="Node" parent="."] +script = ExtResource("5_uc7h7") +add_score = true +metadata/_custom_type_script = "uid://5octqlf4ohel" + [connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"] diff --git a/Scenes/Prefabs/Entities/Items/LuckyStar.tscn b/Scenes/Prefabs/Entities/Items/LuckyStar.tscn index 69b62078..bcd6dcc4 100644 --- a/Scenes/Prefabs/Entities/Items/LuckyStar.tscn +++ b/Scenes/Prefabs/Entities/Items/LuckyStar.tscn @@ -1,18 +1,21 @@ -[gd_scene load_steps=10 format=3 uid="uid://dhd0gp2xvl53l"] +[gd_scene load_steps=11 format=3 uid="uid://dhd0gp2xvl53l"] [ext_resource type="Script" uid="uid://bafdl3y53ly60" path="res://Scripts/Classes/UI/PackAnimatedSprite2D.gd" id="2_724cb"] [ext_resource type="Texture2D" uid="uid://bbdcmhyxmc3pu" path="res://Assets/Sprites/Items/SPItems.png" id="2_wnlnm"] [ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_ke2o5"] [ext_resource type="JSON" path="res://Assets/Sprites/Items/LuckyStar.json" id="4_4cwfa"] +[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="5_724cb"] [sub_resource type="GDScript" id="GDScript_y0edb"] script/source = "extends PowerUpItem func on_area_entered(area: Area2D) -> void: if area.owner is Player: - queue_free() AudioManager.play_global_sfx(\"lucky_star\") + $ScoreNoteSpawner.spawn_note(1000) + DiscoLevel.combo_amount += 1 get_tree().call_group(\"Enemies\", \"flag_die\") + queue_free() " [sub_resource type="AtlasTexture" id="AtlasTexture_ke2o5"] @@ -65,4 +68,9 @@ position = Vector2(0, -8) [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] shape = SubResource("RectangleShape2D_7yv5x") +[node name="ScoreNoteSpawner" type="Node" parent="."] +script = ExtResource("5_724cb") +add_score = true +metadata/_custom_type_script = "uid://5octqlf4ohel" + [connection signal="area_entered" from="Hitbox" to="." method="on_area_entered"] diff --git a/Scenes/Prefabs/Entities/Items/WingItem.tscn b/Scenes/Prefabs/Entities/Items/WingItem.tscn index 1936fbb7..0a4c1742 100644 --- a/Scenes/Prefabs/Entities/Items/WingItem.tscn +++ b/Scenes/Prefabs/Entities/Items/WingItem.tscn @@ -11,8 +11,7 @@ script/source = "extends PowerUpItem func on_area_entered(area: Area2D) -> void: if area.owner is Player: - AudioManager.play_sfx(\"power_up\", global_position) - Global.score += 1000 + AudioManager.play_global_sfx(\"power_up\") $ScoreNoteSpawner.spawn_note(1000) area.owner.wing_get() queue_free() diff --git a/Scripts/Classes/Entities/Enemy.gd b/Scripts/Classes/Entities/Enemy.gd index f8260dfa..d665643c 100644 --- a/Scripts/Classes/Entities/Enemy.gd +++ b/Scripts/Classes/Entities/Enemy.gd @@ -34,8 +34,9 @@ func flag_die() -> void: if on_screen_enabler != null: if on_screen_enabler.is_on_screen(): queue_free() - Global.score += 500 if score_note_adder != null: + if score_note_adder.add_score == false: + Global.score += 500 score_note_adder.spawn_note(500) func die_from_hammer(obj: Node2D) -> void: diff --git a/Scripts/Classes/Entities/Items/Hachisuke.gd b/Scripts/Classes/Entities/Items/Hachisuke.gd index e70291ae..8ec1678d 100644 --- a/Scripts/Classes/Entities/Items/Hachisuke.gd +++ b/Scripts/Classes/Entities/Items/Hachisuke.gd @@ -3,6 +3,6 @@ extends PowerUpItem func on_area_entered(area: Area2D) -> void: if area.owner is Player: AudioManager.play_sfx("hachisuke", global_position) - Global.score += 8000 $ScoreNoteSpawner.spawn_note(8000) + DiscoLevel.combo_amount += 1 queue_free() diff --git a/Scripts/Classes/Entities/Items/HammerItem.gd b/Scripts/Classes/Entities/Items/HammerItem.gd index 2d079776..dd76ec3b 100755 --- a/Scripts/Classes/Entities/Items/HammerItem.gd +++ b/Scripts/Classes/Entities/Items/HammerItem.gd @@ -2,5 +2,8 @@ extends PowerUpItem func on_area_entered(area: Area2D) -> void: if area.owner is Player: + AudioManager.play_global_sfx("power_up") + $ScoreNoteSpawner.spawn_note(1000) + DiscoLevel.combo_amount += 1 area.owner.hammer_get() queue_free() From 6c47d255b0ab166bac2cc5ddd6bd5caf1d4b812b Mon Sep 17 00:00:00 2001 From: CST1229 <68464103+CST1229@users.noreply.github.com> Date: Mon, 3 Nov 2025 21:10:41 +0100 Subject: [PATCH 2/2] Fix some remaining user:// uses to use Global.config_dir (#702) --- Scripts/Classes/Components/ResourceSetterNew.gd | 4 ++-- Scripts/Classes/Singletons/Global.gd | 2 +- Scripts/UI/CustomLevelContainer.gd | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Scripts/Classes/Components/ResourceSetterNew.gd b/Scripts/Classes/Components/ResourceSetterNew.gd index 7ff9fd1b..2b5390cb 100644 --- a/Scripts/Classes/Components/ResourceSetterNew.gd +++ b/Scripts/Classes/Components/ResourceSetterNew.gd @@ -297,8 +297,8 @@ func get_variation_json(json := {}) -> Dictionary: return json func get_config_file(resource_pack := "") -> void: - if FileAccess.file_exists("user://resource_packs/" + resource_pack + "/config.json"): - config_to_use = JSON.parse_string(FileAccess.open("user://resource_packs/" + resource_pack + "/config.json", FileAccess.READ).get_as_text()) + if FileAccess.file_exists(Global.config_path.path_join("resource_packs/" + resource_pack + "/config.json")): + config_to_use = JSON.parse_string(FileAccess.open(Global.config_path.path_join("resource_packs/" + resource_pack + "/config.json"), FileAccess.READ).get_as_text()) if config_to_use == null: Global.log_error("Error parsing Config File! (" + resource_pack + ")") config_to_use = {} diff --git a/Scripts/Classes/Singletons/Global.gd b/Scripts/Classes/Singletons/Global.gd index 39f8faf9..7c6b48a7 100644 --- a/Scripts/Classes/Singletons/Global.gd +++ b/Scripts/Classes/Singletons/Global.gd @@ -482,7 +482,7 @@ func sanitize_string(string := "") -> String: return string func get_base_asset_version() -> int: - var json = JSON.parse_string(FileAccess.open("user://BaseAssets/pack_info.json", FileAccess.READ).get_as_text()) + var json = JSON.parse_string(FileAccess.open(Global.config_path.path_join("BaseAssets/pack_info.json"), FileAccess.READ).get_as_text()) var version = json.version return get_version_num_int(version) diff --git a/Scripts/UI/CustomLevelContainer.gd b/Scripts/UI/CustomLevelContainer.gd index 29eee262..da20ceca 100644 --- a/Scripts/UI/CustomLevelContainer.gd +++ b/Scripts/UI/CustomLevelContainer.gd @@ -56,8 +56,8 @@ func _ready() -> void: update_visuals() func update_visuals() -> void: - if is_downloaded and FileAccess.file_exists("user://custom_levels/downloaded/thumbnails/" + level_id + ".png"): - thumbnail = ImageTexture.create_from_image(Image.load_from_file("user://custom_levels/downloaded/thumbnails/" + level_id + ".png")) + if is_downloaded and FileAccess.file_exists(Global.config_path.path_join("custom_levels/downloaded/thumbnails/" + level_id + ".png")): + thumbnail = ImageTexture.create_from_image(Image.load_from_file(Global.config_path.path_join("custom_levels/downloaded/thumbnails/" + level_id + ".png"))) %Thumbnail.texture = thumbnail %LevelIcon.hide() %Thumbnail.show()