Super-Mario-Bros-Remastered.../Scenes/Prefabs/Entities/Enemies/Barrel.tscn
SkyanUltra f67f35c301 Unique interaction with slopes for Barrels
Barrels will now detect slopes and update their movement speed and direction smoothly, allowing them to turn around when coming in contact with slopes and allowing them to accelerate up to x3.25 their base movement speed when going downhill.
2025-12-03 06:28:50 -05:00

126 lines
6.2 KiB
Text

[gd_scene load_steps=18 format=3 uid="uid://byu7xm153ktle"]
[ext_resource type="Script" uid="uid://dkg8usmlrm1d3" path="res://Scripts/Classes/Entities/Enemies/Barrel.gd" id="1_dkmpo"]
[ext_resource type="Texture2D" uid="uid://t6lvjxubql7l" path="res://Assets/Sprites/Enemies/Barrel.png" id="2_dkmpo"]
[ext_resource type="Script" uid="uid://caq1qiwmy0mox" path="res://Scripts/Parts/BetterAnimatedSprite.gd" id="3_7nplu"]
[ext_resource type="Script" uid="uid://dlq6o2rg1x7in" path="res://Scripts/Classes/Components/BasicEnemyMovement.gd" id="4_8jya4"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="4_m378g"]
[ext_resource type="Script" uid="uid://chj8hu207lrh" path="res://Scripts/Classes/Components/EnemyPlayerDetection.gd" id="4_ynq8o"]
[ext_resource type="JSON" path="res://Assets/Sprites/Enemies/Barrel.json" id="5_momh1"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="8_m378g"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="9_momh1"]
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="10_fyuy0"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="11_y4k56"]
[ext_resource type="Script" uid="uid://dkjpfs3sm3go3" path="res://Scripts/Classes/Components/BlockHitter.gd" id="12_d7wml"]
[sub_resource type="AtlasTexture" id="AtlasTexture_fyuy0"]
atlas = ExtResource("2_dkmpo")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_y4k56"]
atlas = ExtResource("2_dkmpo")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_d7wml"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fyuy0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y4k56")
}],
"loop": true,
"name": &"default",
"speed": 15.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7nplu"]
size = Vector2(8, 8)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_m378g"]
size = Vector2(9, 8)
[node name="Barrel" type="CharacterBody2D" unique_id=1957941635 node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
collision_layer = 16
collision_mask = 18
floor_constant_speed = true
floor_max_angle = 1.55334
floor_snap_length = 4.0
script = ExtResource("1_dkmpo")
on_screen_enabler = NodePath("VisibleOnScreenEnabler2D")
score_note_adder = NodePath("ScoreNoteSpawner")
metadata/_custom_type_script = "uid://bpydbpyjk1mt4"
[node name="Sprite" type="AnimatedSprite2D" parent="." unique_id=1326989992]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_d7wml")
autoplay = "default"
frame_progress = 0.16310313
script = ExtResource("3_7nplu")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" unique_id=1136441322 node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_m378g")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_momh1")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="VisibleOnScreenEnabler2D" type="VisibleOnScreenEnabler2D" parent="." unique_id=1925295313]
self_modulate = Color(1, 1, 1, 0)
position = Vector2(0, -8)
[node name="Collision" type="CollisionShape2D" parent="." unique_id=1877186059]
position = Vector2(0, -4)
shape = SubResource("RectangleShape2D_7nplu")
[node name="Hitbox" type="Area2D" parent="." unique_id=995894262]
collision_mask = 5
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox" unique_id=633392995]
position = Vector2(-0.5, -8)
shape = SubResource("RectangleShape2D_m378g")
[node name="EnemyPlayerDetection" type="Node" parent="." unique_id=570187613 node_paths=PackedStringArray("hitbox")]
script = ExtResource("4_ynq8o")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://chj8hu207lrh"
[node name="BasicEnemyMovement" type="Node" parent="." unique_id=711078340]
script = ExtResource("4_8jya4")
metadata/_custom_type_script = "uid://dlq6o2rg1x7in"
[node name="ScoreNoteSpawner" type="Node" parent="." unique_id=426760118]
script = ExtResource("8_m378g")
add_score = true
metadata/_custom_type_script = "uid://5octqlf4ohel"
[node name="ExplosionDetection" type="Node" parent="." unique_id=1142428481 node_paths=PackedStringArray("hitbox")]
script = ExtResource("9_momh1")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[node name="ShellDetection" type="Node" parent="." unique_id=1159378648 node_paths=PackedStringArray("hitbox")]
script = ExtResource("10_fyuy0")
hitbox = NodePath("../Hitbox")
metadata/_custom_type_script = "uid://bbww34oiexbx2"
[node name="BlockBouncingDetection" type="Node" parent="." unique_id=132369212]
script = ExtResource("11_y4k56")
metadata/_custom_type_script = "uid://cmg61722ktg2m"
[node name="BlockHitter" type="Node" parent="." unique_id=290034248 node_paths=PackedStringArray("hitbox")]
script = ExtResource("12_d7wml")
hitbox = NodePath("../Hitbox")
[connection signal="hammer_player_hit" from="EnemyPlayerDetection" to="." method="die_from_hammer"]
[connection signal="hammer_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="destroy" unbinds=1]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="player_hit" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="player_stomped_on" from="EnemyPlayerDetection" to="." method="damage_player"]
[connection signal="explosion_entered" from="ExplosionDetection" to="." method="die_from_object"]
[connection signal="explosion_entered" from="ExplosionDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]
[connection signal="moving_shell_entered" from="ShellDetection" to="." method="die_from_object"]
[connection signal="block_bounced" from="BlockBouncingDetection" to="." method="bounce_up" unbinds=1]