Add hit component and effects; update player and enemy scenes to integrate hit feedback

This commit is contained in:
2025-05-16 14:22:20 +02:00
parent 907bb5226f
commit 811372d5d3
36 changed files with 1362 additions and 613 deletions

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=31 format=3 uid="uid://bqi5s710xb1ju"]
[gd_scene load_steps=40 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="Shader" uid="uid://bs4xvm4qkurpr" path="res://shaders/hit_flash.tres" id="2_lgb3u"]
[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"]
@@ -27,6 +28,13 @@
[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="PackedScene" uid="uid://bg76mtpcmfm2j" path="res://objects/ui/charging_bar_layer.tscn" id="28_3f5nm"]
[ext_resource type="PackedScene" uid="uid://b12tppjkkqpt4" path="res://objects/fxs/hit_particles.tscn" id="28_jh5m0"]
[ext_resource type="Script" uid="uid://ceq8n7yw7qxpi" path="res://scripts/components/hit_component.gd" id="29_jh5m0"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xoue7"]
shader = ExtResource("2_lgb3u")
shader_parameter/enabled = false
shader_parameter/tint = Color(1, 1, 1, 1)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_hdsg1"]
size = Vector2(16, 31)
@@ -37,15 +45,47 @@ 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"]]
[sub_resource type="Gradient" id="Gradient_qb72p"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_f1fvy"]
gradient = SubResource("Gradient_qb72p")
[sub_resource type="Curve" id="Curve_82d6e"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_7b7mt"]
curve = SubResource("Curve_82d6e")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_lgb3u"]
resource_local_to_scene = true
lifetime_randomness = 1.0
particle_flag_disable_z = true
emission_shape = 1
emission_sphere_radius = 8.0
direction = Vector3(0.1, -0.5, 0)
initial_velocity_min = 200.0
initial_velocity_max = 400.0
gravity = Vector3(0, 80, 0)
damping_min = 400.0
damping_max = 800.0
scale_max = 3.0
scale_curve = SubResource("CurveTexture_7b7mt")
color = Color(0.764706, 0.443137, 0, 1)
color_ramp = SubResource("GradientTexture1D_f1fvy")
[node name="Brick Player" type="CharacterBody2D" node_paths=PackedStringArray("jump_sfx", "rotation_target") groups=["player"]]
collision_layer = 4
collision_mask = 43
script = ExtResource("1_8j4h4")
jump_sfx = NodePath("sfx_jump")
rotation_target = NodePath("Root/Base")
[node name="Root" type="Node2D" parent="."]
[node name="Base" type="Sprite2D" parent="Root"]
material = SubResource("ShaderMaterial_xoue7")
texture = ExtResource("2_bc55y")
[node name="Left Eye" type="Sprite2D" parent="Root"]
@@ -59,6 +99,7 @@ texture = ExtResource("4_ccn81")
hframes = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, 0.5)
shape = SubResource("RectangleShape2D_hdsg1")
@@ -73,6 +114,7 @@ collision_layer = 0
collision_mask = 8
[node name="CollisionShape2D" type="CollisionShape2D" parent="StompDamageArea"]
visible = false
position = Vector2(0, 1)
shape = SubResource("RectangleShape2D_vad0t")
@@ -136,11 +178,19 @@ available_skills = Array[ExtResource("21_d0oiv")]([ExtResource("22_vnsgd"), ExtR
script = ExtResource("23_qsv2c")
skill_manager = NodePath("../SkillManager")
[node name="HitComponent" type="Node" parent="." node_paths=PackedStringArray("sprite", "health_component", "hit_fx")]
script = ExtResource("29_jh5m0")
sprite = NodePath("../Root/Base")
health_component = NodePath("../HealthComponent")
hit_fx = NodePath("../HitParticles")
metadata/_custom_type_script = "uid://ceq8n7yw7qxpi"
[node name="MagneticArea" type="Area2D" parent="."]
collision_layer = 0
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="MagneticArea"]
visible = false
shape = SubResource("CircleShape2D_ps31c")
[node name="CanBeLaunchedComponent" type="Node" parent="."]
@@ -164,5 +214,8 @@ offset_top = -30.0
offset_right = 23.0
offset_bottom = -20.0
[node name="HitParticles" parent="." instance=ExtResource("28_jh5m0")]
process_material = SubResource("ParticleProcessMaterial_lgb3u")
[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"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=21 format=3 uid="uid://bwdlmualj6xbw"]
[gd_scene load_steps=26 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"]
@@ -7,7 +7,6 @@
[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="PackedScene" uid="uid://jiv4e82ycwmq" path="res://objects/entities/homing_bullet.tscn" id="7_lvsna"]
[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"]
@@ -17,6 +16,7 @@
[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"]
[ext_resource type="PackedScene" uid="uid://b12tppjkkqpt4" path="res://objects/fxs/hit_particles.tscn" id="18_pxaaa"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pwwji"]
size = Vector2(25, 31)
@@ -29,10 +29,41 @@ shader_parameter/tint = Color(1, 1, 1, 1)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ejbqt"]
size = Vector2(34, 31)
[sub_resource type="Gradient" id="Gradient_qb72p"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_f1fvy"]
gradient = SubResource("Gradient_qb72p")
[sub_resource type="Curve" id="Curve_82d6e"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_7b7mt"]
curve = SubResource("Curve_82d6e")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_pxaaa"]
resource_local_to_scene = true
lifetime_randomness = 1.0
particle_flag_disable_z = true
emission_shape = 1
emission_sphere_radius = 8.0
direction = Vector3(0.1, -0.5, 0)
initial_velocity_min = 200.0
initial_velocity_max = 400.0
gravity = Vector3(0, 80, 0)
damping_min = 400.0
damping_max = 800.0
scale_max = 3.0
scale_curve = SubResource("CurveTexture_7b7mt")
color = Color(0.635294, 1, 0.952941, 1)
color_ramp = SubResource("GradientTexture1D_f1fvy")
[node name="Enemy" type="CharacterBody2D"]
collision_layer = 8
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(-1.5, 0.5)
shape = SubResource("RectangleShape2D_pwwji")
@@ -67,7 +98,6 @@ 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")
bullet_scene = ExtResource("7_lvsna")
side_to_side_movement = NodePath("../SideToSideMovement")
root = NodePath("..")
bullet_spawn_right = NodePath("../Sprite2D/right bullet spawn")
@@ -85,6 +115,7 @@ collision_layer = 8
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
visible = false
position = Vector2(-2, 0.5)
shape = SubResource("RectangleShape2D_ejbqt")
debug_color = Color(0.913521, 0.265052, 0.323172, 0.42)
@@ -111,10 +142,11 @@ script = ExtResource("7_xsaiy")
sprite = NodePath("../Sprite2D")
health_component = NodePath("../HealthComponent")
[node name="HitComponent" type="Node" parent="." node_paths=PackedStringArray("sprite", "health_component")]
[node name="HitComponent" type="Node" parent="." node_paths=PackedStringArray("sprite", "health_component", "hit_fx")]
script = ExtResource("9_0qjr4")
sprite = NodePath("../Sprite2D")
health_component = NodePath("../HealthComponent")
hit_fx = NodePath("../HitParticles")
[node name="StatusEffectComponent" type="Node" parent="."]
script = ExtResource("10_5i27q")
@@ -145,3 +177,7 @@ amount = 2048
[node name="Ice FX" parent="." instance=ExtResource("16_68hnm")]
visible = false
[node name="HitParticles" parent="." instance=ExtResource("18_pxaaa")]
position = Vector2(0, 1)
process_material = SubResource("ParticleProcessMaterial_pxaaa")

View File

@@ -30,6 +30,7 @@ collision_mask = 21
shape = SubResource("CircleShape2D_txsw8")
[node name="Sprite2D" type="Sprite2D" parent="."]
self_modulate = Color(2, 1, 1, 1)
scale = Vector2(0.5, 0.5)
texture = ExtResource("1_bmfqy")
hframes = 12
@@ -78,6 +79,9 @@ root = NodePath("..")
max_speed = 122.0
acceleration = 4.0
detection_area = NodePath("../DetectionArea")
wobble_strength = 10.0
drag = 1.0
steering_lerp = 0.01
[node name="DetectionArea" type="Area2D" parent="."]
collision_layer = 0
@@ -88,9 +92,11 @@ shape = SubResource("CircleShape2D_bmfqy")
debug_color = Color(0.802086, 0.36581, 0.539812, 0.42)
[node name="Trail" type="Line2D" parent="."]
self_modulate = Color(2, 2, 2, 1)
top_level = true
z_index = 199
width = 4.0
width_curve = SubResource("Curve_id4r8")
default_color = Color(2, 1.2, 1.2, 1)
gradient = SubResource("Gradient_id4r8")
script = ExtResource("8_id4r8")

View File

@@ -0,0 +1,40 @@
[gd_scene load_steps=6 format=3 uid="uid://b12tppjkkqpt4"]
[sub_resource type="Gradient" id="Gradient_qb72p"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_f1fvy"]
gradient = SubResource("Gradient_qb72p")
[sub_resource type="Curve" id="Curve_82d6e"]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_7b7mt"]
curve = SubResource("Curve_82d6e")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_p34xd"]
resource_local_to_scene = true
lifetime_randomness = 1.0
particle_flag_disable_z = true
emission_shape = 1
emission_sphere_radius = 8.0
direction = Vector3(0.1, -0.5, 0)
initial_velocity_min = 200.0
initial_velocity_max = 400.0
gravity = Vector3(0, 80, 0)
damping_min = 400.0
damping_max = 800.0
scale_max = 3.0
scale_curve = SubResource("CurveTexture_7b7mt")
color_ramp = SubResource("GradientTexture1D_f1fvy")
[node name="HitParticles" type="GPUParticles2D"]
emitting = false
amount = 32
lifetime = 0.6
one_shot = true
explosiveness = 1.0
randomness = 1.0
fixed_fps = 24
process_material = SubResource("ParticleProcessMaterial_p34xd")

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://b4eifkc31jsun"]
[ext_resource type="Script" uid="uid://dd30bgqiagi25" path="res://scripts/game_manager.gd" id="1_58t7u"]
[ext_resource type="PackedScene" uid="uid://h60obxmju6mo" path="res://scenes/test.tscn" id="2_bentb"]
[ext_resource type="PackedScene" uid="uid://h60obxmju6mo" path="res://scenes/level_village_1.tscn" id="2_bentb"]
[node name="GameManager" type="Node"]
script = ExtResource("1_58t7u")

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,25 @@
[gd_scene load_steps=4 format=3 uid="uid://cb0mnye1ki5a6"]
[ext_resource type="Script" uid="uid://cie33tct7ehf0" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_5abjq"]
[ext_resource type="PackedScene" uid="uid://dtjrpkhssq32a" path="res://objects/bg.tscn" id="2_nd58g"]
[ext_resource type="PackedScene" uid="uid://bva54p1fxomu2" path="res://objects/parallax_background.tscn" id="3_cdmor"]
[node name="Camera2D" type="Camera2D"]
limit_left = 320
limit_top = -896
limit_right = 4160
limit_bottom = 800
metadata/_edit_lock_ = true
[node name="PhantomCameraHost" type="Node" parent="."]
process_priority = 300
process_physics_priority = 300
script = ExtResource("1_5abjq")
[node name="BG" parent="." instance=ExtResource("2_nd58g")]
visible = false
z_index = -3
scale = Vector2(1.5, 1.5)
metadata/_edit_lock_ = true
[node name="ParallaxBackground" parent="." instance=ExtResource("3_cdmor")]

View File

@@ -0,0 +1,5 @@
[gd_scene format=3 uid="uid://cywsu7yrtjdog"]
[node name="Global Light" type="DirectionalLight2D"]
color = Color(0.787759, 0.787759, 0.787759, 1)
blend_mode = 2

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,44 @@
[gd_scene load_steps=10 format=3 uid="uid://6foggu31cu14"]
[ext_resource type="PackedScene" uid="uid://byxf45ukq82pe" path="res://objects/ui/hud.tscn" id="1_tgtfe"]
[ext_resource type="PackedScene" uid="uid://dulkm3ah4tm0u" path="res://objects/ui/death_screen.tscn" id="2_ln68j"]
[ext_resource type="Script" uid="uid://cp68km8bykymb" path="res://scripts/resources/level_resource.gd" id="3_5kt5k"]
[ext_resource type="PackedScene" uid="uid://wmw6gaisyrvx" path="res://objects/ui/game_over_screen.tscn" id="4_11xmk"]
[ext_resource type="PackedScene" uid="uid://dlm2ri562fynd" path="res://objects/ui/marketplace.tscn" id="5_8e0cs"]
[ext_resource type="PackedScene" uid="uid://i6mnjbjcoqe5" path="res://objects/ui/pause_menu.tscn" id="6_1q4vn"]
[ext_resource type="PackedScene" uid="uid://y0ae6e7t70fj" path="res://objects/ui/settings_menu.tscn" id="7_hkjav"]
[ext_resource type="PackedScene" uid="uid://cvfsbiy5ggrpg" path="res://objects/ui/input_settings.tscn" id="8_6pnu3"]
[sub_resource type="Resource" id="Resource_75pfo"]
script = ExtResource("3_5kt5k")
level_name = "Village - 1"
metadata/_custom_type_script = "uid://cp68km8bykymb"
[node name="UI Layer" type="CanvasLayer"]
[node name="HUD" parent="." instance=ExtResource("1_tgtfe")]
[node name="DeathScreen" parent="." node_paths=PackedStringArray("nodes_to_disable") instance=ExtResource("2_ln68j")]
visible = false
offset_top = 32.0
current_level = SubResource("Resource_75pfo")
nodes_to_disable = [null]
[node name="GameOverScreen" parent="." instance=ExtResource("4_11xmk")]
visible = false
[node name="Marketplace" parent="." node_paths=PackedStringArray("components_to_disable") instance=ExtResource("5_8e0cs")]
visible = false
offset_top = 32.0
components_to_disable = [null]
[node name="Pause menu" parent="." node_paths=PackedStringArray("settings_menu") instance=ExtResource("6_1q4vn")]
visible = false
settings_menu = NodePath("../Settings menu")
[node name="Settings menu" parent="." node_paths=PackedStringArray("input_settings") instance=ExtResource("7_hkjav")]
visible = false
input_settings = NodePath("../Input Settings")
[node name="Input Settings" parent="." instance=ExtResource("8_6pnu3")]
visible = false

View File

@@ -1,118 +0,0 @@
[gd_scene load_steps=4 format=4 uid="uid://cd2bf7iwfn4cs"]
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_11j6n"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8ljy4"]
texture = ExtResource("1_11j6n")
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
4:0/0 = 0
5:0/0 = 0
6:0/0 = 0
7:0/0 = 0
8:0/0 = 0
9:0/0 = 0
10:0/0 = 0
11:0/0 = 0
0:1/0 = 0
1:1/0 = 0
2:1/0 = 0
3:1/0 = 0
4:1/0 = 0
5:1/0 = 0
6:1/0 = 0
7:1/0 = 0
8:1/0 = 0
9:1/0 = 0
10:1/0 = 0
11:1/0 = 0
0:2/0 = 0
1:2/0 = 0
2:2/0 = 0
3:2/0 = 0
4:2/0 = 0
5:2/0 = 0
6:2/0 = 0
7:2/0 = 0
8:2/0 = 0
9:2/0 = 0
10:2/0 = 0
11:2/0 = 0
0:3/0 = 0
1:3/0 = 0
2:3/0 = 0
3:3/0 = 0
4:3/0 = 0
5:3/0 = 0
6:3/0 = 0
7:3/0 = 0
8:3/0 = 0
9:3/0 = 0
10:3/0 = 0
11:3/0 = 0
0:4/0 = 0
1:4/0 = 0
2:4/0 = 0
3:4/0 = 0
4:4/0 = 0
5:4/0 = 0
6:4/0 = 0
7:4/0 = 0
8:4/0 = 0
9:4/0 = 0
10:4/0 = 0
11:4/0 = 0
0:5/0 = 0
1:5/0 = 0
2:5/0 = 0
3:5/0 = 0
4:5/0 = 0
5:5/0 = 0
6:5/0 = 0
7:5/0 = 0
8:5/0 = 0
9:5/0 = 0
10:5/0 = 0
11:5/0 = 0
0:6/0 = 0
1:6/0 = 0
2:6/0 = 0
3:6/0 = 0
4:6/0 = 0
5:6/0 = 0
6:6/0 = 0
7:6/0 = 0
8:6/0 = 0
9:6/0 = 0
10:6/0 = 0
11:6/0 = 0
0:7/0 = 0
1:7/0 = 0
2:7/0 = 0
3:7/0 = 0
5:7/0 = 0
7:7/0 = 0
8:7/0 = 0
9:7/0 = 0
10:7/0 = 0
11:7/0 = 0
1:8/0 = 0
2:8/0 = 0
3:8/0 = 0
4:8/0 = 0
5:8/0 = 0
6:8/0 = 0
7:8/0 = 0
8:8/0 = 0
9:8/0 = 0
10:8/0 = 0
1:9/0 = 0
[sub_resource type="TileSet" id="TileSet_r3m5w"]
sources/0 = SubResource("TileSetAtlasSource_8ljy4")
[node name="Foreground layer" type="TileMapLayer"]
tile_map_data = PackedByteArray("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")
tile_set = SubResource("TileSet_r3m5w")

View File

@@ -1,19 +0,0 @@
[gd_scene load_steps=4 format=4 uid="uid://brbhd2m4vj6gn"]
[ext_resource type="Texture2D" uid="uid://dxvevrm15uus1" path="res://sprites/flowers_tileset.png" id="1_nofui"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_eoyis"]
texture = ExtResource("1_nofui")
texture_region_size = Vector2i(8, 8)
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
[sub_resource type="TileSet" id="TileSet_fpn3g"]
tile_size = Vector2i(8, 8)
sources/1 = SubResource("TileSetAtlasSource_eoyis")
[node name="Small Foreground layer" type="TileMapLayer"]
tile_map_data = PackedByteArray("AAD7//3/AQABAAAAAAD8//3/AQAAAAAAAAD+//3/AQABAAAAAAD///3/AQAAAAAAAAABAP3/AQADAAAAAAAFAP3/AQAAAAAAAAAEAP3/AQAAAAAAAAACAP3/AQABAAAAAAAJAPX/AQACAAAAAAANAPf/AQAAAAAAAAARAPn/AQAAAAAAAAAaAAEAAQACAAAAAAAdAAEAAQADAAAAAAAeAAEAAQABAAAAAAAfAAEAAQADAAAAAAAgAAEAAQADAAAAAAAiAAEAAQADAAAAAAAjAAEAAQABAAAAAAAkAAEAAQADAAAAAAAcAPP/AQACAAAAAAAgAPP/AQACAAAAAAAhAPP/AQACAAAAAAAiAPP/AQABAAAAAAAkAPP/AQADAAAAAAAlAPP/AQAAAAAAAAAmAPP/AQACAAAAAAAoAPP/AQABAAAAAAApAPP/AQAAAAAAAAAtAPP/AQACAAAAAAAvAPP/AQADAAAAAAAwAPP/AQADAAAAAAAxAPP/AQAAAAAAAAAzAPP/AQACAAAAAAA0APP/AQACAAAAAAA1APP/AQADAAAAAAA3APP/AQADAAAAAAA4APP/AQADAAAAAAA5APP/AQACAAAAAAA6APP/AQACAAAAAAAmAAcAAQAAAAAAAAAnAAcAAQABAAAAAAAoAAcAAQADAAAAAAApAAcAAQABAAAAAAAqAAcAAQADAAAAAAArAAcAAQACAAAAAAAsAAcAAQABAAAAAAAtAAcAAQABAAAAAAAuAAcAAQABAAAAAAAvAAcAAQACAAAAAAAwAAcAAQACAAAAAAAyAAcAAQAAAAAAAAA1AAcAAQACAAAAAAA3AAcAAQAAAAAAAAAZAAMAAQACAAAAAAAXAAMAAQABAAAAAAAWAAMAAQABAAAAAAAUAAMAAQADAAAAAAA=")
tile_set = SubResource("TileSet_fpn3g")

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://cawlpch2lk3a2"]
[sub_resource type="Environment" id="Environment_gv2t6"]
background_mode = 3
tonemap_mode = 3
glow_enabled = true
glow_bloom = 0.05
[node name="WorldEnvironment" type="WorldEnvironment"]
environment = SubResource("Environment_gv2t6")

View File

@@ -16,7 +16,7 @@ config/name_localized={
"pl": "Przygody Pana Cegły"
}
config/version="in-dev"
run/main_scene="res://scenes/test.tscn"
run/main_scene="res://scenes/level_village_1.tscn"
config/features=PackedStringArray("4.4", "GL Compatibility")
run/max_fps=144
boot_splash/show_image=false
@@ -167,5 +167,6 @@ common/physics_interpolation=true
textures/canvas_textures/default_texture_filter=0
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
viewport/hdr_2d=true
2d/snap/snap_2d_transforms_to_pixel=true
2d/snap/snap_2d_vertices_to_pixel=true

View File

@@ -1,8 +1,9 @@
[gd_resource type="Resource" script_class="SkillData" load_steps=4 format=3 uid="uid://dw5ee2lpeypnb"]
[gd_resource type="Resource" script_class="SkillData" load_steps=5 format=3 uid="uid://dw5ee2lpeypnb"]
[ext_resource type="PackedScene" uid="uid://coayig4dxelo2" path="res://objects/player_skills/brick_throw_skill.tscn" id="1_5gnea"]
[ext_resource type="Script" uid="uid://bya240e627ti6" path="res://scripts/resources/skill_data.gd" id="1_etxe2"]
[ext_resource type="Resource" uid="uid://br84dsfa3ti04" path="res://resources/throw_behaviors/tap_throw_input.tres" id="1_xwijh"]
[ext_resource type="Texture2D" uid="uid://dxtdwgg3po0eg" path="res://sprites/brick_power_Skill_icon.png" id="2_yimbq"]
[resource]
script = ExtResource("1_etxe2")
@@ -15,3 +16,4 @@ config = {
"timer": NodePath("ThrowTimer")
}
cost = 50
icon = ExtResource("2_yimbq")

View File

@@ -1,9 +1,10 @@
[gd_resource type="Resource" script_class="SkillData" load_steps=5 format=3 uid="uid://cdp8sex36vdq2"]
[gd_resource type="Resource" script_class="SkillData" load_steps=6 format=3 uid="uid://cdp8sex36vdq2"]
[ext_resource type="PackedScene" uid="uid://5surx230gfw3" path="res://objects/entities/exploding_brick.tscn" id="1_6pfoa"]
[ext_resource type="Resource" uid="uid://diuv6pr6a0dup" path="res://resources/throw_behaviors/charge_throw_input.tres" id="2_87gkt"]
[ext_resource type="PackedScene" uid="uid://coayig4dxelo2" path="res://objects/player_skills/brick_throw_skill.tscn" id="2_e0o8w"]
[ext_resource type="Script" uid="uid://bya240e627ti6" path="res://scripts/resources/skill_data.gd" id="3_cgsq1"]
[ext_resource type="Texture2D" uid="uid://c0xtjfpmkfolk" path="res://sprites/explosive_brick_skill_icon.png" id="3_wkqmb"]
[resource]
script = ExtResource("3_cgsq1")
@@ -17,3 +18,4 @@ config = {
"timer": NodePath("ThrowTimer")
}
cost = 180
icon = ExtResource("3_wkqmb")

View File

@@ -1,9 +1,10 @@
[gd_scene load_steps=4 format=4 uid="uid://bcw0oy0r2x0eq"]
[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://dua4ns4tdknd1"]
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_6a3fc"]
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_hm4pu"]
[ext_resource type="Texture2D" uid="uid://cw42lvnqxubq2" path="res://sprites/PS_Tileset_10_nes.png" id="2_dfydr"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_cagp7"]
texture = ExtResource("1_6a3fc")
texture = ExtResource("1_hm4pu")
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
@@ -110,9 +111,28 @@ texture = ExtResource("1_6a3fc")
10:8/0 = 0
1:9/0 = 0
[sub_resource type="TileSet" id="TileSet_7ri0q"]
sources/0 = SubResource("TileSetAtlasSource_cagp7")
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_75pfo"]
texture = ExtResource("2_dfydr")
0:11/0 = 0
0:11/0/probability = 0.515
1:11/0 = 0
1:11/0/probability = 0.035
2:11/0 = 0
2:11/0/probability = 0.245
3:11/0 = 0
3:11/0/probability = 0.11
5:11/0 = 0
6:11/0 = 0
7:11/0 = 0
8:11/0 = 0
9:11/0 = 0
10:11/0 = 0
11:11/0 = 0
12:11/0 = 0
13:11/0 = 0
2:2/0 = 0
2:2/0/probability = 0.0
[node name="Background Layer" type="TileMapLayer"]
tile_map_data = PackedByteArray("AAAKAP7/AAAAAAYAAAAKAP//AAAAAAcAAAALAP7/AAABAAYAAAALAP//AAABAAcAAAALAAAAAAABAAgAAAALAAEAAAABAAkAAAAMAP7/AAACAAYAAAAMAP//AAACAAcAAAAMAAAAAAACAAgAAAATAAAAAAAAAAYAAAATAAEAAAAAAAcAAAAUAAAAAAABAAYAAAAUAAEAAAABAAcAAAAUAAIAAAABAAgAAAAUAAMAAAABAAkAAAAVAAAAAAACAAYAAAAVAAEAAAACAAcAAAAVAAIAAAACAAgAAAAbAPb/AAAAAAYAAAAbAPf/AAAAAAcAAAAcAPb/AAABAAYAAAAcAPf/AAABAAcAAAAcAPj/AAABAAgAAAAcAPn/AAABAAkAAAAdAPb/AAACAAYAAAAdAPf/AAACAAcAAAAdAPj/AAACAAgAAAAPAPb/AAAAAAYAAAAPAPf/AAAAAAcAAAAQAPb/AAABAAYAAAAQAPf/AAABAAcAAAAQAPj/AAABAAgAAAAQAPn/AAABAAkAAAARAPb/AAACAAYAAAARAPf/AAACAAcAAAARAPj/AAACAAgAAAA=")
tile_set = SubResource("TileSet_7ri0q")
[resource]
sources/0 = SubResource("TileSetAtlasSource_cagp7")
sources/1 = SubResource("TileSetAtlasSource_75pfo")

View File

@@ -1,11 +1,18 @@
[gd_scene load_steps=7 format=4 uid="uid://dnufqkeiyi5ya"]
[gd_resource type="TileSet" load_steps=13 format=3 uid="uid://bc5a20s6kuy8e"]
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_51i2x"]
[ext_resource type="PackedScene" uid="uid://54w4wisfj8v8" path="res://objects/entities/coin.tscn" id="2_2l4v1"]
[ext_resource type="PackedScene" uid="uid://ct8fim6mduyl3" path="res://objects/entities/collapsing_bridge.tscn" id="3_ukc1k"]
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_ej5iv"]
[ext_resource type="PackedScene" uid="uid://54w4wisfj8v8" path="res://objects/entities/coin.tscn" id="2_31a0q"]
[ext_resource type="PackedScene" uid="uid://ct8fim6mduyl3" path="res://objects/entities/collapsing_bridge.tscn" id="3_x63lh"]
[ext_resource type="PackedScene" uid="uid://bargnp4twtmxg" path="res://objects/entities/big_coin.tscn" id="4_ov0dn"]
[ext_resource type="PackedScene" uid="uid://d08dfqmirnd66" path="res://objects/entities/big_treasure.tscn" id="5_xxibl"]
[ext_resource type="PackedScene" uid="uid://073ts5cxtwbl" path="res://objects/entities/treasure.tscn" id="6_fmgww"]
[ext_resource type="PackedScene" uid="uid://cm3rixnnev1pg" path="res://objects/entities/jump_pad.tscn" id="7_0kjxj"]
[ext_resource type="PackedScene" uid="uid://to2xnqev0pu1" path="res://objects/entities/cage.tscn" id="8_83o0w"]
[ext_resource type="PackedScene" uid="uid://bd51frym6mm7v" path="res://objects/entities/lever.tscn" id="9_at40q"]
[ext_resource type="PackedScene" uid="uid://12jnkdygpxwc" path="res://objects/entities/exit_level.tscn" id="10_ivcjr"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8idcv"]
texture = ExtResource("1_51i2x")
texture = ExtResource("1_ej5iv")
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
@@ -129,15 +136,18 @@ texture = ExtResource("1_51i2x")
1:9/0 = 0
[sub_resource type="TileSetScenesCollectionSource" id="TileSetScenesCollectionSource_v3eon"]
scenes/1/scene = ExtResource("2_2l4v1")
scenes/2/scene = ExtResource("3_ukc1k")
scenes/1/scene = ExtResource("2_31a0q")
scenes/2/scene = ExtResource("3_x63lh")
scenes/3/scene = ExtResource("4_ov0dn")
scenes/4/scene = ExtResource("5_xxibl")
scenes/5/scene = ExtResource("6_fmgww")
scenes/6/scene = ExtResource("7_0kjxj")
scenes/7/scene = ExtResource("8_83o0w")
scenes/8/scene = ExtResource("9_at40q")
scenes/9/scene = ExtResource("10_ivcjr")
[sub_resource type="TileSet" id="TileSet_yf4x4"]
[resource]
physics_layer_0/collision_layer = 1
physics_layer_0/collision_mask = 5
sources/0 = SubResource("TileSetAtlasSource_8idcv")
sources/1 = SubResource("TileSetScenesCollectionSource_v3eon")
[node name="Entities layer" type="TileMapLayer"]
tile_map_data = PackedByteArray("AAAJAPz/AAAHAAMAAAAJAP3/AAAHAAQAAAAKAPz/AAAIAAMAAAALAPz/AAAIAAMAAAAMAPz/AAAJAAMAAAANAPz/AAAKAAMAAAANAP3/AAAKAAQAAAAUAPz/AAAGAAMAADAVAPz/AAAGAAMAADAWAPz/AAAGAAMAADAcAAMAAAAGAAMAAGAPAPn/AAADAAYAAAAWAP3/AAALAAQAAAAWAP7/AAALAAQAAAAWAP//AAALAAQAAAAWAAAAAAALAAQAAAAWAAEAAAALAAQAAAAWAAIAAAALAAQAAAAWAAMAAAALAAQAAAAaAAMAAAAGAAQAAAAWAPn/AQAAAAAAAQAXAPn/AQAAAAAAAQAYAPn/AQAAAAAAAQAZAPn/AQAAAAAAAQAaAPn/AQAAAAAAAQAZAPj/AQAAAAAAAQAYAPj/AQAAAAAAAQAXAPj/AQAAAAAAAQAYAPf/AQAAAAAAAQAKAP3/AQAAAAAAAgALAP3/AQAAAAAAAgAMAP3/AQAAAAAAAgA=")
tile_set = SubResource("TileSet_yf4x4")

View File

@@ -0,0 +1,182 @@
[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://bbppo0irxdmqy"]
[ext_resource type="Texture2D" uid="uid://djifxc5x0dyrw" path="res://sprites/ppc_tileset.png" id="1_6ec4i"]
[ext_resource type="Texture2D" uid="uid://cw42lvnqxubq2" path="res://sprites/PS_Tileset_10_nes.png" id="2_0dgh6"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8ljy4"]
texture = ExtResource("1_6ec4i")
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
4:0/0 = 0
5:0/0 = 0
6:0/0 = 0
7:0/0 = 0
8:0/0 = 0
9:0/0 = 0
10:0/0 = 0
11:0/0 = 0
0:1/0 = 0
1:1/0 = 0
2:1/0 = 0
3:1/0 = 0
4:1/0 = 0
5:1/0 = 0
6:1/0 = 0
7:1/0 = 0
8:1/0 = 0
9:1/0 = 0
10:1/0 = 0
11:1/0 = 0
0:2/0 = 0
1:2/0 = 0
2:2/0 = 0
3:2/0 = 0
4:2/0 = 0
5:2/0 = 0
6:2/0 = 0
7:2/0 = 0
8:2/0 = 0
9:2/0 = 0
10:2/0 = 0
11:2/0 = 0
0:3/0 = 0
1:3/0 = 0
2:3/0 = 0
3:3/0 = 0
4:3/0 = 0
5:3/0 = 0
6:3/0 = 0
7:3/0 = 0
8:3/0 = 0
9:3/0 = 0
10:3/0 = 0
11:3/0 = 0
0:4/0 = 0
1:4/0 = 0
2:4/0 = 0
3:4/0 = 0
4:4/0 = 0
5:4/0 = 0
6:4/0 = 0
7:4/0 = 0
8:4/0 = 0
9:4/0 = 0
10:4/0 = 0
11:4/0 = 0
0:5/0 = 0
1:5/0 = 0
2:5/0 = 0
3:5/0 = 0
4:5/0 = 0
5:5/0 = 0
6:5/0 = 0
7:5/0 = 0
8:5/0 = 0
9:5/0 = 0
10:5/0 = 0
11:5/0 = 0
0:6/0 = 0
1:6/0 = 0
2:6/0 = 0
3:6/0 = 0
4:6/0 = 0
5:6/0 = 0
6:6/0 = 0
7:6/0 = 0
8:6/0 = 0
9:6/0 = 0
10:6/0 = 0
11:6/0 = 0
0:7/0 = 0
1:7/0 = 0
2:7/0 = 0
3:7/0 = 0
5:7/0 = 0
7:7/0 = 0
8:7/0 = 0
9:7/0 = 0
10:7/0 = 0
11:7/0 = 0
1:8/0 = 0
2:8/0 = 0
3:8/0 = 0
4:8/0 = 0
5:8/0 = 0
6:8/0 = 0
7:8/0 = 0
8:8/0 = 0
9:8/0 = 0
10:8/0 = 0
1:9/0 = 0
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_jjobv"]
texture = ExtResource("2_0dgh6")
10:4/0 = 0
11:4/0 = 0
12:4/0 = 0
13:4/0 = 0
14:4/0 = 0
15:4/0 = 0
7:5/0 = 0
8:5/0 = 0
9:5/0 = 0
10:5/0 = 0
11:5/0 = 0
12:5/0 = 0
6:9/0 = 0
7:9/0 = 0
8:9/0 = 0
9:9/0 = 0
10:9/0 = 0
11:9/0 = 0
5:10/0 = 0
6:10/0 = 0
7:10/0 = 0
8:10/0 = 0
9:10/0 = 0
10:10/0 = 0
11:10/0 = 0
12:10/0 = 0
8:6/size_in_atlas = Vector2i(2, 3)
8:6/0 = 0
8:6/0/texture_origin = Vector2i(0, 16)
10:7/size_in_atlas = Vector2i(2, 2)
10:7/0 = 0
10:7/0/texture_origin = Vector2i(0, 8)
12:6/size_in_atlas = Vector2i(1, 3)
12:6/0 = 0
12:6/0/texture_origin = Vector2i(0, 16)
5:6/size_in_atlas = Vector2i(3, 3)
5:6/0 = 0
5:6/0/texture_origin = Vector2i(0, 16)
6:5/0 = 0
13:5/size_in_atlas = Vector2i(1, 2)
13:5/0 = 0
13:5/0/texture_origin = Vector2i(0, 8)
14:5/size_in_atlas = Vector2i(1, 2)
14:5/0 = 0
14:5/0/texture_origin = Vector2i(0, 8)
15:5/size_in_atlas = Vector2i(1, 2)
15:5/0 = 0
15:5/0/texture_origin = Vector2i(0, 8)
13:7/size_in_atlas = Vector2i(1, 2)
13:7/0 = 0
13:7/0/texture_origin = Vector2i(0, 8)
14:7/size_in_atlas = Vector2i(1, 2)
14:7/0 = 0
14:7/0/texture_origin = Vector2i(0, 8)
15:7/size_in_atlas = Vector2i(1, 2)
15:7/0 = 0
15:7/0/texture_origin = Vector2i(0, 8)
14:9/size_in_atlas = Vector2i(1, 2)
14:9/0 = 0
14:9/0/texture_origin = Vector2i(0, 8)
15:9/size_in_atlas = Vector2i(1, 2)
15:9/0 = 0
15:9/0/texture_origin = Vector2i(0, 8)
[resource]
sources/0 = SubResource("TileSetAtlasSource_8ljy4")
sources/1 = SubResource("TileSetAtlasSource_jjobv")

View File

@@ -0,0 +1,15 @@
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://ccffmjebvuoaj"]
[ext_resource type="Texture2D" uid="uid://dxvevrm15uus1" path="res://sprites/flowers_tileset.png" id="1_6pkiv"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_jepq7"]
texture = ExtResource("1_6pkiv")
texture_region_size = Vector2i(8, 8)
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
[resource]
tile_size = Vector2i(8, 8)
sources/0 = SubResource("TileSetAtlasSource_jepq7")

View File

@@ -0,0 +1,500 @@
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://cu2sx7qigrqnv"]
[ext_resource type="Texture2D" uid="uid://cw42lvnqxubq2" path="res://sprites/PS_Tileset_10_nes.png" id="2_43n76"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4xq2o"]
texture = ExtResource("2_43n76")
1:0/0 = 0
1:0/0/terrain_set = 0
1:0/0/terrain = 0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:0/0/terrains_peering_bit/right_side = 0
1:0/0/terrains_peering_bit/bottom_right_corner = 0
1:0/0/terrains_peering_bit/bottom_side = 0
2:0/0 = 0
2:0/0/terrain_set = 0
2:0/0/terrain = 0
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
2:0/0/terrains_peering_bit/right_side = 0
2:0/0/terrains_peering_bit/bottom_right_corner = 0
2:0/0/terrains_peering_bit/bottom_side = 0
2:0/0/terrains_peering_bit/bottom_left_corner = 0
2:0/0/terrains_peering_bit/left_side = 0
3:0/0 = 0
3:0/0/terrain_set = 0
3:0/0/terrain = 0
3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:0/0/terrains_peering_bit/bottom_side = 0
3:0/0/terrains_peering_bit/bottom_left_corner = 0
3:0/0/terrains_peering_bit/left_side = 0
6:0/0 = 0
6:0/0/terrain_set = 0
6:0/0/terrain = 0
6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:0/0 = 0
8:0/0/terrain_set = 0
8:0/0/terrain = 0
8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:0/0/terrains_peering_bit/right_side = 0
9:0/0 = 0
9:0/0/terrain_set = 0
9:0/0/terrain = 0
9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
9:0/0/terrains_peering_bit/right_side = 0
9:0/0/terrains_peering_bit/left_side = 0
10:0/0 = 0
10:0/0/terrain_set = 0
10:0/0/terrain = 0
10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
10:0/0/terrains_peering_bit/left_side = 0
12:0/0 = 0
13:0/0 = 0
14:0/0 = 0
15:0/0 = 0
0:1/0 = 0
0:1/0/terrain_set = 0
0:1/0/terrain = 0
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:1/0/terrains_peering_bit/right_side = 0
0:1/0/terrains_peering_bit/bottom_right_corner = 0
0:1/0/terrains_peering_bit/bottom_side = 0
1:1/0 = 0
1:1/0/terrain_set = 0
1:1/0/terrain = 0
1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:1/0/terrains_peering_bit/right_side = 0
1:1/0/terrains_peering_bit/bottom_right_corner = 0
1:1/0/terrains_peering_bit/bottom_side = 0
1:1/0/terrains_peering_bit/bottom_left_corner = 0
1:1/0/terrains_peering_bit/left_side = 0
1:1/0/terrains_peering_bit/top_side = 0
1:1/0/terrains_peering_bit/top_right_corner = 0
2:1/0 = 0
2:1/0/terrain_set = 0
2:1/0/terrain = 0
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
2:1/0/terrains_peering_bit/right_side = 0
2:1/0/terrains_peering_bit/bottom_right_corner = 0
2:1/0/terrains_peering_bit/bottom_side = 0
2:1/0/terrains_peering_bit/bottom_left_corner = 0
2:1/0/terrains_peering_bit/left_side = 0
2:1/0/terrains_peering_bit/top_left_corner = 0
2:1/0/terrains_peering_bit/top_side = 0
2:1/0/terrains_peering_bit/top_right_corner = 0
3:1/0 = 0
3:1/0/terrain_set = 0
3:1/0/terrain = 0
3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:1/0/terrains_peering_bit/right_side = 0
3:1/0/terrains_peering_bit/bottom_right_corner = 0
3:1/0/terrains_peering_bit/bottom_side = 0
3:1/0/terrains_peering_bit/bottom_left_corner = 0
3:1/0/terrains_peering_bit/left_side = 0
3:1/0/terrains_peering_bit/top_left_corner = 0
3:1/0/terrains_peering_bit/top_side = 0
4:1/0 = 0
4:1/0/terrain_set = 0
4:1/0/terrain = 0
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:1/0/terrains_peering_bit/bottom_side = 0
4:1/0/terrains_peering_bit/bottom_left_corner = 0
4:1/0/terrains_peering_bit/left_side = 0
6:1/0 = 0
6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
6:1/0/physics_layer_0/polygon_0/one_way = true
7:1/0 = 0
7:1/0/terrain_set = 0
7:1/0/terrain = 1
7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
7:1/0/physics_layer_0/polygon_0/one_way = true
7:1/0/terrains_peering_bit/right_side = 1
8:1/0 = 0
8:1/0/terrain_set = 0
8:1/0/terrain = 1
8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
8:1/0/physics_layer_0/polygon_0/one_way = true
8:1/0/terrains_peering_bit/right_side = 1
8:1/0/terrains_peering_bit/left_side = 1
9:1/0 = 0
9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
9:1/0/physics_layer_0/polygon_0/one_way = true
10:1/0 = 0
11:1/0 = 0
12:1/0 = 0
13:1/0 = 0
14:1/0 = 0
15:1/0 = 0
0:2/0 = 0
0:2/0/terrain_set = 0
0:2/0/terrain = 0
0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:2/0/terrains_peering_bit/right_side = 0
0:2/0/terrains_peering_bit/bottom_right_corner = 0
0:2/0/terrains_peering_bit/bottom_side = 0
0:2/0/terrains_peering_bit/top_side = 0
0:2/0/terrains_peering_bit/top_right_corner = 0
1:2/0 = 0
1:2/0/terrain_set = 0
1:2/0/terrain = 0
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:2/0/terrains_peering_bit/right_side = 0
1:2/0/terrains_peering_bit/bottom_right_corner = 0
1:2/0/terrains_peering_bit/bottom_side = 0
1:2/0/terrains_peering_bit/bottom_left_corner = 0
1:2/0/terrains_peering_bit/left_side = 0
1:2/0/terrains_peering_bit/top_left_corner = 0
1:2/0/terrains_peering_bit/top_side = 0
1:2/0/terrains_peering_bit/top_right_corner = 0
2:2/0 = 0
2:2/0/terrain_set = 0
2:2/0/terrain = 0
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
2:2/0/terrains_peering_bit/right_side = 0
2:2/0/terrains_peering_bit/bottom_right_corner = 0
2:2/0/terrains_peering_bit/bottom_side = 0
2:2/0/terrains_peering_bit/bottom_left_corner = 0
2:2/0/terrains_peering_bit/left_side = 0
2:2/0/terrains_peering_bit/top_left_corner = 0
2:2/0/terrains_peering_bit/top_side = 0
2:2/0/terrains_peering_bit/top_right_corner = 0
3:2/0 = 0
3:2/0/terrain_set = 0
3:2/0/terrain = 0
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:2/0/terrains_peering_bit/right_side = 0
3:2/0/terrains_peering_bit/bottom_right_corner = 0
3:2/0/terrains_peering_bit/bottom_side = 0
3:2/0/terrains_peering_bit/bottom_left_corner = 0
3:2/0/terrains_peering_bit/left_side = 0
3:2/0/terrains_peering_bit/top_left_corner = 0
3:2/0/terrains_peering_bit/top_side = 0
3:2/0/terrains_peering_bit/top_right_corner = 0
4:2/0 = 0
4:2/0/terrain_set = 0
4:2/0/terrain = 0
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:2/0/terrains_peering_bit/bottom_side = 0
4:2/0/terrains_peering_bit/bottom_left_corner = 0
4:2/0/terrains_peering_bit/left_side = 0
4:2/0/terrains_peering_bit/top_left_corner = 0
4:2/0/terrains_peering_bit/top_side = 0
6:2/0 = 0
6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
6:2/0/physics_layer_0/polygon_0/one_way = true
7:2/0 = 0
7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
7:2/0/physics_layer_0/polygon_0/one_way = true
8:2/0 = 0
8:2/0/terrain_set = 0
8:2/0/terrain = 1
8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
8:2/0/physics_layer_0/polygon_0/one_way = true
8:2/0/terrains_peering_bit/left_side = 1
9:2/0 = 0
9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
9:2/0/physics_layer_0/polygon_0/one_way = true
10:2/0 = 0
11:2/0 = 0
12:2/0 = 0
13:2/0 = 0
14:2/0 = 0
15:2/0 = 0
0:3/0 = 0
0:3/0/terrain_set = 0
0:3/0/terrain = 0
0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:3/0/terrains_peering_bit/right_side = 0
0:3/0/terrains_peering_bit/top_side = 0
0:3/0/terrains_peering_bit/top_right_corner = 0
1:3/0 = 0
1:3/0/terrain_set = 0
1:3/0/terrain = 0
1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:3/0/terrains_peering_bit/right_side = 0
1:3/0/terrains_peering_bit/bottom_right_corner = 0
1:3/0/terrains_peering_bit/bottom_side = 0
1:3/0/terrains_peering_bit/left_side = 0
1:3/0/terrains_peering_bit/top_left_corner = 0
1:3/0/terrains_peering_bit/top_side = 0
1:3/0/terrains_peering_bit/top_right_corner = 0
2:3/0 = 0
2:3/0/terrain_set = 0
2:3/0/terrain = 0
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
2:3/0/terrains_peering_bit/right_side = 0
2:3/0/terrains_peering_bit/bottom_right_corner = 0
2:3/0/terrains_peering_bit/bottom_side = 0
2:3/0/terrains_peering_bit/bottom_left_corner = 0
2:3/0/terrains_peering_bit/left_side = 0
2:3/0/terrains_peering_bit/top_left_corner = 0
2:3/0/terrains_peering_bit/top_side = 0
2:3/0/terrains_peering_bit/top_right_corner = 0
3:3/0 = 0
3:3/0/terrain_set = 0
3:3/0/terrain = 0
3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:3/0/terrains_peering_bit/right_side = 0
3:3/0/terrains_peering_bit/bottom_side = 0
3:3/0/terrains_peering_bit/bottom_left_corner = 0
3:3/0/terrains_peering_bit/left_side = 0
3:3/0/terrains_peering_bit/top_left_corner = 0
3:3/0/terrains_peering_bit/top_side = 0
3:3/0/terrains_peering_bit/top_right_corner = 0
4:3/0 = 0
4:3/0/terrain_set = 0
4:3/0/terrain = 0
4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:3/0/terrains_peering_bit/left_side = 0
4:3/0/terrains_peering_bit/top_left_corner = 0
4:3/0/terrains_peering_bit/top_side = 0
6:3/0 = 0
6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
6:3/0/physics_layer_0/polygon_0/one_way = true
7:3/0 = 0
7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
7:3/0/physics_layer_0/polygon_0/one_way = true
8:3/0 = 0
8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
8:3/0/physics_layer_0/polygon_0/one_way = true
9:3/0 = 0
9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
9:3/0/physics_layer_0/polygon_0/one_way = true
10:3/0 = 0
11:3/0 = 0
12:3/0 = 0
13:3/0 = 0
14:3/0 = 0
15:3/0 = 0
1:4/0 = 0
1:4/0/terrain_set = 0
1:4/0/terrain = 0
1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:4/0/terrains_peering_bit/right_side = 0
1:4/0/terrains_peering_bit/top_side = 0
1:4/0/terrains_peering_bit/top_right_corner = 0
2:4/0 = 0
2:4/0/terrain_set = 0
2:4/0/terrain = 0
2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
2:4/0/terrains_peering_bit/right_side = 0
2:4/0/terrains_peering_bit/left_side = 0
2:4/0/terrains_peering_bit/top_left_corner = 0
2:4/0/terrains_peering_bit/top_side = 0
2:4/0/terrains_peering_bit/top_right_corner = 0
3:4/0 = 0
3:4/0/terrain_set = 0
3:4/0/terrain = 0
3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:4/0/terrains_peering_bit/left_side = 0
3:4/0/terrains_peering_bit/top_left_corner = 0
3:4/0/terrains_peering_bit/top_side = 0
6:4/0 = 0
6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
6:4/0/physics_layer_0/polygon_0/one_way = true
7:4/0 = 0
7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
7:4/0/physics_layer_0/polygon_0/one_way = true
8:4/0 = 0
8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
8:4/0/physics_layer_0/polygon_0/one_way = true
9:4/0 = 0
9:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -4, -8, -4)
9:4/0/physics_layer_0/polygon_0/one_way = true
10:4/0 = 0
11:4/0 = 0
12:4/0 = 0
13:4/0 = 0
14:4/0 = 0
15:4/0 = 0
6:5/0 = 0
7:5/0 = 0
8:5/0 = 0
9:5/0 = 0
10:5/0 = 0
11:5/0 = 0
12:5/0 = 0
13:5/0 = 0
14:5/0 = 0
15:5/0 = 0
0:6/0 = 0
0:6/0/terrain_set = 0
0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:6/0 = 0
1:6/0/terrain_set = 0
1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
2:6/0 = 0
2:6/0/terrain_set = 0
2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:6/0 = 0
3:6/0/terrain_set = 0
3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:6/0 = 0
4:6/0/terrain_set = 0
4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:6/0 = 0
6:6/0 = 0
7:6/0 = 0
8:6/0 = 0
9:6/0 = 0
12:6/0 = 0
13:6/0 = 0
14:6/0 = 0
15:6/0 = 0
0:7/0 = 0
0:7/0/terrain_set = 0
0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:7/0 = 0
1:7/0/terrain_set = 0
1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, -8, -8, -8, 8)
3:7/0 = 0
3:7/0/terrain_set = 0
3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8)
4:7/0 = 0
4:7/0/terrain_set = 0
4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:7/0 = 0
6:7/0 = 0
7:7/0 = 0
8:7/0 = 0
9:7/0 = 0
10:7/0 = 0
11:7/0 = 0
12:7/0 = 0
13:7/0 = 0
14:7/0 = 0
15:7/0 = 0
2:8/0 = 0
6:8/0 = 0
8:8/0 = 0
9:8/0 = 0
10:8/0 = 0
11:8/0 = 0
12:8/0 = 0
13:8/0 = 0
14:8/0 = 0
15:8/0 = 0
0:9/0 = 0
0:9/0/terrain_set = 0
0:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:9/0 = 0
1:9/0/terrain_set = 0
1:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 8, -8, 8, -8, -8)
3:9/0 = 0
3:9/0/terrain_set = 0
3:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, 8, 8, 8, -8)
4:9/0 = 0
4:9/0/terrain_set = 0
4:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:9/0 = 0
7:9/0 = 0
8:9/0 = 0
9:9/0 = 0
10:9/0 = 0
11:9/0 = 0
14:9/0 = 0
15:9/0 = 0
0:10/0 = 0
0:10/0/terrain_set = 0
0:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:10/0 = 0
1:10/0/terrain_set = 0
1:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
2:10/0 = 0
2:10/0/terrain_set = 0
2:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:10/0 = 0
3:10/0/terrain_set = 0
3:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:10/0 = 0
4:10/0/terrain_set = 0
4:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:10/0 = 0
6:10/0 = 0
7:10/0 = 0
8:10/0 = 0
9:10/0 = 0
10:10/0 = 0
11:10/0 = 0
12:10/0 = 0
14:10/0 = 0
15:10/0 = 0
0:11/0 = 0
0:11/0/terrain_set = 0
0:11/0/terrain = 0
0:11/0/probability = 0.2
0:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:11/0/terrains_peering_bit/right_side = 0
0:11/0/terrains_peering_bit/bottom_right_corner = 0
0:11/0/terrains_peering_bit/bottom_side = 0
0:11/0/terrains_peering_bit/bottom_left_corner = 0
0:11/0/terrains_peering_bit/left_side = 0
0:11/0/terrains_peering_bit/top_left_corner = 0
0:11/0/terrains_peering_bit/top_side = 0
0:11/0/terrains_peering_bit/top_right_corner = 0
1:11/0 = 0
1:11/0/terrain_set = 0
1:11/0/terrain = 0
1:11/0/probability = 0.2
1:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:11/0/terrains_peering_bit/right_side = 0
1:11/0/terrains_peering_bit/bottom_right_corner = 0
1:11/0/terrains_peering_bit/bottom_side = 0
1:11/0/terrains_peering_bit/bottom_left_corner = 0
1:11/0/terrains_peering_bit/left_side = 0
1:11/0/terrains_peering_bit/top_left_corner = 0
1:11/0/terrains_peering_bit/top_side = 0
1:11/0/terrains_peering_bit/top_right_corner = 0
2:11/0 = 0
2:11/0/terrain_set = 0
2:11/0/terrain = 0
2:11/0/probability = 0.2
2:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
2:11/0/terrains_peering_bit/right_side = 0
2:11/0/terrains_peering_bit/bottom_right_corner = 0
2:11/0/terrains_peering_bit/bottom_side = 0
2:11/0/terrains_peering_bit/bottom_left_corner = 0
2:11/0/terrains_peering_bit/left_side = 0
2:11/0/terrains_peering_bit/top_left_corner = 0
2:11/0/terrains_peering_bit/top_side = 0
2:11/0/terrains_peering_bit/top_right_corner = 0
3:11/0 = 0
3:11/0/terrain_set = 0
3:11/0/terrain = 0
3:11/0/probability = 0.2
3:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:11/0/terrains_peering_bit/right_side = 0
3:11/0/terrains_peering_bit/bottom_right_corner = 0
3:11/0/terrains_peering_bit/bottom_side = 0
3:11/0/terrains_peering_bit/bottom_left_corner = 0
3:11/0/terrains_peering_bit/left_side = 0
3:11/0/terrains_peering_bit/top_left_corner = 0
3:11/0/terrains_peering_bit/top_side = 0
3:11/0/terrains_peering_bit/top_right_corner = 0
5:11/0 = 0
5:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:11/0 = 0
6:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:11/0 = 0
7:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:11/0 = 0
8:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
9:11/0 = 0
9:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
10:11/0 = 0
10:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
11:11/0 = 0
11:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
12:11/0 = 0
12:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
13:11/0 = 0
13:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
[resource]
physics_layer_0/collision_layer = 1
physics_layer_0/collision_mask = 29
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Village"
terrain_set_0/terrain_0/color = Color(1, 1, 1, 1)
terrain_set_0/terrain_1/name = "Platforms"
terrain_set_0/terrain_1/color = Color(0.46875, 0.5, 0.25, 1)
sources/1 = SubResource("TileSetAtlasSource_4xq2o")

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -4,6 +4,8 @@ extends Node
@export var sprite: Sprite2D
@export var health_component: HealthComponent
@export var hit_duration: float = 0.1
@export var hit_fx: GPUParticles2D
@export var flash_mode: bool = true
func _ready() -> void:
@@ -15,26 +17,41 @@ func _ready() -> void:
printerr("No sprite assigned!")
return
if sprite.material:
if sprite.material and flash_mode:
sprite.material = sprite.material.duplicate()
func activate() -> void:
if not flash_mode:
return
sprite.material.set_shader_parameter("enabled", true)
func deactivate() -> void:
if not flash_mode:
return
sprite.material.set_shader_parameter("enabled", false)
func on_health_change(delta: float, _total_health: float) -> void:
func on_health_change(delta: float, total_health: float) -> void:
if delta < 0:
activate()
await get_tree().create_timer(hit_duration).timeout
deactivate()
if total_health > 0:
handle_hit_fx()
func on_death() -> void:
activate()
await get_tree().create_timer(hit_duration).timeout
deactivate()
func handle_hit_fx() -> void:
if not hit_fx:
return
hit_fx.restart()
hit_fx.emitting = true

View File

@@ -7,7 +7,11 @@ extends Node
@export var acceleration: float = 8.0
@export var detection_area: Area2D
@export var max_turn_rate: float = 180.0
@export var wobble_strength := 5.0 # degrees
@export var drag := 0.98
@export var steering_lerp := 0.05 # low = sluggish
var steering_direction: Vector2 = velocity.normalized()
var target: Node2D = null
var velocity: Vector2 = Vector2.ZERO
@@ -34,10 +38,18 @@ func _physics_process(delta: float) -> void:
return
var to_target := (target.global_position - root.global_position).normalized()
var angle_to_target := velocity.angle_to(to_target)
steering_direction = steering_direction.lerp(to_target, steering_lerp)
var angle_to_target := velocity.angle_to(steering_direction)
var max_angle := deg_to_rad(max_turn_rate) * delta
var clamped_angle = clamp(angle_to_target, - max_angle, max_angle)
velocity = velocity.rotated(clamped_angle).normalized() * velocity.length()
var wobble := deg_to_rad(randf_range(-wobble_strength, wobble_strength))
clamped_angle += wobble
velocity = velocity.rotated(clamped_angle)
velocity *= drag
var desired_speed = min(max_speed, velocity.length() + acceleration * delta)
velocity = velocity.normalized() * desired_speed

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dxtdwgg3po0eg"
path="res://.godot/imported/brick_power_Skill_icon.png-c6bf80c9e9a6170b5189381a4420609a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/brick_power_Skill_icon.png"
dest_files=["res://.godot/imported/brick_power_Skill_icon.png-c6bf80c9e9a6170b5189381a4420609a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c0xtjfpmkfolk"
path="res://.godot/imported/explosive_brick_skill_icon.png-a7b3c60cf9bc0f848bebd2af33066183.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/explosive_brick_skill_icon.png"
dest_files=["res://.godot/imported/explosive_brick_skill_icon.png-a7b3c60cf9bc0f848bebd2af33066183.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cocbnr38qsikt"
path="res://.godot/imported/fire_brick_skill_icon.png-ad2b550278ee029438c4ef8d35f30c08.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/fire_brick_skill_icon.png"
dest_files=["res://.godot/imported/fire_brick_skill_icon.png-ad2b550278ee029438c4ef8d35f30c08.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c1qaxspv8aemf"
path="res://.godot/imported/ice_brick_skill_icon.png-ec7e0694a6aa81d123c6d428506429d3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/ice_brick_skill_icon.png"
dest_files=["res://.godot/imported/ice_brick_skill_icon.png-ec7e0694a6aa81d123c6d428506429d3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

@@ -863,5 +863,5 @@ terrain_set_0/terrain_1/name = "Village 1"
terrain_set_0/terrain_1/color = Color(1, 1, 1, 1)
terrain_set_0/terrain_2/name = "Platforms"
terrain_set_0/terrain_2/color = Color(0.46875, 0.5, 0.25, 1)
sources/0 = SubResource("TileSetAtlasSource_oe4cj")
sources/1 = SubResource("TileSetAtlasSource_4xq2o")
sources/0 = SubResource("TileSetAtlasSource_oe4cj")