Refactor console and scene structure; update resource paths and add configuration handling
This commit is contained in:
42
objects/entities/big_coin.tscn
Normal file
42
objects/entities/big_coin.tscn
Normal file
@@ -0,0 +1,42 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bargnp4twtmxg"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_aya2w"]
|
||||
[ext_resource type="Script" uid="uid://pa1bwc4no08q" path="res://scripts/components/collectable.gd" id="2_7cph7"]
|
||||
[ext_resource type="Resource" uid="uid://bsnr5v2b2mfsl" path="res://resources/collectables/big_coin.tres" id="3_lk3av"]
|
||||
[ext_resource type="Script" uid="uid://bg75hnr3q6grk" path="res://scripts/components/fade_away.gd" id="4_wkrj0"]
|
||||
[ext_resource type="AudioStream" uid="uid://bceic1csr8rq3" path="res://sfx/pickup_coin_2.wav" id="5_dbffd"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_3ask2"]
|
||||
radius = 9.0
|
||||
|
||||
[node name="Big Coin" type="Area2D"]
|
||||
scale = Vector2(2, 2)
|
||||
collision_layer = 2
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_3ask2")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_aya2w")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 51
|
||||
|
||||
[node name="Collectable" type="Node" parent="." node_paths=PackedStringArray("area2d", "collision_shape", "sfx") groups=["coins"]]
|
||||
script = ExtResource("2_7cph7")
|
||||
area2d = NodePath("..")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
||||
collectable_data = ExtResource("3_lk3av")
|
||||
sfx = NodePath("../sfx")
|
||||
|
||||
[node name="FadeAwayComponent" type="Node" parent="." node_paths=PackedStringArray("sprite2d", "root", "area2d")]
|
||||
script = ExtResource("4_wkrj0")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
fade_duration = 0.4
|
||||
root = NodePath("..")
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="sfx" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("5_dbffd")
|
||||
volume_db = -5.0
|
40
objects/entities/big_treasure.tscn
Normal file
40
objects/entities/big_treasure.tscn
Normal file
@@ -0,0 +1,40 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://d08dfqmirnd66"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_1co1x"]
|
||||
[ext_resource type="Script" uid="uid://pa1bwc4no08q" path="res://scripts/components/collectable.gd" id="2_cujcq"]
|
||||
[ext_resource type="Resource" uid="uid://b6xqotmke54x" path="res://resources/collectables/big_treasure.tres" id="3_k64cr"]
|
||||
[ext_resource type="Script" uid="uid://bg75hnr3q6grk" path="res://scripts/components/fade_away.gd" id="4_nw7tw"]
|
||||
[ext_resource type="AudioStream" uid="uid://wr7n5ivv06ux" path="res://sfx/pickup_coin_4.wav" id="5_fxf8v"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_3ask2"]
|
||||
radius = 9.0
|
||||
|
||||
[node name="Big Treasure" type="Area2D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_3ask2")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_1co1x")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 64
|
||||
|
||||
[node name="Collectable" type="Node" parent="." node_paths=PackedStringArray("area2d", "collision_shape", "sfx") groups=["coins"]]
|
||||
script = ExtResource("2_cujcq")
|
||||
area2d = NodePath("..")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
||||
collectable_data = ExtResource("3_k64cr")
|
||||
sfx = NodePath("../sfx")
|
||||
|
||||
[node name="FadeAwayComponent" type="Node" parent="." node_paths=PackedStringArray("sprite2d", "root", "area2d")]
|
||||
script = ExtResource("4_nw7tw")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
fade_duration = 0.4
|
||||
root = NodePath("..")
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="sfx" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("5_fxf8v")
|
40
objects/entities/brick.tscn
Normal file
40
objects/entities/brick.tscn
Normal file
@@ -0,0 +1,40 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bymro4t7angv5"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_1c3jb"]
|
||||
[ext_resource type="Script" uid="uid://bh2vrkdbrtpin" path="res://scripts/components/bullet.gd" id="2_i6t5k"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="3_8xipx"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ar0xf"]
|
||||
size = Vector2(16, 10)
|
||||
|
||||
[node name="Brick" type="Area2D"]
|
||||
collision_layer = 16
|
||||
collision_mask = 9
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_ar0xf")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_1c3jb")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 80
|
||||
|
||||
[node name="BulletComponent" type="Node" parent="." node_paths=PackedStringArray("root", "area2d", "visibility_notifier", "timer")]
|
||||
script = ExtResource("2_i6t5k")
|
||||
root = NodePath("..")
|
||||
speed = 320.0
|
||||
area2d = NodePath("..")
|
||||
visibility_notifier = NodePath("../VisibleOnScreenNotifier2D")
|
||||
life_time = 2.0
|
||||
timer = NodePath("../Timer")
|
||||
|
||||
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
|
||||
position = Vector2(0, 2.38419e-07)
|
||||
scale = Vector2(0.8, 0.5)
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("3_8xipx")
|
||||
area2d = NodePath("..")
|
161
objects/entities/brick_player.tscn
Normal file
161
objects/entities/brick_player.tscn
Normal file
@@ -0,0 +1,161 @@
|
||||
[gd_scene load_steps=30 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"]
|
||||
|
||||
[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")
|
||||
|
||||
[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"]
|
41
objects/entities/bullet.tscn
Normal file
41
objects/entities/bullet.tscn
Normal file
@@ -0,0 +1,41 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bhc7y4xugu4q7"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_w543f"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="2_ll0xw"]
|
||||
[ext_resource type="Script" uid="uid://bh2vrkdbrtpin" path="res://scripts/components/bullet.gd" id="3_keogl"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_txsw8"]
|
||||
radius = 4.0
|
||||
|
||||
[node name="Bullet" type="Area2D"]
|
||||
collision_layer = 8
|
||||
collision_mask = 21
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_txsw8")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("1_w543f")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 79
|
||||
|
||||
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
|
||||
position = Vector2(2.38419e-07, 2.38419e-07)
|
||||
scale = Vector2(0.4, 0.4)
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("2_ll0xw")
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="BulletComponent" type="Node2D" parent="." node_paths=PackedStringArray("root", "area2d", "visibility_notifier", "timer")]
|
||||
script = ExtResource("3_keogl")
|
||||
root = NodePath("..")
|
||||
speed = 120.0
|
||||
area2d = NodePath("..")
|
||||
visibility_notifier = NodePath("../VisibleOnScreenNotifier2D")
|
||||
timer = NodePath("../Timer")
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
autostart = true
|
29
objects/entities/cage.tscn
Normal file
29
objects/entities/cage.tscn
Normal file
@@ -0,0 +1,29 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://to2xnqev0pu1"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_5poh3"]
|
||||
[ext_resource type="Script" uid="uid://ddplvyjqguxtl" path="res://scripts/components/cage_component.gd" id="2_unomj"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_aivtb"]
|
||||
texture = ExtResource("1_5poh3")
|
||||
2:9/size_in_atlas = Vector2i(2, 2)
|
||||
2:9/0 = 0
|
||||
2:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||
|
||||
[sub_resource type="TileSet" id="TileSet_67qt2"]
|
||||
tile_size = Vector2i(32, 32)
|
||||
physics_layer_0/collision_layer = 1
|
||||
sources/0 = SubResource("TileSetAtlasSource_aivtb")
|
||||
|
||||
[node name="Cage" type="Node2D"]
|
||||
z_index = 2
|
||||
scale = Vector2(2, 2)
|
||||
|
||||
[node name="TileMapLayer" type="TileMapLayer" parent="."]
|
||||
position = Vector2(20, 4)
|
||||
tile_map_data = PackedByteArray(0, 0, 255, 255, 255, 255, 0, 0, 2, 0, 9, 0, 0, 0)
|
||||
tile_set = SubResource("TileSet_67qt2")
|
||||
|
||||
[node name="CageComponent" type="Node" parent="." node_paths=PackedStringArray("root")]
|
||||
script = ExtResource("2_unomj")
|
||||
root = NodePath("..")
|
||||
should_free = false
|
27
objects/entities/cannon.tscn
Normal file
27
objects/entities/cannon.tscn
Normal file
@@ -0,0 +1,27 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dstko446qydsc"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_6gptm"]
|
||||
[ext_resource type="Script" uid="uid://d01dmoafptl2p" path="res://scripts/components/destroyable_component.gd" id="2_2tib2"]
|
||||
[ext_resource type="Script" uid="uid://btfsq0bvtrx3t" path="res://scripts/components/health.gd" id="3_vevhj"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_j5sus"]
|
||||
size = Vector2(16, 16)
|
||||
|
||||
[node name="Cannon" type="StaticBody2D"]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_6gptm")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 42
|
||||
|
||||
[node name="DestroyableComponent" type="Node" parent="." node_paths=PackedStringArray("root", "health_component")]
|
||||
script = ExtResource("2_2tib2")
|
||||
root = NodePath("..")
|
||||
health_component = NodePath("../HealthComponent")
|
||||
|
||||
[node name="HealthComponent" type="Node" parent="."]
|
||||
script = ExtResource("3_vevhj")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_j5sus")
|
32
objects/entities/cannon_ray_down.tscn
Normal file
32
objects/entities/cannon_ray_down.tscn
Normal file
@@ -0,0 +1,32 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dfwpha0d18dmn"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_rwgpm"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="2_cprue"]
|
||||
[ext_resource type="Script" uid="uid://bejv75mi8npj0" path="res://scripts/components/beam_component.gd" id="3_jlh0s"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ptfn7"]
|
||||
size = Vector2(8, 16)
|
||||
|
||||
[node name="Cannon Ray" type="Area2D"]
|
||||
collision_layer = 0
|
||||
collision_mask = 5
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture_repeat = 2
|
||||
texture = ExtResource("1_rwgpm")
|
||||
region_enabled = true
|
||||
region_rect = Rect2(176, 64, 16, 16)
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_ptfn7")
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("2_cprue")
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="BeamComponent" type="Node2D" parent="." node_paths=PackedStringArray("root", "sprite2d", "collision_shape")]
|
||||
position = Vector2(0, -8)
|
||||
script = ExtResource("3_jlh0s")
|
||||
root = NodePath("..")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
35
objects/entities/cannon_ray_left.tscn
Normal file
35
objects/entities/cannon_ray_left.tscn
Normal file
@@ -0,0 +1,35 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://d3lt4rhxduv44"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_l5x2w"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="2_mxy0q"]
|
||||
[ext_resource type="Script" uid="uid://bejv75mi8npj0" path="res://scripts/components/beam_component.gd" id="3_mcbof"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ptfn7"]
|
||||
size = Vector2(16, 8)
|
||||
|
||||
[node name="Cannon Ray" type="Area2D"]
|
||||
collision_layer = 0
|
||||
collision_mask = 5
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture_repeat = 2
|
||||
rotation = 1.5708
|
||||
texture = ExtResource("1_l5x2w")
|
||||
region_enabled = true
|
||||
region_rect = Rect2(176, 64, 16, 16)
|
||||
region_filter_clip_enabled = true
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_ptfn7")
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("2_mxy0q")
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="BeamComponent" type="Node2D" parent="." node_paths=PackedStringArray("root", "sprite2d", "collision_shape")]
|
||||
position = Vector2(8, 0)
|
||||
script = ExtResource("3_mcbof")
|
||||
direction = Vector2(-1, 0)
|
||||
root = NodePath("..")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
56
objects/entities/child.tscn
Normal file
56
objects/entities/child.tscn
Normal file
@@ -0,0 +1,56 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://d0s2abysa86rq"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b7gp0gqvkv8j4" path="res://sprites/MrBrick_base.png" id="1_jcisc"]
|
||||
[ext_resource type="Texture2D" uid="uid://jl1gwqchhpdc" path="res://sprites/left_eye.png" id="2_8jrbi"]
|
||||
[ext_resource type="Texture2D" uid="uid://iiawtnwmeny3" path="res://sprites/right_eye.png" id="3_k41y7"]
|
||||
[ext_resource type="Texture2D" uid="uid://8h05rd26t66q" path="res://sprites/lollipop.png" id="4_vq1oq"]
|
||||
[ext_resource type="Texture2D" uid="uid://dpbpjffbdbovp" path="res://sprites/cap.png" id="5_m7x6t"]
|
||||
[ext_resource type="Script" uid="uid://pa1bwc4no08q" path="res://scripts/components/collectable.gd" id="5_wc3ym"]
|
||||
[ext_resource type="Resource" uid="uid://b6apusc0jmi3x" path="res://resources/collectables/child.tres" id="6_vmvuo"]
|
||||
[ext_resource type="AudioStream" uid="uid://drfr0wlgkhkdq" path="res://sfx/child_pickup.wav" id="7_j8eyh"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dj5g5"]
|
||||
size = Vector2(10, 20)
|
||||
|
||||
[node name="Child" type="Area2D"]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_dj5g5")
|
||||
|
||||
[node name="Root" type="Node2D" parent="."]
|
||||
|
||||
[node name="Body" type="Node2D" parent="Root"]
|
||||
|
||||
[node name="Base" type="Sprite2D" parent="Root/Body"]
|
||||
texture = ExtResource("1_jcisc")
|
||||
|
||||
[node name="Left Eye" type="Sprite2D" parent="Root/Body"]
|
||||
position = Vector2(-7, -6)
|
||||
texture = ExtResource("2_8jrbi")
|
||||
hframes = 2
|
||||
|
||||
[node name="Right Eye" type="Sprite2D" parent="Root/Body"]
|
||||
position = Vector2(6, -5)
|
||||
texture = ExtResource("3_k41y7")
|
||||
hframes = 2
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Root"]
|
||||
position = Vector2(3, 1)
|
||||
rotation = 0.785398
|
||||
texture = ExtResource("4_vq1oq")
|
||||
|
||||
[node name="Cap" type="Sprite2D" parent="Root"]
|
||||
position = Vector2(4, -18)
|
||||
texture = ExtResource("5_m7x6t")
|
||||
|
||||
[node name="Collectable" type="Node" parent="." node_paths=PackedStringArray("area2d", "collision_shape", "sfx")]
|
||||
script = ExtResource("5_wc3ym")
|
||||
area2d = NodePath("..")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
||||
collectable_data = ExtResource("6_vmvuo")
|
||||
sfx = NodePath("../sfx_pickup")
|
||||
|
||||
[node name="sfx_pickup" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("7_j8eyh")
|
41
objects/entities/coin.tscn
Normal file
41
objects/entities/coin.tscn
Normal file
@@ -0,0 +1,41 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://54w4wisfj8v8"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_epuj5"]
|
||||
[ext_resource type="Script" uid="uid://pa1bwc4no08q" path="res://scripts/components/collectable.gd" id="2_y0k47"]
|
||||
[ext_resource type="Resource" uid="uid://vql535ckoeqm" path="res://resources/collectables/coin.tres" id="3_fm2fq"]
|
||||
[ext_resource type="Script" uid="uid://bg75hnr3q6grk" path="res://scripts/components/fade_away.gd" id="4_fx1h2"]
|
||||
[ext_resource type="AudioStream" uid="uid://dpyr80hk4kebc" path="res://sfx/pickup_coin_1.wav" id="5_4jc2c"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_3ask2"]
|
||||
radius = 9.0
|
||||
|
||||
[node name="Coin" type="Area2D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_3ask2")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_epuj5")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 51
|
||||
|
||||
[node name="Collectable" type="Node" parent="." node_paths=PackedStringArray("area2d", "collision_shape", "sfx") groups=["coins"]]
|
||||
script = ExtResource("2_y0k47")
|
||||
area2d = NodePath("..")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
||||
collectable_data = ExtResource("3_fm2fq")
|
||||
sfx = NodePath("../sfx")
|
||||
|
||||
[node name="FadeAwayComponent" type="Node" parent="." node_paths=PackedStringArray("sprite2d", "root", "area2d")]
|
||||
script = ExtResource("4_fx1h2")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
fade_duration = 0.4
|
||||
root = NodePath("..")
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="sfx" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("5_4jc2c")
|
||||
volume_db = -10.0
|
49
objects/entities/collapsing_bridge.tscn
Normal file
49
objects/entities/collapsing_bridge.tscn
Normal file
@@ -0,0 +1,49 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://ct8fim6mduyl3"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_rka1x"]
|
||||
[ext_resource type="Script" uid="uid://r0a6xjicrh74" path="res://scripts/components/collapsable.gd" id="2_3vvum"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_l44jt"]
|
||||
size = Vector2(16, 4)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_sfbe2"]
|
||||
size = Vector2(16, 2)
|
||||
|
||||
[node name="Collapsing Bridge" type="StaticBody2D"]
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -6)
|
||||
shape = SubResource("RectangleShape2D_l44jt")
|
||||
one_way_collision = true
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_rka1x")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 56
|
||||
|
||||
[node name="Collapsable detector" type="Area2D" parent="."]
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Collapsable detector"]
|
||||
position = Vector2(0, -8)
|
||||
shape = SubResource("RectangleShape2D_sfbe2")
|
||||
|
||||
[node name="ToCollapseTimer" type="Timer" parent="."]
|
||||
wait_time = 0.5
|
||||
|
||||
[node name="ResetTimer" type="Timer" parent="."]
|
||||
|
||||
[node name="CollapsableComponent" type="Node" parent="." node_paths=PackedStringArray("to_collapse_timer", "reset_timer", "sprite2d", "collision_shape")]
|
||||
script = ExtResource("2_3vvum")
|
||||
to_collapse_timer = NodePath("../ToCollapseTimer")
|
||||
reset_timer = NodePath("../ResetTimer")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
||||
collapse_time = 0.75
|
||||
reset_time = 3.0
|
||||
|
||||
[connection signal="body_entered" from="Collapsable detector" to="CollapsableComponent" method="_on_collapsable_detector_body_entered"]
|
||||
[connection signal="body_exited" from="Collapsable detector" to="CollapsableComponent" method="_on_collapsable_detector_body_exited"]
|
||||
[connection signal="timeout" from="ToCollapseTimer" to="CollapsableComponent" method="_on_to_collapse_timer_timeout"]
|
||||
[connection signal="timeout" from="ResetTimer" to="CollapsableComponent" method="_on_reset_timer_timeout"]
|
145
objects/entities/enemy.tscn
Normal file
145
objects/entities/enemy.tscn
Normal file
@@ -0,0 +1,145 @@
|
||||
[gd_scene load_steps=20 format=3 uid="uid://bwdlmualj6xbw"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://bs4xvm4qkurpr" path="res://shaders/hit_flash.tres" id="1_ep4yr"]
|
||||
[ext_resource type="Texture2D" uid="uid://cu72810eyk4dx" path="res://sprites/enemy-robot.png" id="2_hjtwe"]
|
||||
[ext_resource type="Script" uid="uid://btfsq0bvtrx3t" path="res://scripts/components/health.gd" id="2_o170m"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="4_4eajk"]
|
||||
[ext_resource type="Script" uid="uid://dmqpif5qhvri3" path="res://scripts/components/side_to_side_movement.gd" id="4_gbsq8"]
|
||||
[ext_resource type="Script" uid="uid://b37gqnycj6rtk" path="res://scripts/components/periodic_shooting.gd" id="5_m03v0"]
|
||||
[ext_resource type="Script" uid="uid://dqm371fysuk7i" path="res://scripts/components/enemy_death.gd" id="6_6p3gr"]
|
||||
[ext_resource type="Script" uid="uid://dqmbvuutd5c3c" path="res://scripts/components/flashing_component.gd" id="7_xsaiy"]
|
||||
[ext_resource type="Script" uid="uid://ceq8n7yw7qxpi" path="res://scripts/components/hit_component.gd" id="9_0qjr4"]
|
||||
[ext_resource type="Script" uid="uid://c07d50s20rl8s" path="res://scripts/components/status_effect_component.gd" id="10_5i27q"]
|
||||
[ext_resource type="Script" uid="uid://qi2irprbqru2" path="res://scripts/components/fire_effect_component.gd" id="10_ej8vg"]
|
||||
[ext_resource type="Script" uid="uid://dhj4qtwcqmqkj" path="res://scripts/components/ice_effect_component.gd" id="11_pq0k7"]
|
||||
[ext_resource type="AudioStream" uid="uid://b3tsqhr06pbrs" path="res://sfx/enemy_hurt.wav" id="13_u4k3d"]
|
||||
[ext_resource type="AudioStream" uid="uid://dyev46uqusimi" path="res://sfx/shoot.wav" id="14_tdjks"]
|
||||
[ext_resource type="PackedScene" uid="uid://dx80ivlvuuew4" path="res://objects/fxs/fire_fx.tscn" id="15_mc6rj"]
|
||||
[ext_resource type="PackedScene" uid="uid://ck6nml06tm6ue" path="res://objects/fxs/ice_fx.tscn" id="16_68hnm"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pwwji"]
|
||||
size = Vector2(25, 31)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_j18j0"]
|
||||
shader = ExtResource("1_ep4yr")
|
||||
shader_parameter/enabled = false
|
||||
shader_parameter/tint = Color(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ejbqt"]
|
||||
size = Vector2(34, 31)
|
||||
|
||||
[node name="Enemy" type="CharacterBody2D"]
|
||||
collision_layer = 8
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(-1.5, 0.5)
|
||||
shape = SubResource("RectangleShape2D_pwwji")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_j18j0")
|
||||
texture = ExtResource("2_hjtwe")
|
||||
|
||||
[node name="right bullet spawn" type="Node2D" parent="Sprite2D"]
|
||||
position = Vector2(16, 7)
|
||||
|
||||
[node name="left bullet spawn" type="Node2D" parent="Sprite2D"]
|
||||
position = Vector2(-17, 7)
|
||||
|
||||
[node name="HealthComponent" type="Node" parent="." node_paths=PackedStringArray("hurt_fx")]
|
||||
script = ExtResource("2_o170m")
|
||||
hurt_fx = NodePath("../sfx_hurt")
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("4_4eajk")
|
||||
area2d = NodePath("../Hitbox")
|
||||
|
||||
[node name="SideToSideMovement" type="Node" parent="." node_paths=PackedStringArray("root", "sprite2d", "left_ray", "right_ray", "left_wall_ray", "right_wall_ray")]
|
||||
script = ExtResource("4_gbsq8")
|
||||
root = NodePath("..")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
speed = 60.0
|
||||
wait_time = 0.5
|
||||
left_ray = NodePath("../Left Ray")
|
||||
right_ray = NodePath("../Right Ray")
|
||||
left_wall_ray = NodePath("../Left Wall Ray")
|
||||
right_wall_ray = NodePath("../Right Wall Ray")
|
||||
|
||||
[node name="PeriodicShootingComponent" type="Node" parent="." node_paths=PackedStringArray("side_to_side_movement", "root", "bullet_spawn_right", "bullet_spawn_left")]
|
||||
script = ExtResource("5_m03v0")
|
||||
side_to_side_movement = NodePath("../SideToSideMovement")
|
||||
root = NodePath("..")
|
||||
bullet_spawn_right = NodePath("../Sprite2D/right bullet spawn")
|
||||
bullet_spawn_left = NodePath("../Sprite2D/left bullet spawn")
|
||||
|
||||
[node name="EnemyDeathComponent" type="Node" parent="." node_paths=PackedStringArray("root", "collision_shape_2d", "health_component")]
|
||||
script = ExtResource("6_6p3gr")
|
||||
root = NodePath("..")
|
||||
tween_duration = 0.1
|
||||
collision_shape_2d = NodePath("../Hitbox/CollisionShape2D")
|
||||
health_component = NodePath("../HealthComponent")
|
||||
|
||||
[node name="Hitbox" type="Area2D" parent="."]
|
||||
collision_layer = 8
|
||||
collision_mask = 20
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
|
||||
position = Vector2(-2, 0.5)
|
||||
shape = SubResource("RectangleShape2D_ejbqt")
|
||||
debug_color = Color(0.913521, 0.265052, 0.323172, 0.42)
|
||||
|
||||
[node name="Left Ray" type="RayCast2D" parent="."]
|
||||
position = Vector2(-16, 13)
|
||||
target_position = Vector2(0, 8)
|
||||
|
||||
[node name="Left Wall Ray" type="RayCast2D" parent="."]
|
||||
position = Vector2(-16, 0)
|
||||
target_position = Vector2(-8, 0)
|
||||
|
||||
[node name="Right Ray" type="RayCast2D" parent="."]
|
||||
position = Vector2(16, 13)
|
||||
target_position = Vector2(0, 8)
|
||||
|
||||
[node name="Right Wall Ray" type="RayCast2D" parent="."]
|
||||
position = Vector2(16, 0)
|
||||
target_position = Vector2(8, 0)
|
||||
|
||||
[node name="FlashingComponent" type="Node" parent="." node_paths=PackedStringArray("sprite", "health_component")]
|
||||
process_mode = 3
|
||||
script = ExtResource("7_xsaiy")
|
||||
sprite = NodePath("../Sprite2D")
|
||||
health_component = NodePath("../HealthComponent")
|
||||
|
||||
[node name="HitComponent" type="Node" parent="." node_paths=PackedStringArray("sprite", "health_component")]
|
||||
script = ExtResource("9_0qjr4")
|
||||
sprite = NodePath("../Sprite2D")
|
||||
health_component = NodePath("../HealthComponent")
|
||||
|
||||
[node name="StatusEffectComponent" type="Node" parent="."]
|
||||
script = ExtResource("10_5i27q")
|
||||
|
||||
[node name="FireEffectComponent" type="Node" parent="." node_paths=PackedStringArray("health_component", "status_effect_component", "root", "fire_fx")]
|
||||
script = ExtResource("10_ej8vg")
|
||||
health_component = NodePath("../HealthComponent")
|
||||
status_effect_component = NodePath("../StatusEffectComponent")
|
||||
root = NodePath("..")
|
||||
fire_fx = NodePath("../FireFX")
|
||||
|
||||
[node name="IceEffectComponent" type="Node" parent="." node_paths=PackedStringArray("status_effect_component", "ice_fx")]
|
||||
script = ExtResource("11_pq0k7")
|
||||
components_to_disable = [NodePath("../SideToSideMovement"), NodePath("../PeriodicShootingComponent"), NodePath("../DamageComponent")]
|
||||
status_effect_component = NodePath("../StatusEffectComponent")
|
||||
ice_fx = NodePath("../Ice FX")
|
||||
|
||||
[node name="sfx_hurt" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("13_u4k3d")
|
||||
|
||||
[node name="sfx_shoot" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("14_tdjks")
|
||||
|
||||
[node name="FireFX" parent="." instance=ExtResource("15_mc6rj")]
|
||||
position = Vector2(0, 9)
|
||||
emitting = false
|
||||
amount = 2048
|
||||
|
||||
[node name="Ice FX" parent="." instance=ExtResource("16_68hnm")]
|
||||
visible = false
|
43
objects/entities/exit_level.tscn
Normal file
43
objects/entities/exit_level.tscn
Normal file
@@ -0,0 +1,43 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://12jnkdygpxwc"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_agxwm"]
|
||||
[ext_resource type="Script" uid="uid://cmh8k0rdsyh7j" path="res://scripts/components/requirement_component.gd" id="2_iysc1"]
|
||||
[ext_resource type="Script" uid="uid://c8xhgkg8gcqu6" path="res://scripts/components/unlock_on_requirement_component.gd" id="3_5ktpq"]
|
||||
[ext_resource type="Script" uid="uid://bwamqffvpa452" path="res://scripts/components/exit_door_component.gd" id="4_4jgt0"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_yfu6m"]
|
||||
size = Vector2(28, 32)
|
||||
|
||||
[node name="ExitLevel" type="Area2D"]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
position = Vector2(0, -8)
|
||||
scale = Vector2(2, 2)
|
||||
texture = ExtResource("1_agxwm")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 54
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -8)
|
||||
shape = SubResource("RectangleShape2D_yfu6m")
|
||||
|
||||
[node name="RequirementComponent" type="Node" parent="."]
|
||||
script = ExtResource("2_iysc1")
|
||||
requirement_type = 1
|
||||
metadata/_custom_type_script = "uid://cmh8k0rdsyh7j"
|
||||
|
||||
[node name="UnlockOnRequirementComponent" type="Node" parent="." node_paths=PackedStringArray("requirement_component", "unlock_target")]
|
||||
script = ExtResource("3_5ktpq")
|
||||
requirement_component = NodePath("../RequirementComponent")
|
||||
unlock_target = NodePath("../ExitDoorComponent")
|
||||
metadata/_custom_type_script = "uid://c8xhgkg8gcqu6"
|
||||
|
||||
[node name="ExitDoorComponent" type="Node" parent="." node_paths=PackedStringArray("exit_area", "door_sprite")]
|
||||
script = ExtResource("4_4jgt0")
|
||||
exit_area = NodePath("..")
|
||||
door_sprite = NodePath("../Sprite2D")
|
||||
opened_door_frame = 88
|
||||
metadata/_custom_type_script = "uid://bwamqffvpa452"
|
64
objects/entities/exploding_brick.tscn
Normal file
64
objects/entities/exploding_brick.tscn
Normal file
@@ -0,0 +1,64 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://5surx230gfw3"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_rcgxf"]
|
||||
[ext_resource type="Script" uid="uid://bh2vrkdbrtpin" path="res://scripts/components/bullet.gd" id="2_1i2y5"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="3_y0uai"]
|
||||
[ext_resource type="Script" uid="uid://beg4dk7d5pvhp" path="res://scripts/components/explosive_component.gd" id="4_8lw0n"]
|
||||
[ext_resource type="PackedScene" uid="uid://dyp4i4ru2j2jh" path="res://objects/fxs/explosion_fx.tscn" id="5_6oopj"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ar0xf"]
|
||||
size = Vector2(16, 10)
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_e6vaq"]
|
||||
radius = 32.0
|
||||
|
||||
[node name="Brick" type="Area2D"]
|
||||
collision_layer = 16
|
||||
collision_mask = 9
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_ar0xf")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_rcgxf")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 80
|
||||
|
||||
[node name="BulletComponent" type="Node" parent="." node_paths=PackedStringArray("root", "area2d", "visibility_notifier", "timer")]
|
||||
script = ExtResource("2_1i2y5")
|
||||
root = NodePath("..")
|
||||
speed = 120.0
|
||||
area2d = NodePath("..")
|
||||
visibility_notifier = NodePath("../VisibleOnScreenNotifier2D")
|
||||
life_time = 2.0
|
||||
timer = NodePath("../Timer")
|
||||
|
||||
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
|
||||
position = Vector2(0, 2.38419e-07)
|
||||
scale = Vector2(0.8, 0.5)
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("3_y0uai")
|
||||
damage = 5.0
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="ExplosiveComponent" type="Node" parent="." node_paths=PackedStringArray("root", "damage", "area2d", "explosion_area2d")]
|
||||
script = ExtResource("4_8lw0n")
|
||||
root = NodePath("..")
|
||||
damage = NodePath("../DamageComponent")
|
||||
area2d = NodePath("..")
|
||||
explosion_area2d = NodePath("../Explosion area")
|
||||
explosion_effect = ExtResource("5_6oopj")
|
||||
|
||||
[node name="Explosion area" type="Area2D" parent="."]
|
||||
collision_layer = 0
|
||||
collision_mask = 9
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Explosion area"]
|
||||
shape = SubResource("CircleShape2D_e6vaq")
|
||||
|
||||
[node name="ExplosionFX" parent="." instance=ExtResource("5_6oopj")]
|
||||
randomness = 0.24
|
48
objects/entities/fire_brick.tscn
Normal file
48
objects/entities/fire_brick.tscn
Normal file
@@ -0,0 +1,48 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://daau4j5hbklk0"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_52l28"]
|
||||
[ext_resource type="Script" uid="uid://bh2vrkdbrtpin" path="res://scripts/components/bullet.gd" id="2_hjcob"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="3_sog2h"]
|
||||
[ext_resource type="Resource" uid="uid://obodgnkhxuhe" path="res://resources/status_effect/fire.tres" id="4_xx5l4"]
|
||||
[ext_resource type="Script" uid="uid://d3brcje121krs" path="res://scripts/components/effect_inflictor_component.gd" id="5_ofrqk"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ar0xf"]
|
||||
size = Vector2(16, 10)
|
||||
|
||||
[node name="Brick" type="Area2D"]
|
||||
collision_layer = 16
|
||||
collision_mask = 9
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_ar0xf")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_52l28")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 80
|
||||
|
||||
[node name="BulletComponent" type="Node" parent="." node_paths=PackedStringArray("root", "area2d", "visibility_notifier", "timer")]
|
||||
script = ExtResource("2_hjcob")
|
||||
root = NodePath("..")
|
||||
speed = 330.0
|
||||
area2d = NodePath("..")
|
||||
visibility_notifier = NodePath("../VisibleOnScreenNotifier2D")
|
||||
life_time = 2.0
|
||||
timer = NodePath("../Timer")
|
||||
|
||||
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
|
||||
position = Vector2(0, 2.38419e-07)
|
||||
scale = Vector2(0.8, 0.5)
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("3_sog2h")
|
||||
damage = 0.1
|
||||
area2d = NodePath("..")
|
||||
status_effect_data = ExtResource("4_xx5l4")
|
||||
|
||||
[node name="EffectInflictorComponent" type="Node" parent="." node_paths=PackedStringArray("damage")]
|
||||
script = ExtResource("5_ofrqk")
|
||||
damage = NodePath("../DamageComponent")
|
48
objects/entities/ice_brick.tscn
Normal file
48
objects/entities/ice_brick.tscn
Normal file
@@ -0,0 +1,48 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bcmx07k12gcsc"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_xusxl"]
|
||||
[ext_resource type="Script" uid="uid://bh2vrkdbrtpin" path="res://scripts/components/bullet.gd" id="2_ilnf5"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="3_3yf4g"]
|
||||
[ext_resource type="Resource" uid="uid://02l4nbnf2aft" path="res://resources/status_effect/ice.tres" id="4_da7hn"]
|
||||
[ext_resource type="Script" uid="uid://d3brcje121krs" path="res://scripts/components/effect_inflictor_component.gd" id="5_x7vqb"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ar0xf"]
|
||||
size = Vector2(16, 10)
|
||||
|
||||
[node name="Brick" type="Area2D"]
|
||||
collision_layer = 16
|
||||
collision_mask = 9
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_ar0xf")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_xusxl")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 80
|
||||
|
||||
[node name="BulletComponent" type="Node" parent="." node_paths=PackedStringArray("root", "area2d", "visibility_notifier", "timer")]
|
||||
script = ExtResource("2_ilnf5")
|
||||
root = NodePath("..")
|
||||
speed = 250.0
|
||||
area2d = NodePath("..")
|
||||
visibility_notifier = NodePath("../VisibleOnScreenNotifier2D")
|
||||
life_time = 2.0
|
||||
timer = NodePath("../Timer")
|
||||
|
||||
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
|
||||
position = Vector2(0, 2.38419e-07)
|
||||
scale = Vector2(0.8, 0.5)
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("3_3yf4g")
|
||||
damage = 0.05
|
||||
area2d = NodePath("..")
|
||||
status_effect_data = ExtResource("4_da7hn")
|
||||
|
||||
[node name="EffectInflictorComponent" type="Node" parent="." node_paths=PackedStringArray("damage")]
|
||||
script = ExtResource("5_x7vqb")
|
||||
damage = NodePath("../DamageComponent")
|
28
objects/entities/jump_pad.tscn
Normal file
28
objects/entities/jump_pad.tscn
Normal file
@@ -0,0 +1,28 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://cm3rixnnev1pg"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_ctugi"]
|
||||
[ext_resource type="Script" uid="uid://dwok2qx4wpkey" path="res://scripts/components/jump_pad_component.gd" id="2_2ypfs"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ci3ij"]
|
||||
size = Vector2(16, 6)
|
||||
|
||||
[node name="Jump pad" type="Area2D"]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, 5)
|
||||
shape = SubResource("RectangleShape2D_ci3ij")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_ctugi")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 120
|
||||
|
||||
[node name="JumpPadComponent" type="Node" parent="." node_paths=PackedStringArray("area2d", "sprite2d")]
|
||||
script = ExtResource("2_2ypfs")
|
||||
jump_force = 1110.0
|
||||
area2d = NodePath("..")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
start_animation_index = 120
|
17
objects/entities/killzone.tscn
Normal file
17
objects/entities/killzone.tscn
Normal file
@@ -0,0 +1,17 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bqom4cm7r18db"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="1_un3fl"]
|
||||
|
||||
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_cr00c"]
|
||||
|
||||
[node name="Killzone" type="Area2D"]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("WorldBoundaryShape2D_cr00c")
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("1_un3fl")
|
||||
damage = 999999.0
|
||||
area2d = NodePath("..")
|
32
objects/entities/laser_beam.tscn
Normal file
32
objects/entities/laser_beam.tscn
Normal file
@@ -0,0 +1,32 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://c7ku0k8n55hjv"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_brnkm"]
|
||||
[ext_resource type="Script" uid="uid://dkmxhjtmu5xlb" path="res://scripts/components/damage_component.gd" id="2_x12f0"]
|
||||
[ext_resource type="Script" uid="uid://bejv75mi8npj0" path="res://scripts/components/beam_component.gd" id="3_6pj0h"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ptfn7"]
|
||||
size = Vector2(8, 16)
|
||||
|
||||
[node name="Laser Beam" type="Area2D"]
|
||||
collision_layer = 0
|
||||
collision_mask = 5
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture_repeat = 2
|
||||
texture = ExtResource("1_brnkm")
|
||||
region_enabled = true
|
||||
region_rect = Rect2(176, 64, 16, 16)
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_ptfn7")
|
||||
|
||||
[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("area2d")]
|
||||
script = ExtResource("2_x12f0")
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="BeamComponent" type="Node2D" parent="." node_paths=PackedStringArray("root", "sprite2d", "collision_shape")]
|
||||
position = Vector2(0, -8)
|
||||
script = ExtResource("3_6pj0h")
|
||||
root = NodePath("..")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
32
objects/entities/lever.tscn
Normal file
32
objects/entities/lever.tscn
Normal file
@@ -0,0 +1,32 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bd51frym6mm7v"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_psg62"]
|
||||
[ext_resource type="Script" uid="uid://hyuwsp1b336a" path="res://scripts/components/lever_component.gd" id="2_0p0wb"]
|
||||
[ext_resource type="AudioStream" uid="uid://beq14we7v3iw4" path="res://sfx/activate_lever.wav" id="3_gipby"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ke5tv"]
|
||||
size = Vector2(12, 13)
|
||||
|
||||
[node name="Lever" type="Area2D" groups=["levers"]]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, 1.5)
|
||||
shape = SubResource("RectangleShape2D_ke5tv")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_psg62")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 75
|
||||
|
||||
[node name="LeverComponent" type="Node" parent="." node_paths=PackedStringArray("area2d", "sprite2d", "sfx")]
|
||||
script = ExtResource("2_0p0wb")
|
||||
area2d = NodePath("..")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
start_animation_index = 75
|
||||
sfx = NodePath("../sfx")
|
||||
|
||||
[node name="sfx" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("3_gipby")
|
41
objects/entities/treasure.tscn
Normal file
41
objects/entities/treasure.tscn
Normal file
@@ -0,0 +1,41 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://073ts5cxtwbl"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_uh3ex"]
|
||||
[ext_resource type="Script" uid="uid://pa1bwc4no08q" path="res://scripts/components/collectable.gd" id="2_i1ssp"]
|
||||
[ext_resource type="Resource" uid="uid://bws2xldndlre1" path="res://resources/collectables/treasure.tres" id="3_uknsr"]
|
||||
[ext_resource type="Script" uid="uid://bg75hnr3q6grk" path="res://scripts/components/fade_away.gd" id="4_ccbcr"]
|
||||
[ext_resource type="AudioStream" uid="uid://d2rj7uy5f0kwm" path="res://sfx/pickup_coin_3.wav" id="5_xt2rk"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_3ask2"]
|
||||
radius = 9.0
|
||||
|
||||
[node name="Treasure" type="Area2D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_3ask2")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_uh3ex")
|
||||
hframes = 12
|
||||
vframes = 12
|
||||
frame = 66
|
||||
|
||||
[node name="Collectable" type="Node" parent="." node_paths=PackedStringArray("area2d", "collision_shape", "sfx") groups=["coins"]]
|
||||
script = ExtResource("2_i1ssp")
|
||||
area2d = NodePath("..")
|
||||
collision_shape = NodePath("../CollisionShape2D")
|
||||
collectable_data = ExtResource("3_uknsr")
|
||||
sfx = NodePath("../sfx")
|
||||
|
||||
[node name="FadeAwayComponent" type="Node" parent="." node_paths=PackedStringArray("sprite2d", "root", "area2d")]
|
||||
script = ExtResource("4_ccbcr")
|
||||
sprite2d = NodePath("../Sprite2D")
|
||||
fade_duration = 0.4
|
||||
root = NodePath("..")
|
||||
area2d = NodePath("..")
|
||||
|
||||
[node name="sfx" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("5_xt2rk")
|
||||
volume_db = -5.0
|
Reference in New Issue
Block a user