[gd_scene load_steps=32 format=3 uid="uid://bqi5s710xb1ju"] [ext_resource type="Script" uid="uid://ccuddyoakg04u" path="res://scripts/player.gd" id="1_8j4h4"] [ext_resource type="Texture2D" uid="uid://b7gp0gqvkv8j4" path="res://sprites/MrBrick_base.png" id="2_bc55y"] [ext_resource type="Texture2D" uid="uid://jl1gwqchhpdc" path="res://sprites/left_eye.png" id="3_2srrh"] [ext_resource type="Texture2D" uid="uid://iiawtnwmeny3" path="res://sprites/right_eye.png" id="4_ccn81"] [ext_resource type="Script" uid="uid://oxeqvxkgj87j" path="res://scripts/components/flip_player.gd" id="5_geu10"] [ext_resource type="Script" uid="uid://qeu80jy4vmuf" path="res://scripts/components/score.gd" id="6_fowa2"] [ext_resource type="Script" uid="uid://btfsq0bvtrx3t" path="res://scripts/components/health.gd" id="7_tqjk8"] [ext_resource type="Script" uid="uid://dkpu3121y88oo" path="res://scripts/components/player_death.gd" id="8_1v23d"] [ext_resource type="PackedScene" uid="uid://dyp4i4ru2j2jh" path="res://objects/fxs/explosion_fx.tscn" id="9_hwg11"] [ext_resource type="Script" uid="uid://nogmyshjrv57" path="res://scripts/components/knockback.gd" id="9_rjyu4"] [ext_resource type="Script" uid="uid://ulhswh4jjlc6" path="res://scripts/components/stomp_damage_component.gd" id="12_payr4"] [ext_resource type="Script" uid="uid://dqmbvuutd5c3c" path="res://scripts/components/flashing_component.gd" id="13_hrtyn"] [ext_resource type="Script" uid="uid://ijrli0x8ij8v" path="res://scripts/components/invulnerability_component.gd" id="14_jopig"] [ext_resource type="Script" uid="uid://6ffxsx3gknhr" path="res://scripts/components/can_be_launched_component.gd" id="16_kemlv"] [ext_resource type="Resource" uid="uid://dw5ee2lpeypnb" path="res://resources/skills/brick_throw.tres" id="16_smbir"] [ext_resource type="Resource" uid="uid://2glvryih82t1" path="res://resources/skills/fire_brick.tres" id="17_6y5qu"] [ext_resource type="Script" uid="uid://bpy6xtfm8l3hy" path="res://scripts/components/trigger_lever_component.gd" id="17_hglfj"] [ext_resource type="AudioStream" uid="uid://duj2q0rqytaxg" path="res://sfx/jump.wav" id="18_pysae"] [ext_resource type="Resource" uid="uid://cx5fsbexblp60" path="res://resources/skills/ice_brick.tres" id="18_umfbf"] [ext_resource type="Resource" uid="uid://cdp8sex36vdq2" path="res://resources/skills/explosive_brick.tres" id="19_5wjb7"] [ext_resource type="AudioStream" uid="uid://bmfn6p88gy575" path="res://sfx/player_hurt.wav" id="19_7anly"] [ext_resource type="AudioStream" uid="uid://ycgtf6wj7mto" path="res://sfx/heal.wav" id="20_bptj5"] [ext_resource type="Script" uid="uid://cjqe428jwip6b" path="res://scripts/skill_manager.gd" id="20_ppfy7"] [ext_resource type="Script" uid="uid://bya240e627ti6" path="res://scripts/resources/skill_data.gd" id="21_d0oiv"] [ext_resource type="Resource" uid="uid://d3bjre2etov1n" path="res://resources/skills/magnetic.tres" id="22_vnsgd"] [ext_resource type="Script" uid="uid://bjsyeo1n7bsri" path="res://scripts/components/skill_unlocker_component.gd" id="23_qsv2c"] [ext_resource type="Script" uid="uid://c6fclevp3peuo" path="res://scripts/components/charge_throw_component.gd" id="27_h8c1m"] [ext_resource type="PackedScene" uid="uid://bg76mtpcmfm2j" path="res://objects/ui/charging_bar_layer.tscn" id="28_3f5nm"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_hdsg1"] size = Vector2(16, 31) [sub_resource type="RectangleShape2D" id="RectangleShape2D_vad0t"] size = Vector2(16, 32) [sub_resource type="CircleShape2D" id="CircleShape2D_ps31c"] radius = 48.0 [node name="Brick Player" type="CharacterBody2D" node_paths=PackedStringArray("jump_sfx") groups=["player"]] collision_layer = 4 collision_mask = 43 script = ExtResource("1_8j4h4") jump_sfx = NodePath("sfx_jump") [node name="Root" type="Node2D" parent="."] [node name="Base" type="Sprite2D" parent="Root"] texture = ExtResource("2_bc55y") [node name="Left Eye" type="Sprite2D" parent="Root"] position = Vector2(-7, -6) texture = ExtResource("3_2srrh") hframes = 2 [node name="Right Eye" type="Sprite2D" parent="Root"] position = Vector2(6, -5) texture = ExtResource("4_ccn81") hframes = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, 0.5) shape = SubResource("RectangleShape2D_hdsg1") [node name="FlipPlayerComponent" type="Node2D" parent="." node_paths=PackedStringArray("eye_left", "eye_right", "player_controller")] script = ExtResource("5_geu10") eye_left = NodePath("../Root/Left Eye") eye_right = NodePath("../Root/Right Eye") player_controller = NodePath("..") [node name="StompDamageArea" type="Area2D" parent="."] collision_layer = 0 collision_mask = 8 [node name="CollisionShape2D" type="CollisionShape2D" parent="StompDamageArea"] position = Vector2(0, 1) shape = SubResource("RectangleShape2D_vad0t") [node name="CoyoteTimer" type="Timer" parent="."] [node name="CanPickUpComponent" type="Node" parent="."] [node name="ScoreComponent" type="Node" parent="."] script = ExtResource("6_fowa2") [node name="HealthComponent" type="Node" parent="." node_paths=PackedStringArray("hurt_fx", "heal_fx")] script = ExtResource("7_tqjk8") hurt_fx = NodePath("../sfx_hurt") heal_fx = NodePath("../sfx_heal") [node name="PlayerDeathComponent" type="Node2D" parent="."] process_mode = 3 script = ExtResource("8_1v23d") death_effect = ExtResource("9_hwg11") [node name="KnockbackComponent" type="Node" parent="." node_paths=PackedStringArray("character_body")] script = ExtResource("9_rjyu4") character_body = NodePath("..") knockback_force = 1500.0 [node name="ThrowTimer" type="Timer" parent="."] [node name="InvulnerabilityComponent" type="Node" parent="." node_paths=PackedStringArray("flashing_component")] script = ExtResource("14_jopig") flashing_component = NodePath("../FlashingComponent Base") [node name="FlashingComponent Base" type="Node" parent="." node_paths=PackedStringArray("sprite", "health_component")] script = ExtResource("13_hrtyn") sprite = NodePath("../Root/Base") flash_duration = 1.0 health_component = NodePath("../HealthComponent") [node name="FlashingComponent LEye" type="Node" parent="." node_paths=PackedStringArray("sprite", "health_component")] script = ExtResource("13_hrtyn") sprite = NodePath("../Root/Left Eye") flash_duration = 1.0 health_component = NodePath("../HealthComponent") [node name="FlashingComponent REye" type="Node" parent="." node_paths=PackedStringArray("sprite", "health_component")] script = ExtResource("13_hrtyn") sprite = NodePath("../Root/Right Eye") flash_duration = 1.0 health_component = NodePath("../HealthComponent") [node name="StompDamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d", "root")] script = ExtResource("12_payr4") damage = 4.0 area2d = NodePath("../StompDamageArea") root = NodePath("..") [node name="SkillManager" type="Node" parent="."] script = ExtResource("20_ppfy7") available_skills = Array[ExtResource("21_d0oiv")]([ExtResource("22_vnsgd"), ExtResource("17_6y5qu"), ExtResource("16_smbir"), ExtResource("18_umfbf"), ExtResource("19_5wjb7")]) [node name="SkillUnlockerComponent" type="Node" parent="." node_paths=PackedStringArray("skill_manager")] script = ExtResource("23_qsv2c") skill_manager = NodePath("../SkillManager") [node name="MagneticArea" type="Area2D" parent="."] collision_layer = 0 collision_mask = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="MagneticArea"] shape = SubResource("CircleShape2D_ps31c") [node name="CanBeLaunchedComponent" type="Node" parent="."] script = ExtResource("16_kemlv") [node name="TriggerLeverComponent" type="Node" parent="."] script = ExtResource("17_hglfj") [node name="sfx_jump" type="AudioStreamPlayer2D" parent="."] stream = ExtResource("18_pysae") [node name="sfx_hurt" type="AudioStreamPlayer2D" parent="."] stream = ExtResource("19_7anly") [node name="sfx_heal" type="AudioStreamPlayer2D" parent="."] stream = ExtResource("20_bptj5") [node name="ChargeThrowComponent" type="Node" parent="."] script = ExtResource("27_h8c1m") metadata/_custom_type_script = "uid://c6fclevp3peuo" [node name="ChargingBarLayer" parent="." node_paths=PackedStringArray("charge_throw_component") instance=ExtResource("28_3f5nm")] offset_left = -17.0 offset_top = -30.0 offset_right = 23.0 offset_bottom = -20.0 charge_throw_component = NodePath("../ChargeThrowComponent") [connection signal="on_death" from="HealthComponent" to="PlayerDeathComponent" method="_on_health_component_on_death"] [connection signal="on_health_change" from="HealthComponent" to="KnockbackComponent" method="_on_health_component_on_health_change"]