Compare commits

...

8 Commits

Author SHA1 Message Date
JHDev2006
c994bb3503 Merge branch 'main' of https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public 2025-10-13 20:05:46 +01:00
JHDev2006
21499f3697 fixed challenge mode results being able to be closed 2025-10-13 20:05:42 +01:00
guzlad
83bff6397a Ground tiling in 8-2a is now fixed (#581) 2025-10-13 20:04:40 +01:00
guzlad
4ce4d2bddf Fixed ChallengeEnd and ChallengeResults (#583) 2025-10-13 20:04:28 +01:00
SkyanUltra
a9b4cbe674 StarFall animation fallback fix (#584)
if you don't have StarJump, it would ignore your JumpFall animation when you have invincibility. this fixes that.
2025-10-13 19:56:40 +01:00
JHDev2006
14c193fb27 fixed an issue where coin particles werent spawning if the coin was part of the tilemap 2025-10-13 19:53:40 +01:00
JHDev2006
455aa14b35 fixed an issue where you could re-enter pipes, while exiting them, by spamming down 2025-10-13 19:25:32 +01:00
JHDev2006
a9055451ae fixed an issue where you could throw a fireball frame one of exiting a pipe 2025-10-13 19:23:24 +01:00
14 changed files with 435 additions and 267 deletions

View File

@@ -0,0 +1,5 @@
{
"variations": {
"default": { "source": "ChallengeEnd.mp3" }
}
}

View File

@@ -0,0 +1,10 @@
{
"Normal": {
"source": "ChallengeResults.mp3",
"loop": 0.0
},
"Hurry": {
"source": "ChallengeResults.mp3",
"loop": 0.0
}
}

View File

@@ -0,0 +1,5 @@
{
"variations": {
"default": { "source": "ChallengeResults.bgm" }
}
}

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dgdag7jgwnjm5"
path="res://.godot/imported/FireFlowerSpecial.png-3ae8e78d22e3e202bc4dce18fa8aa0eb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/Items/FireFlowerSpecial.png"
dest_files=["res://.godot/imported/FireFlowerSpecial.png-3ae8e78d22e3e202bc4dce18fa8aa0eb.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

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=62 format=3 uid="uid://blv1d12smlibh"]
[gd_scene load_steps=64 format=3 uid="uid://blv1d12smlibh"]
[ext_resource type="Script" uid="uid://bqhrq7sabq811" path="res://Scripts/UI/ChallengeModeResults.gd" id="1_3x4fv"]
[ext_resource type="Texture2D" uid="uid://116yaio262mj" path="res://Assets/Sprites/UI/ChallengeResultsTemplate.png" id="3_um36a"]
@@ -16,6 +16,9 @@
[ext_resource type="Texture2D" uid="uid://de6otencrflfo" path="res://Assets/Sprites/UI/RedCoins.png" id="10_d76il"]
[ext_resource type="Texture2D" uid="uid://wx6yyqabrelf" path="res://Assets/Sprites/UI/ChallengeResultsPanel.png" id="11_02i7h"]
[ext_resource type="AudioStream" uid="uid://n07ty0sc76em" path="res://Assets/Audio/SFX/ChallengeModeGive.mp3" id="11_nym8o"]
[ext_resource type="JSON" path="res://Assets/Audio/BGM/ChallengeResults.json" id="12_fb45j"]
[ext_resource type="AudioStream" uid="uid://dhiy4bmyu3j0r" path="res://Assets/Audio/BGM/ChallengeEnd.mp3" id="12_x7w5s"]
[ext_resource type="JSON" path="res://Assets/Audio/BGM/ChallengeEnd.json" id="12_y63tt"]
[ext_resource type="JSON" path="res://Assets/Sprites/Players/ToadNPC.json" id="14_sv6qk"]
[ext_resource type="Texture2D" uid="uid://cxtan2ap83u3d" path="res://Assets/Sprites/UI/ChallengeMedals.png" id="14_woqpu"]
[ext_resource type="Texture2D" uid="uid://c7jq6t1d2mhur" path="res://Assets/Sprites/Items/YoshiEgg.png" id="16_1h3k2"]
@@ -34,11 +37,6 @@
[ext_resource type="PackedScene" uid="uid://dntk2js0tu3y2" path="res://Scenes/Prefabs/UI/WorldSelect.tscn" id="32_xk7j8"]
[ext_resource type="PackedScene" uid="uid://bsfkt344e6j38" path="res://Scenes/Prefabs/UI/LevelSelectNew.tscn" id="33_x7w5s"]
[sub_resource type="Resource" id="Resource_cq5a1"]
script = ExtResource("10_bylb3")
Overworld = ExtResource("7_6dwpv")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[sub_resource type="Animation" id="Animation_6dwpv"]
resource_name = "Main"
length = 30.0
@@ -765,18 +763,29 @@ metadata/_custom_type_script = "uid://b08qfwj5jk6g1"
script = ExtResource("7_bob8r")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Music" type="AudioStreamPlayer" parent="."]
process_mode = 3
[node name="ChallengeResults" type="AudioStreamPlayer" parent="."]
stream = ExtResource("7_6dwpv")
autoplay = true
bus = &"Music"
[node name="ResourceSetter" type="Node" parent="Music" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("9_iyieq")
[node name="ResourceSetterNew" type="Node" parent="ChallengeResults" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("7_bob8r")
node_to_affect = NodePath("..")
property_name = "stream"
themed_resource = SubResource("Resource_cq5a1")
metadata/_custom_type_script = "uid://cq6f682453q6o"
mode = 2
resource_json = ExtResource("12_fb45j")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="ChallengeEnd" type="AudioStreamPlayer" parent="."]
stream = ExtResource("12_x7w5s")
bus = &"Music"
[node name="ResourceSetterNew" type="Node" parent="ChallengeEnd" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("7_bob8r")
node_to_affect = NodePath("..")
property_name = "stream"
mode = 2
resource_json = ExtResource("12_y63tt")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="MainSequence" type="AnimationPlayer" parent="."]
libraries = {
@@ -1067,7 +1076,7 @@ metadata/_custom_type_script = "uid://364rywt44hy6"
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="PauseMenu" parent="CanvasLayer" instance=ExtResource("31_1l20f")]
visible = false
can_exit = false
[node name="WorldSelect" parent="CanvasLayer" instance=ExtResource("32_xk7j8")]
visible = false
@@ -1098,7 +1107,6 @@ grow_horizontal = 2
grow_vertical = 2
has_challenge_stuff = true
[connection signal="sprites_updated" from="Music/ResourceSetter" to="Music" method="play"]
[connection signal="option_1_selected" from="CanvasLayer/PauseMenu" to="." method="retry_level"]
[connection signal="option_2_selected" from="CanvasLayer/PauseMenu" to="CanvasLayer/PauseMenu" method="close"]
[connection signal="option_2_selected" from="CanvasLayer/PauseMenu" to="CanvasLayer/WorldSelect" method="open"]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -126,13 +126,13 @@ item = ExtResource("17_ekraa")
[connection signal="player_block_hit" from="Tiles/QuestionBlock" to="Tiles/QuestionBlock/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/QuestionBlock" to="Tiles/QuestionBlock" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/QuestionBlock" to="Tiles/QuestionBlock/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/@AnimatableBody2D@287613" to="Tiles/@AnimatableBody2D@287613/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/@AnimatableBody2D@287613" to="Tiles/@AnimatableBody2D@287613/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287613" to="Tiles/@AnimatableBody2D@287613" method="player_mushroom_check"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287613" to="Tiles/@AnimatableBody2D@287613" method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287613" to="Tiles/@AnimatableBody2D@287613/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@287613" to="Tiles/@AnimatableBody2D@287613" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@287613" to="Tiles/@AnimatableBody2D@287613/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/@AnimatableBody2D@26079" to="Tiles/@AnimatableBody2D@26079/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/@AnimatableBody2D@26079" to="Tiles/@AnimatableBody2D@26079/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26079" to="Tiles/@AnimatableBody2D@26079" method="player_mushroom_check"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26079" to="Tiles/@AnimatableBody2D@26079" method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26079" to="Tiles/@AnimatableBody2D@26079/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@26079" to="Tiles/@AnimatableBody2D@26079" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@26079" to="Tiles/@AnimatableBody2D@26079/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/InvisibleQuestionBlock" to="Tiles/InvisibleQuestionBlock/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/InvisibleQuestionBlock" to="Tiles/InvisibleQuestionBlock/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/InvisibleQuestionBlock" to="Tiles/InvisibleQuestionBlock" method="player_mushroom_check"]
@@ -140,24 +140,24 @@ item = ExtResource("17_ekraa")
[connection signal="player_block_hit" from="Tiles/InvisibleQuestionBlock" to="Tiles/InvisibleQuestionBlock/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/InvisibleQuestionBlock" to="Tiles/InvisibleQuestionBlock" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/InvisibleQuestionBlock" to="Tiles/InvisibleQuestionBlock/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/@AnimatableBody2D@287614" to="Tiles/@AnimatableBody2D@287614/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/@AnimatableBody2D@287614" to="Tiles/@AnimatableBody2D@287614/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287614" to="Tiles/@AnimatableBody2D@287614" method="player_mushroom_check"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287614" to="Tiles/@AnimatableBody2D@287614" method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287614" to="Tiles/@AnimatableBody2D@287614/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@287614" to="Tiles/@AnimatableBody2D@287614" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@287614" to="Tiles/@AnimatableBody2D@287614/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/@AnimatableBody2D@287615" to="Tiles/@AnimatableBody2D@287615/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/@AnimatableBody2D@287615" to="Tiles/@AnimatableBody2D@287615/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287615" to="Tiles/@AnimatableBody2D@287615" method="player_mushroom_check"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287615" to="Tiles/@AnimatableBody2D@287615" method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287615" to="Tiles/@AnimatableBody2D@287615/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@287615" to="Tiles/@AnimatableBody2D@287615" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@287615" to="Tiles/@AnimatableBody2D@287615/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/@AnimatableBody2D@287616" to="Tiles/@AnimatableBody2D@287616/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/@AnimatableBody2D@287616" to="Tiles/@AnimatableBody2D@287616/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287616" to="Tiles/@AnimatableBody2D@287616" method="player_mushroom_check"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287616" to="Tiles/@AnimatableBody2D@287616" method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@287616" to="Tiles/@AnimatableBody2D@287616/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@287616" to="Tiles/@AnimatableBody2D@287616" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@287616" to="Tiles/@AnimatableBody2D@287616/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/@AnimatableBody2D@26080" to="Tiles/@AnimatableBody2D@26080/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/@AnimatableBody2D@26080" to="Tiles/@AnimatableBody2D@26080/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26080" to="Tiles/@AnimatableBody2D@26080" method="player_mushroom_check"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26080" to="Tiles/@AnimatableBody2D@26080" method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26080" to="Tiles/@AnimatableBody2D@26080/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@26080" to="Tiles/@AnimatableBody2D@26080" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@26080" to="Tiles/@AnimatableBody2D@26080/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/@AnimatableBody2D@26081" to="Tiles/@AnimatableBody2D@26081/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/@AnimatableBody2D@26081" to="Tiles/@AnimatableBody2D@26081/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26081" to="Tiles/@AnimatableBody2D@26081" method="player_mushroom_check"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26081" to="Tiles/@AnimatableBody2D@26081" method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26081" to="Tiles/@AnimatableBody2D@26081/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@26081" to="Tiles/@AnimatableBody2D@26081" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@26081" to="Tiles/@AnimatableBody2D@26081/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="block_destroyed" from="Tiles/@AnimatableBody2D@26082" to="Tiles/@AnimatableBody2D@26082/LevelPersistance" method="set_as_active_2"]
[connection signal="block_emptied" from="Tiles/@AnimatableBody2D@26082" to="Tiles/@AnimatableBody2D@26082/LevelPersistance" method="set_as_active"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26082" to="Tiles/@AnimatableBody2D@26082" method="player_mushroom_check"]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26082" to="Tiles/@AnimatableBody2D@26082" method="dispense_item" unbinds=1]
[connection signal="player_block_hit" from="Tiles/@AnimatableBody2D@26082" to="Tiles/@AnimatableBody2D@26082/BlockAnimations" method="bounce_block" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@26082" to="Tiles/@AnimatableBody2D@26082" method="dispense_item" unbinds=1]
[connection signal="shell_block_hit" from="Tiles/@AnimatableBody2D@26082" to="Tiles/@AnimatableBody2D@26082/BlockAnimations" method="bounce_block" unbinds=1]

View File

@@ -24,8 +24,8 @@ func collect() -> void:
$Sprite.queue_free()
else:
queue_free()
if get_parent() is TileMapLayer:
get_parent().erase_cell(get_parent().local_to_map(position))
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()

View File

@@ -64,14 +64,15 @@ func update_visuals() -> void:
hide()
func exit_pipe() -> void:
can_enter = false
pipe_exited.emit()
await get_tree().physics_frame
for i in get_tree().get_nodes_in_group("Players"):
i.go_to_exit_pipe(self)
for i in get_tree().get_nodes_in_group("Players"):
await get_tree().create_timer(0.5, false).timeout
await i.exit_pipe(self)
exiting_pipe_id = -1
can_enter = true
func get_vector(direction := 0) -> Vector2:
match direction:

View File

@@ -170,7 +170,7 @@ const ANIMATION_FALLBACKS := {
"SwimBump": "Bump",
"DieFreeze": "Die",
"StarJump": "Jump",
"StarFall": "StarJump"
"StarFall": "JumpFall"
}
var palette_transform := true
@@ -796,7 +796,7 @@ func hide_pipe_animation() -> void:
func go_to_exit_pipe(pipe: PipeArea) -> void:
Global.can_time_tick = false
pipe_enter_direction = Vector2.ZERO
state_machine.transition_to("Pipe")
state_machine.transition_to("Freeze")
global_position = pipe.global_position + (pipe.get_vector(pipe.enter_direction) * 32)
if pipe.enter_direction == 1:
global_position = pipe.global_position + Vector2(0, -8)

View File

@@ -2,8 +2,8 @@ extends PowerUpState
var fireball_amount := 0
const FIREBALL = preload("res://Scenes/Prefabs/Entities/Items/Fireball.tscn")
func update(_delta: float) -> void:
if Global.player_action_just_pressed("action", player.player_id) and fireball_amount < 2 and player.state_machine.state.name == "Normal":
func update(delta: float) -> void:
if Global.player_action_just_pressed("action", player.player_id) and fireball_amount < 2 and player.state_machine.state.name == "Normal" and delta > 0:
throw_fireball()
func throw_fireball() -> void:

View File

@@ -19,6 +19,7 @@ func _ready() -> void:
coin_medal = int(ChallengeModeHandler.red_coins_collected[Global.world_num - 1][Global.level_num - 1]) & 0b011111 == 0b011111
score_medal = ChallengeModeHandler.top_challenge_scores[Global.world_num -1][Global.level_num - 1] >= ChallengeModeHandler.CHALLENGE_TARGETS[Global.current_campaign][Global.world_num -1][Global.level_num -1]
yoshi_medal = ChallengeModeHandler.is_coin_collected(ChallengeModeHandler.CoinValues.YOSHI_EGG, ChallengeModeHandler.red_coins_collected[Global.world_num - 1][Global.level_num - 1])
$ChallengeResults.play()
setup_results()
func _process(_delta: float) -> void:
@@ -26,10 +27,9 @@ func _process(_delta: float) -> void:
can_exit = false
exiting = true
save_results()
$Music.stop()
$Music.stream = preload("res://Assets/Audio/BGM/ChallengeEnd.mp3")
$Music.play()
await $Music.finished
$ChallengeResults.stop()
$ChallengeEnd.play()
await $ChallengeEnd.finished
open_menu()
Engine.time_scale = 5 if Input.is_action_pressed("jump_0") and can_exit == false and exiting == false else 1

View File

@@ -7,6 +7,7 @@ var selected_index := 0
var active := false
@export var can_exit := true
@export var is_pause := true
signal option_1_selected
@@ -30,7 +31,7 @@ func handle_inputs() -> void:
selected_index = clamp(selected_index, 0, options.size() - 1)
if Input.is_action_just_pressed("ui_accept"):
option_selected()
elif Input.is_action_just_pressed("pause") or Input.is_action_just_pressed("ui_back"):
elif (Input.is_action_just_pressed("pause") or Input.is_action_just_pressed("ui_back")) and can_exit:
close()
func option_selected() -> void: