mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-12-06 03:30:22 -08:00
Alternate Challenge HUD Proposal: Previously obtained coins/eggs are transparent (#712)
* Challenge Hunt: Transparent HUD for previously obtained coins/eggs * Add 'score potential' tracker, make egg not default to empty if egg isn't in the current room on a replay * Make transparent HUD elements render on top, and become invisible if their fully-opaque equivalents should be enabled instead
This commit is contained in:
parent
5a0a72daeb
commit
5daa630a72
9 changed files with 273 additions and 25 deletions
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=40 format=3 uid="uid://bod0jkf7jc5pm"]
|
||||
[gd_scene load_steps=41 format=3 uid="uid://bod0jkf7jc5pm"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bjbd3a6su47si" path="res://Scripts/Classes/UI/GameHUD.gd" id="1_f34v2"]
|
||||
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="2_cbrve"]
|
||||
|
|
@ -68,6 +68,21 @@ animations = [{
|
|||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_cfljn"]
|
||||
shader = ExtResource("9_oqalm")
|
||||
|
||||
[sub_resource type="Animation" id="Animation_40ba1"]
|
||||
resource_name = "AlwaysOn"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_niy8w"]
|
||||
resource_name = "Flash"
|
||||
loop_mode = 1
|
||||
|
|
@ -101,6 +116,7 @@ tracks/0/keys = {
|
|||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cfljn"]
|
||||
_data = {
|
||||
&"AlwaysOn": SubResource("Animation_40ba1"),
|
||||
&"Flash": SubResource("Animation_niy8w"),
|
||||
&"RESET": SubResource("Animation_oqalm")
|
||||
}
|
||||
|
|
@ -371,6 +387,90 @@ centered = false
|
|||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin1Transparent" type="Sprite2D" parent="Main/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(-8, 0)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="Main/RedCoins/Coin1Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin2Transparent" type="Sprite2D" parent="Main/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="Main/RedCoins/Coin2Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin3Transparent" type="Sprite2D" parent="Main/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(8, 0)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="Main/RedCoins/Coin3Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin4Transparent" type="Sprite2D" parent="Main/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(16, 0)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="Main/RedCoins/Coin4Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin5Transparent" type="Sprite2D" parent="Main/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(24, 0)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="Main/RedCoins/Coin5Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="BorderR" type="Sprite2D" parent="Main/RedCoins"]
|
||||
position = Vector2(32, 0)
|
||||
texture = ExtResource("5_gmuut")
|
||||
|
|
@ -450,6 +550,23 @@ centered = false
|
|||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="ScoreMedalTransparent" type="Sprite2D" parent="Main/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(43, -2)
|
||||
texture = ExtResource("9_m8toq")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="Main/RedCoins/ScoreMedalTransparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("9_m8toq")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Buffer3" type="Control" parent="Main"]
|
||||
custom_minimum_size = Vector2(24, 0)
|
||||
layout_mode = 2
|
||||
|
|
@ -742,6 +859,90 @@ centered = false
|
|||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin1Transparent" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(-8, 0)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins/Coin1Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin2Transparent" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins/Coin2Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin3Transparent" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(8, 0)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins/Coin3Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin4Transparent" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(16, 0)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins/Coin4Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Coin5Transparent" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(24, 0)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins/Coin5Transparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("6_2ww58")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="BorderR" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins"]
|
||||
position = Vector2(32, 0)
|
||||
texture = ExtResource("5_gmuut")
|
||||
|
|
@ -780,6 +981,7 @@ region_rect = Rect2(0, 0, 8, 8)
|
|||
[node name="ModernRadar" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins/YoshiEgg"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
texture = ExtResource("7_r3m7e")
|
||||
centered = false
|
||||
hframes = 3
|
||||
|
|
@ -820,6 +1022,23 @@ centered = false
|
|||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="ScoreMedalTransparent" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins"]
|
||||
material = SubResource("ShaderMaterial_cfljn")
|
||||
position = Vector2(43, -2)
|
||||
texture = ExtResource("9_m8toq")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="ModernHUD/TopLeft/RedCoins/ScoreMedalTransparent"]
|
||||
show_behind_parent = true
|
||||
material = SubResource("ShaderMaterial_eon7h")
|
||||
position = Vector2(1, 1)
|
||||
texture = ExtResource("9_m8toq")
|
||||
centered = false
|
||||
hframes = 2
|
||||
region_rect = Rect2(0, 0, 8, 8)
|
||||
|
||||
[node name="LifeCount" type="HBoxContainer" parent="ModernHUD/TopLeft"]
|
||||
layout_mode = 0
|
||||
offset_left = 20.0
|
||||
|
|
@ -1079,7 +1298,7 @@ metadata/_custom_type_script = "uid://co6tjg3w6qpd8"
|
|||
|
||||
[node name="TextureUpdater" type="Node" parent="." node_paths=PackedStringArray("sprites")]
|
||||
script = SubResource("GDScript_jwl8o")
|
||||
sprites = [NodePath("../Main/RedCoins/BorderL"), NodePath("../Main/RedCoins/BorderL/Shadow"), NodePath("../Main/RedCoins/Coin1"), NodePath("../Main/RedCoins/Coin1/Shadow"), NodePath("../Main/RedCoins/Coin2"), NodePath("../Main/RedCoins/Coin2/Shadow"), NodePath("../Main/RedCoins/Coin3"), NodePath("../Main/RedCoins/Coin3/Shadow"), NodePath("../Main/RedCoins/Coin4"), NodePath("../Main/RedCoins/Coin4/Shadow"), NodePath("../Main/RedCoins/Coin5"), NodePath("../Main/RedCoins/Coin5/Shadow"), NodePath("../Main/RedCoins/BorderR"), NodePath("../Main/RedCoins/BorderR/Shadow"), NodePath("../Main/RedCoins/YoshiEgg"), NodePath("../Main/RedCoins/YoshiEgg/Shadow"), NodePath("../Main/RedCoins/ScoreMedal"), NodePath("../Main/RedCoins/ScoreMedal/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/BorderL"), NodePath("../ModernHUD/TopLeft/RedCoins/BorderL/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin1"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin1/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin2"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin2/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin3"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin3/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin4"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin4/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin5"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin5/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/BorderR"), NodePath("../ModernHUD/TopLeft/RedCoins/BorderR/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/YoshiEgg"), NodePath("../ModernHUD/TopLeft/RedCoins/YoshiEgg/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/ScoreMedal"), NodePath("../ModernHUD/TopLeft/RedCoins/ScoreMedal/Shadow")]
|
||||
sprites = [NodePath("../Main/RedCoins/BorderL"), NodePath("../Main/RedCoins/BorderL/Shadow"), NodePath("../Main/RedCoins/Coin1"), NodePath("../Main/RedCoins/Coin1/Shadow"), NodePath("../Main/RedCoins/Coin2"), NodePath("../Main/RedCoins/Coin2/Shadow"), NodePath("../Main/RedCoins/Coin3"), NodePath("../Main/RedCoins/Coin3/Shadow"), NodePath("../Main/RedCoins/Coin4"), NodePath("../Main/RedCoins/Coin4/Shadow"), NodePath("../Main/RedCoins/Coin5"), NodePath("../Main/RedCoins/Coin5/Shadow"), NodePath("../Main/RedCoins/Coin1Transparent"), NodePath("../Main/RedCoins/Coin1Transparent/Shadow"), NodePath("../Main/RedCoins/Coin2Transparent"), NodePath("../Main/RedCoins/Coin2Transparent/Shadow"), NodePath("../Main/RedCoins/Coin3Transparent"), NodePath("../Main/RedCoins/Coin3Transparent/Shadow"), NodePath("../Main/RedCoins/Coin4Transparent"), NodePath("../Main/RedCoins/Coin4Transparent/Shadow"), NodePath("../Main/RedCoins/Coin5Transparent"), NodePath("../Main/RedCoins/Coin5Transparent/Shadow"), NodePath("../Main/RedCoins/BorderR"), NodePath("../Main/RedCoins/BorderR/Shadow"), NodePath("../Main/RedCoins/YoshiEgg"), NodePath("../Main/RedCoins/YoshiEgg/Shadow"), NodePath("../Main/RedCoins/ScoreMedalTransparent"), NodePath("../Main/RedCoins/ScoreMedalTransparent/Shadow"), NodePath("../Main/RedCoins/ScoreMedal"), NodePath("../Main/RedCoins/ScoreMedal/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/BorderL"), NodePath("../ModernHUD/TopLeft/RedCoins/BorderL/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin1"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin1/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin2"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin2/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin3"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin3/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin4"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin4/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin5"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin5/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin1Transparent"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin1Transparent/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin2Transparent"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin2Transparent/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin3Transparent"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin3Transparent/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin4Transparent"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin4Transparent/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin5Transparent"), NodePath("../ModernHUD/TopLeft/RedCoins/Coin5Transparent/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/BorderR"), NodePath("../ModernHUD/TopLeft/RedCoins/BorderR/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/YoshiEgg"), NodePath("../ModernHUD/TopLeft/RedCoins/YoshiEgg/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/ScoreMedalTransparent"), NodePath("../ModernHUD/TopLeft/RedCoins/ScoreMedalTransparent/Shadow"), NodePath("../ModernHUD/TopLeft/RedCoins/ScoreMedal"), NodePath("../ModernHUD/TopLeft/RedCoins/ScoreMedal/Shadow")]
|
||||
|
||||
[connection signal="timeout" from="Timer" to="." method="on_timeout"]
|
||||
[connection signal="updated" from="ColourPaletteSampler" to="TextShadowColourChanger" method="handle_shadow_colours"]
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ func restart_level() -> void:
|
|||
DiscoLevel.reset_values()
|
||||
if Global.current_game_mode == Global.GameMode.CHALLENGE:
|
||||
Global.score = 0
|
||||
ChallengeModeHandler.current_run_red_coins_collected = ChallengeModeHandler.red_coins_collected[Global.world_num - 1][Global.level_num - 1]
|
||||
ChallengeModeHandler.current_run_red_coins_collected = 0
|
||||
Global.current_level.reload_level()
|
||||
await Global.current_level.tree_exited
|
||||
$\"..\".close()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue