Compare commits

..

19 commits

Author SHA1 Message Date
9e3f0fc34a Made Enemy AI Follow
- added a Threshold of a Distance it Should keep
2023-02-03 15:17:51 +01:00
7826221624 Merge branch 'dev-base' 2023-02-03 13:54:47 +01:00
b90a210913 Add Code Linting Rules 2023-02-03 13:54:04 +01:00
6983001d45 Cleanup Code 2023-02-03 13:31:23 +01:00
5c52c04acb Cleanup Code 2023-02-02 23:09:00 +01:00
502d0c440d Reworked Enemy from scratch. Only Looking is done yet 2023-02-02 22:53:12 +01:00
093f6eb94e = fixed map colors on borders, added a prototype enemy wich currently has unexpected behavior, on collision he pulles the player with him. 2023-02-01 23:30:19 +01:00
2b8f5309f1 Merge pull request 'Merge pull request 'Merge pull request 'Improved Camera' (#22) from dev-player into dev-base' (#23) from dev-base into dev-player' (#25) from dev-player into dev-base
Reviewed-on: http://git.euph.dev/GameDev/2DHackAndSlay/pulls/25
2023-02-01 14:20:09 +00:00
4efe49303d Merge branch 'dev-base' into dev-player 2023-02-01 14:20:00 +00:00
da9e5a88fc Merge pull request 'Improved Tileset Colliders' (#24) from dev-resouces into dev-base
Reviewed-on: http://git.euph.dev/GameDev/2DHackAndSlay/pulls/24
2023-02-01 14:19:29 +00:00
11a3d5d4f4 Improved Tileset Colliders 2023-02-01 15:19:04 +01:00
2cc7faea0e Merge pull request 'Merge pull request 'Improved Camera' (#22) from dev-player into dev-base' (#23) from dev-base into dev-player
Reviewed-on: http://git.euph.dev/GameDev/2DHackAndSlay/pulls/23
2023-02-01 14:07:26 +00:00
c5196c7699 Merge pull request 'Improved Camera' (#22) from dev-player into dev-base
Reviewed-on: http://git.euph.dev/GameDev/2DHackAndSlay/pulls/22
2023-02-01 14:05:41 +00:00
f7c87d9fe4 Merge branch 'dev-player' of http://git.euph.dev/GameDev/2DHackAndSlay.git 2023-02-01 15:05:23 +01:00
ee1e76dd0e Improving Camera 2023-02-01 15:05:18 +01:00
159c8c91cd Merge pull request 'Upgraded Tileset' (#21) from dev-resouces into dev-base
Reviewed-on: http://git.euph.dev/GameDev/2DHackAndSlay/pulls/21
2023-02-01 14:03:11 +00:00
f7fb279872 Implemented Upgraded Tileset 2023-02-01 15:02:16 +01:00
655fc6102e Improve Tileset 2023-02-01 14:42:29 +01:00
df5de9476a Improving Camera 2023-02-01 13:28:53 +01:00
10 changed files with 975 additions and 84 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dx5k5qa1pwbfl"
path="res://.godot/imported/basic_enemy.png-86528a00f666ed79fdb26797653efdd4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Textures/basic_enemy.png"
dest_files=["res://.godot/imported/basic_enemy.png-86528a00f666ed79fdb26797653efdd4.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

@ -28,7 +28,7 @@ texture = ExtResource("1")
0:1/0/terrains_peering_bit/top_right_corner = 0
0:2/size_in_atlas = Vector2i(1, 2)
0:2/0 = 0
0:2/0/texture_offset = Vector2i(0, -8)
0:2/0/texture_origin = Vector2i(0, -8)
0:2/0/terrain_set = 0
0:2/0/terrain = 0
0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -40,7 +40,7 @@ texture = ExtResource("1")
0:2/0/terrains_peering_bit/top_right_corner = 0
1:2/size_in_atlas = Vector2i(1, 2)
1:2/0 = 0
1:2/0/texture_offset = Vector2i(0, -8)
1:2/0/texture_origin = Vector2i(0, -8)
1:2/0/terrain_set = 0
1:2/0/terrain = 0
1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -99,7 +99,7 @@ texture = ExtResource("1")
2:1/0/terrains_peering_bit/top_side = 0
2:2/size_in_atlas = Vector2i(1, 2)
2:2/0 = 0
2:2/0/texture_offset = Vector2i(0, -8)
2:2/0/texture_origin = Vector2i(0, -8)
2:2/0/terrain_set = 0
2:2/0/terrain = 0
2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -198,7 +198,7 @@ texture = ExtResource("1")
5:1/0/terrains_peering_bit/top_side = 0
5:2/size_in_atlas = Vector2i(1, 2)
5:2/0 = 0
5:2/0/texture_offset = Vector2i(0, -8)
5:2/0/texture_origin = Vector2i(0, -8)
5:2/0/terrain_set = 0
5:2/0/terrain = 0
5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -259,7 +259,7 @@ texture = ExtResource("1")
7:1/0/terrains_peering_bit/left_side = 0
7:2/size_in_atlas = Vector2i(1, 2)
7:2/0 = 0
7:2/0/texture_offset = Vector2i(0, -8)
7:2/0/texture_origin = Vector2i(0, -8)
7:2/0/terrain_set = 0
7:2/0/terrain = 0
7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -271,7 +271,7 @@ texture = ExtResource("1")
7:2/0/terrains_peering_bit/top_side = 0
6:2/size_in_atlas = Vector2i(1, 2)
6:2/0 = 0
6:2/0/texture_offset = Vector2i(0, -8)
6:2/0/texture_origin = Vector2i(0, -8)
6:2/0/terrain_set = 0
6:2/0/terrain = 0
6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -283,7 +283,7 @@ texture = ExtResource("1")
6:2/0/terrains_peering_bit/top_side = 0
19:2/size_in_atlas = Vector2i(1, 2)
19:2/0 = 0
19:2/0/texture_offset = Vector2i(0, -8)
19:2/0/texture_origin = Vector2i(0, -8)
19:2/0/terrain_set = 0
19:2/0/terrain = 1
19:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -295,7 +295,7 @@ texture = ExtResource("1")
19:2/0/terrains_peering_bit/top_side = 1
18:2/size_in_atlas = Vector2i(1, 2)
18:2/0 = 0
18:2/0/texture_offset = Vector2i(0, -8)
18:2/0/texture_origin = Vector2i(0, -8)
18:2/0/terrain_set = 0
18:2/0/terrain = 1
18:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -307,7 +307,7 @@ texture = ExtResource("1")
18:2/0/terrains_peering_bit/top_side = 1
17:2/size_in_atlas = Vector2i(1, 2)
17:2/0 = 0
17:2/0/texture_offset = Vector2i(0, -8)
17:2/0/texture_origin = Vector2i(0, -8)
17:2/0/terrain_set = 0
17:2/0/terrain = 1
17:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -344,7 +344,7 @@ texture = ExtResource("1")
15:2/0/terrains_peering_bit/top_right_corner = 1
14:2/size_in_atlas = Vector2i(1, 2)
14:2/0 = 0
14:2/0/texture_offset = Vector2i(0, -8)
14:2/0/texture_origin = Vector2i(0, -8)
14:2/0/terrain_set = 0
14:2/0/terrain = 1
14:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -382,7 +382,7 @@ texture = ExtResource("1")
15:3/0/terrains_peering_bit/top_right_corner = 1
13:2/size_in_atlas = Vector2i(1, 2)
13:2/0 = 0
13:2/0/texture_offset = Vector2i(0, -8)
13:2/0/texture_origin = Vector2i(0, -8)
13:2/0/terrain_set = 0
13:2/0/terrain = 1
13:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -395,7 +395,7 @@ texture = ExtResource("1")
13:2/0/terrains_peering_bit/top_right_corner = 1
12:2/size_in_atlas = Vector2i(1, 2)
12:2/0 = 0
12:2/0/texture_offset = Vector2i(0, -8)
12:2/0/texture_origin = Vector2i(0, -8)
12:2/0/terrain_set = 0
12:2/0/terrain = 1
12:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -559,7 +559,7 @@ texture = ExtResource("1")
12:1/0/terrains_peering_bit/top_right_corner = 1
8:2/size_in_atlas = Vector2i(1, 2)
8:2/0 = 0
8:2/0/texture_offset = Vector2i(0, -8)
8:2/0/texture_origin = Vector2i(0, -8)
8:2/0/terrain_set = 0
8:2/0/terrain = 0
8:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -765,7 +765,7 @@ texture = ExtResource("1")
20:1/0/terrains_peering_bit/top_side = 1
20:2/size_in_atlas = Vector2i(1, 2)
20:2/0 = 0
20:2/0/texture_offset = Vector2i(0, -8)
20:2/0/texture_origin = Vector2i(0, -8)
20:2/0/terrain_set = 0
20:2/0/terrain = 1
20:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -874,7 +874,7 @@ texture = ExtResource("1")
0:4/0/terrains_peering_bit/bottom_side = 0
1:4/size_in_atlas = Vector2i(1, 2)
1:4/0 = 0
1:4/0/texture_offset = Vector2i(0, -8)
1:4/0/texture_origin = Vector2i(0, -8)
1:4/0/terrain_set = 0
1:4/0/terrain = 0
1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -883,7 +883,7 @@ texture = ExtResource("1")
1:4/0/terrains_peering_bit/top_side = 0
2:4/size_in_atlas = Vector2i(1, 2)
2:4/0 = 0
2:4/0/texture_offset = Vector2i(0, -8)
2:4/0/texture_origin = Vector2i(0, -8)
2:4/0/terrain_set = 0
2:4/0/terrain = 0
2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -892,7 +892,7 @@ texture = ExtResource("1")
2:4/0/terrains_peering_bit/right_side = 0
3:4/size_in_atlas = Vector2i(1, 2)
3:4/0 = 0
3:4/0/texture_offset = Vector2i(0, -8)
3:4/0/texture_origin = Vector2i(0, -8)
3:4/0/terrain_set = 0
3:4/0/terrain = 0
3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -912,7 +912,7 @@ texture = ExtResource("1")
4:4/0/terrains_peering_bit/left_side = 0
5:4/size_in_atlas = Vector2i(1, 2)
5:4/0 = 0
5:4/0/texture_offset = Vector2i(0, -8)
5:4/0/texture_origin = Vector2i(0, -8)
5:4/0/terrain_set = 0
5:4/0/terrain = 0
5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -954,7 +954,7 @@ texture = ExtResource("1")
12:4/0/terrains_peering_bit/bottom_side = 1
13:4/size_in_atlas = Vector2i(1, 2)
13:4/0 = 0
13:4/0/texture_offset = Vector2i(0, -8)
13:4/0/texture_origin = Vector2i(0, -8)
13:4/0/terrain_set = 0
13:4/0/terrain = 1
13:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -963,7 +963,7 @@ texture = ExtResource("1")
13:4/0/terrains_peering_bit/top_side = 1
14:4/size_in_atlas = Vector2i(1, 2)
14:4/0 = 0
14:4/0/texture_offset = Vector2i(0, -8)
14:4/0/texture_origin = Vector2i(0, -8)
14:4/0/terrain_set = 0
14:4/0/terrain = 1
14:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -972,7 +972,7 @@ texture = ExtResource("1")
14:4/0/terrains_peering_bit/right_side = 1
15:4/size_in_atlas = Vector2i(1, 2)
15:4/0 = 0
15:4/0/texture_offset = Vector2i(0, -8)
15:4/0/texture_origin = Vector2i(0, -8)
15:4/0/terrain_set = 0
15:4/0/terrain = 1
15:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -992,7 +992,7 @@ texture = ExtResource("1")
16:4/0/terrains_peering_bit/left_side = 1
17:4/size_in_atlas = Vector2i(1, 2)
17:4/0 = 0
17:4/0/texture_offset = Vector2i(0, -8)
17:4/0/texture_origin = Vector2i(0, -8)
17:4/0/terrain_set = 0
17:4/0/terrain = 1
17:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
@ -1027,11 +1027,11 @@ texture = ExtResource("1")
19:4/0/terrains_peering_bit/top_side = 1
24:1/0 = 0
24:1/0/terrain_set = 0
24:1/0/terrain = 1
24:1/0/terrain = 2
24:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
24:1/0/physics_layer_0/angular_velocity = 0.0
24:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -4, 8, -8, 5, -8)
24:1/0/physics_layer_0/polygon_1/points = PackedVector2Array(-5, -8, -8, -8, -8, -4)
24:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -6, -8, -6, -6, -8, -4)
24:1/0/physics_layer_0/polygon_1/points = PackedVector2Array(6, -8, 6, -6, 8, -4, 8, -8)
24:1/0/terrains_peering_bit/right_side = 1
24:1/0/terrains_peering_bit/bottom_right_corner = 1
24:1/0/terrains_peering_bit/bottom_side = 1
@ -1040,11 +1040,11 @@ texture = ExtResource("1")
24:1/0/terrains_peering_bit/top_side = 2
24:0/0 = 0
24:0/0/terrain_set = 0
24:0/0/terrain = 0
24:0/0/terrain = 2
24:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
24:0/0/physics_layer_0/angular_velocity = 0.0
24:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 4, -8, 8, -5, 8)
24:0/0/physics_layer_0/polygon_1/points = PackedVector2Array(5, 8, 8, 8, 8, 4)
24:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 8, 6, 8, 6, 6, 8, 4)
24:0/0/physics_layer_0/polygon_1/points = PackedVector2Array(-6, 8, -6, 6, -8, 4, -8, 8)
24:0/0/terrains_peering_bit/right_side = 0
24:0/0/terrains_peering_bit/bottom_side = 2
24:0/0/terrains_peering_bit/left_side = 0
@ -1053,11 +1053,11 @@ texture = ExtResource("1")
24:0/0/terrains_peering_bit/top_right_corner = 0
25:0/0 = 0
25:0/0/terrain_set = 0
25:0/0/terrain = 1
25:0/0/terrain = 2
25:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
25:0/0/physics_layer_0/angular_velocity = 0.0
25:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 4, -8, 8, -5, 8)
25:0/0/physics_layer_0/polygon_1/points = PackedVector2Array(5, 8, 8, 8, 8, 4)
25:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 8, 6, 8, 6, 6, 8, 4)
25:0/0/physics_layer_0/polygon_1/points = PackedVector2Array(-6, 8, -6, 6, -8, 4, -8, 8)
25:0/0/terrains_peering_bit/right_side = 1
25:0/0/terrains_peering_bit/bottom_side = 2
25:0/0/terrains_peering_bit/left_side = 1
@ -1066,11 +1066,11 @@ texture = ExtResource("1")
25:0/0/terrains_peering_bit/top_right_corner = 1
25:1/0 = 0
25:1/0/terrain_set = 0
25:1/0/terrain = 0
25:1/0/terrain = 2
25:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
25:1/0/physics_layer_0/angular_velocity = 0.0
25:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -4, 8, -8, 5, -8)
25:1/0/physics_layer_0/polygon_1/points = PackedVector2Array(-5, -8, -8, -8, -8, -4)
25:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -6, -8, -6, -6, -8, -4)
25:1/0/physics_layer_0/polygon_1/points = PackedVector2Array(6, -8, 6, -6, 8, -4, 8, -8)
25:1/0/terrains_peering_bit/right_side = 0
25:1/0/terrains_peering_bit/bottom_right_corner = 0
25:1/0/terrains_peering_bit/bottom_side = 0
@ -1079,11 +1079,11 @@ texture = ExtResource("1")
25:1/0/terrains_peering_bit/top_side = 2
26:1/0 = 0
26:1/0/terrain_set = 0
26:1/0/terrain = 1
26:1/0/terrain = 2
26:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
26:1/0/physics_layer_0/angular_velocity = 0.0
26:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(4, 8, 8, 8, 8, 5)
26:1/0/physics_layer_0/polygon_1/points = PackedVector2Array(8, -5, 8, -8, 4, -8)
26:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, -6, 6, -6, 4, -8)
26:1/0/physics_layer_0/polygon_1/points = PackedVector2Array(8, 6, 6, 6, 4, 8, 8, 8)
26:1/0/terrains_peering_bit/right_side = 2
26:1/0/terrains_peering_bit/bottom_side = 1
26:1/0/terrains_peering_bit/bottom_left_corner = 1
@ -1092,11 +1092,11 @@ texture = ExtResource("1")
26:1/0/terrains_peering_bit/top_side = 1
26:0/0 = 0
26:0/0/terrain_set = 0
26:0/0/terrain = 0
26:0/0/terrain = 2
26:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
26:0/0/physics_layer_0/angular_velocity = 0.0
26:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(4, 8, 8, 8, 8, 5)
26:0/0/physics_layer_0/polygon_1/points = PackedVector2Array(8, -5, 8, -8, 4, -8)
26:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, -6, 6, -6, 4, -8)
26:0/0/physics_layer_0/polygon_1/points = PackedVector2Array(8, 6, 6, 6, 4, 8, 8, 8)
26:0/0/terrains_peering_bit/right_side = 2
26:0/0/terrains_peering_bit/bottom_side = 0
26:0/0/terrains_peering_bit/bottom_left_corner = 0
@ -1105,11 +1105,11 @@ texture = ExtResource("1")
26:0/0/terrains_peering_bit/top_side = 0
27:0/0 = 0
27:0/0/terrain_set = 0
27:0/0/terrain = 1
27:0/0/terrain = 2
27:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
27:0/0/physics_layer_0/angular_velocity = 0.0
27:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-4, -8, -8, -8, -8, -5)
27:0/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 5, -8, 8, -4, 8)
27:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, 6, -6, 6, -4, 8)
27:0/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, -6, -6, -6, -4, -8, -8, -8)
27:0/0/terrains_peering_bit/right_side = 1
27:0/0/terrains_peering_bit/bottom_right_corner = 1
27:0/0/terrains_peering_bit/bottom_side = 1
@ -1118,25 +1118,700 @@ texture = ExtResource("1")
27:0/0/terrains_peering_bit/top_right_corner = 1
27:1/0 = 0
27:1/0/terrain_set = 0
27:1/0/terrain = 0
27:1/0/terrain = 2
27:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
27:1/0/physics_layer_0/angular_velocity = 0.0
27:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-4, -8, -8, -8, -8, -5)
27:1/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 5, -8, 8, -4, 8)
27:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, 6, -6, 6, -4, 8)
27:1/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, -6, -6, -6, -4, -8, -8, -8)
27:1/0/terrains_peering_bit/right_side = 0
27:1/0/terrains_peering_bit/bottom_right_corner = 0
27:1/0/terrains_peering_bit/bottom_side = 0
27:1/0/terrains_peering_bit/left_side = 2
27:1/0/terrains_peering_bit/top_side = 0
27:1/0/terrains_peering_bit/top_right_corner = 0
0:6/0 = 0
0:6/0/terrain_set = 0
0:6/0/terrain = 0
0:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
0:6/0/physics_layer_0/angular_velocity = 0.0
0:6/0/terrains_peering_bit/right_side = 0
0:6/0/terrains_peering_bit/bottom_side = 0
0:6/0/terrains_peering_bit/bottom_left_corner = 0
0:6/0/terrains_peering_bit/left_side = 0
1:6/size_in_atlas = Vector2i(1, 2)
1:6/0 = 0
1:6/0/texture_origin = Vector2i(0, -8)
1:6/0/terrain_set = 0
1:6/0/terrain = 0
1:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
1:6/0/physics_layer_0/angular_velocity = 0.0
1:6/0/terrains_peering_bit/right_side = 0
1:6/0/terrains_peering_bit/left_side = 0
1:6/0/terrains_peering_bit/top_side = 0
1:6/0/terrains_peering_bit/top_right_corner = 0
2:6/0 = 0
2:6/0/terrain_set = 0
2:6/0/terrain = 0
2:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
2:6/0/physics_layer_0/angular_velocity = 0.0
2:6/0/terrains_peering_bit/right_side = 0
2:6/0/terrains_peering_bit/bottom_right_corner = 0
2:6/0/terrains_peering_bit/bottom_side = 0
2:6/0/terrains_peering_bit/top_side = 0
3:6/0 = 0
3:6/0/terrain_set = 0
3:6/0/terrain = 0
3:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
3:6/0/physics_layer_0/angular_velocity = 0.0
3:6/0/terrains_peering_bit/bottom_side = 0
3:6/0/terrains_peering_bit/left_side = 0
3:6/0/terrains_peering_bit/top_left_corner = 0
3:6/0/terrains_peering_bit/top_side = 0
4:6/0 = 0
4:6/0/terrain_set = 0
4:6/0/terrain = 0
4:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
4:6/0/physics_layer_0/angular_velocity = 0.0
4:6/0/terrains_peering_bit/right_side = 0
4:6/0/terrains_peering_bit/bottom_right_corner = 0
4:6/0/terrains_peering_bit/bottom_side = 0
4:6/0/terrains_peering_bit/left_side = 0
5:6/size_in_atlas = Vector2i(1, 2)
5:6/0 = 0
5:6/0/texture_origin = Vector2i(0, -8)
5:6/0/terrain_set = 0
5:6/0/terrain = 0
5:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
5:6/0/physics_layer_0/angular_velocity = 0.0
5:6/0/terrains_peering_bit/right_side = 0
5:6/0/terrains_peering_bit/left_side = 0
5:6/0/terrains_peering_bit/top_left_corner = 0
5:6/0/terrains_peering_bit/top_side = 0
6:6/0 = 0
6:6/0/terrain_set = 0
6:6/0/terrain = 0
6:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
6:6/0/physics_layer_0/angular_velocity = 0.0
6:6/0/terrains_peering_bit/right_side = 0
6:6/0/terrains_peering_bit/bottom_side = 0
6:6/0/terrains_peering_bit/top_side = 0
6:6/0/terrains_peering_bit/top_right_corner = 0
7:6/0 = 0
7:6/0/terrain_set = 0
7:6/0/terrain = 0
7:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
7:6/0/physics_layer_0/angular_velocity = 0.0
7:6/0/terrains_peering_bit/bottom_side = 0
7:6/0/terrains_peering_bit/bottom_left_corner = 0
7:6/0/terrains_peering_bit/left_side = 0
7:6/0/terrains_peering_bit/top_side = 0
12:6/0 = 0
12:6/0/terrain_set = 0
12:6/0/terrain = 1
12:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
12:6/0/physics_layer_0/angular_velocity = 0.0
12:6/0/terrains_peering_bit/right_side = 1
12:6/0/terrains_peering_bit/bottom_side = 1
12:6/0/terrains_peering_bit/bottom_left_corner = 1
12:6/0/terrains_peering_bit/left_side = 1
13:6/size_in_atlas = Vector2i(1, 2)
13:6/0 = 0
13:6/0/texture_origin = Vector2i(0, -8)
13:6/0/terrain_set = 0
13:6/0/terrain = 1
13:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
13:6/0/physics_layer_0/angular_velocity = 0.0
13:6/0/terrains_peering_bit/right_side = 1
13:6/0/terrains_peering_bit/left_side = 1
13:6/0/terrains_peering_bit/top_side = 1
13:6/0/terrains_peering_bit/top_right_corner = 1
14:6/0 = 0
14:6/0/terrain_set = 0
14:6/0/terrain = 1
14:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
14:6/0/physics_layer_0/angular_velocity = 0.0
14:6/0/terrains_peering_bit/right_side = 1
14:6/0/terrains_peering_bit/bottom_right_corner = 1
14:6/0/terrains_peering_bit/bottom_side = 1
14:6/0/terrains_peering_bit/top_side = 1
15:6/0 = 0
15:6/0/terrain_set = 0
15:6/0/terrain = 1
15:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
15:6/0/physics_layer_0/angular_velocity = 0.0
15:6/0/terrains_peering_bit/bottom_side = 1
15:6/0/terrains_peering_bit/left_side = 1
15:6/0/terrains_peering_bit/top_left_corner = 1
15:6/0/terrains_peering_bit/top_side = 1
16:6/0 = 0
16:6/0/terrain_set = 0
16:6/0/terrain = 1
16:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
16:6/0/physics_layer_0/angular_velocity = 0.0
16:6/0/terrains_peering_bit/right_side = 1
16:6/0/terrains_peering_bit/bottom_right_corner = 1
16:6/0/terrains_peering_bit/bottom_side = 1
16:6/0/terrains_peering_bit/left_side = 1
17:6/size_in_atlas = Vector2i(1, 2)
17:6/0 = 0
17:6/0/texture_origin = Vector2i(0, -8)
17:6/0/terrain_set = 0
17:6/0/terrain = 1
17:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
17:6/0/physics_layer_0/angular_velocity = 0.0
17:6/0/terrains_peering_bit/right_side = 1
17:6/0/terrains_peering_bit/left_side = 1
17:6/0/terrains_peering_bit/top_left_corner = 1
17:6/0/terrains_peering_bit/top_side = 1
18:6/0 = 0
18:6/0/terrain_set = 0
18:6/0/terrain = 1
18:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
18:6/0/physics_layer_0/angular_velocity = 0.0
18:6/0/terrains_peering_bit/right_side = 1
18:6/0/terrains_peering_bit/bottom_side = 1
18:6/0/terrains_peering_bit/top_side = 1
18:6/0/terrains_peering_bit/top_right_corner = 1
19:6/0 = 0
19:6/0/terrain_set = 0
19:6/0/terrain = 1
19:6/0/physics_layer_0/linear_velocity = Vector2(0, 0)
19:6/0/physics_layer_0/angular_velocity = 0.0
19:6/0/terrains_peering_bit/bottom_side = 1
19:6/0/terrains_peering_bit/bottom_left_corner = 1
19:6/0/terrains_peering_bit/left_side = 1
19:6/0/terrains_peering_bit/top_side = 1
29:0/0 = 0
29:0/0/terrain_set = 0
29:0/0/terrain = 2
29:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
29:0/0/physics_layer_0/angular_velocity = 0.0
29:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-6, 8, -6, 6, -8, 4, -8, 8)
29:0/0/terrains_peering_bit/right_side = 2
29:0/0/terrains_peering_bit/bottom_right_corner = 2
29:0/0/terrains_peering_bit/bottom_side = 2
29:0/0/terrains_peering_bit/left_side = 0
29:0/0/terrains_peering_bit/top_left_corner = 0
29:0/0/terrains_peering_bit/top_side = 0
29:0/0/terrains_peering_bit/top_right_corner = 0
29:1/0 = 0
29:1/0/terrain_set = 0
29:1/0/terrain = 2
29:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
29:1/0/physics_layer_0/angular_velocity = 0.0
29:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-6, -8, -6, -6, -8, -4, -8, -8)
29:1/0/terrains_peering_bit/right_side = 2
29:1/0/terrains_peering_bit/bottom_right_corner = 1
29:1/0/terrains_peering_bit/bottom_side = 1
29:1/0/terrains_peering_bit/bottom_left_corner = 1
29:1/0/terrains_peering_bit/left_side = 1
29:1/0/terrains_peering_bit/top_side = 2
29:1/0/terrains_peering_bit/top_right_corner = 2
30:0/0 = 0
30:0/0/terrain_set = 0
30:0/0/terrain = 2
30:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
30:0/0/physics_layer_0/angular_velocity = 0.0
30:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(6, 8, 6, 6, 8, 4, 8, 8)
30:0/0/terrains_peering_bit/right_side = 0
30:0/0/terrains_peering_bit/bottom_side = 2
30:0/0/terrains_peering_bit/bottom_left_corner = 2
30:0/0/terrains_peering_bit/left_side = 2
30:0/0/terrains_peering_bit/top_left_corner = 0
30:0/0/terrains_peering_bit/top_side = 0
30:0/0/terrains_peering_bit/top_right_corner = 0
30:1/0 = 0
30:1/0/terrain_set = 0
30:1/0/terrain = 2
30:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
30:1/0/physics_layer_0/angular_velocity = 0.0
30:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(6, -8, 6, -6, 8, -4, 8, -8)
30:1/0/terrains_peering_bit/right_side = 1
30:1/0/terrains_peering_bit/bottom_right_corner = 1
30:1/0/terrains_peering_bit/bottom_side = 1
30:1/0/terrains_peering_bit/bottom_left_corner = 1
30:1/0/terrains_peering_bit/left_side = 2
30:1/0/terrains_peering_bit/top_left_corner = 2
30:1/0/terrains_peering_bit/top_side = 2
32:2/0 = 0
32:2/0/terrain_set = 0
32:2/0/terrain = 2
32:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
32:2/0/physics_layer_0/angular_velocity = 0.0
32:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -6, -6, -6, -4, -8, -8, -8)
32:2/0/terrains_peering_bit/right_side = 0
32:2/0/terrains_peering_bit/bottom_right_corner = 0
32:2/0/terrains_peering_bit/bottom_side = 2
32:2/0/terrains_peering_bit/bottom_left_corner = 2
32:2/0/terrains_peering_bit/left_side = 2
32:2/0/terrains_peering_bit/top_side = 0
32:2/0/terrains_peering_bit/top_right_corner = 0
31:2/0 = 0
31:2/0/terrain_set = 0
31:2/0/terrain = 2
31:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
31:2/0/physics_layer_0/angular_velocity = 0.0
31:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -6, 6, -6, 4, -8, 8, -8)
31:2/0/terrains_peering_bit/right_side = 2
31:2/0/terrains_peering_bit/bottom_right_corner = 2
31:2/0/terrains_peering_bit/bottom_side = 2
31:2/0/terrains_peering_bit/bottom_left_corner = 1
31:2/0/terrains_peering_bit/left_side = 1
31:2/0/terrains_peering_bit/top_left_corner = 1
31:2/0/terrains_peering_bit/top_side = 1
31:3/0 = 0
31:3/0/terrain_set = 0
31:3/0/terrain = 2
31:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
31:3/0/physics_layer_0/angular_velocity = 0.0
31:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 6, 6, 6, 4, 8, 8, 8)
31:3/0/terrains_peering_bit/right_side = 2
31:3/0/terrains_peering_bit/bottom_side = 1
31:3/0/terrains_peering_bit/bottom_left_corner = 1
31:3/0/terrains_peering_bit/left_side = 1
31:3/0/terrains_peering_bit/top_left_corner = 1
31:3/0/terrains_peering_bit/top_side = 2
31:3/0/terrains_peering_bit/top_right_corner = 2
32:3/0 = 0
32:3/0/terrain_set = 0
32:3/0/terrain = 2
32:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
32:3/0/physics_layer_0/angular_velocity = 0.0
32:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 6, -6, 6, -4, 8, -8, 8)
32:3/0/terrains_peering_bit/right_side = 0
32:3/0/terrains_peering_bit/bottom_right_corner = 0
32:3/0/terrains_peering_bit/bottom_side = 0
32:3/0/terrains_peering_bit/left_side = 2
32:3/0/terrains_peering_bit/top_left_corner = 2
32:3/0/terrains_peering_bit/top_side = 2
32:3/0/terrains_peering_bit/top_right_corner = 0
31:0/0 = 0
31:0/0/terrain_set = 0
31:0/0/terrain = 2
31:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
31:0/0/physics_layer_0/angular_velocity = 0.0
31:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-6, 8, -6, 6, -8, 4, -8, 8)
31:0/0/terrains_peering_bit/right_side = 2
31:0/0/terrains_peering_bit/bottom_right_corner = 2
31:0/0/terrains_peering_bit/bottom_side = 2
31:0/0/terrains_peering_bit/left_side = 1
31:0/0/terrains_peering_bit/top_left_corner = 1
31:0/0/terrains_peering_bit/top_side = 1
31:0/0/terrains_peering_bit/top_right_corner = 1
32:0/0 = 0
32:0/0/terrain_set = 0
32:0/0/terrain = 2
32:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
32:0/0/physics_layer_0/angular_velocity = 0.0
32:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(6, 8, 6, 6, 8, 4, 8, 8)
32:0/0/terrains_peering_bit/right_side = 1
32:0/0/terrains_peering_bit/bottom_side = 2
32:0/0/terrains_peering_bit/bottom_left_corner = 2
32:0/0/terrains_peering_bit/left_side = 2
32:0/0/terrains_peering_bit/top_left_corner = 1
32:0/0/terrains_peering_bit/top_side = 1
32:0/0/terrains_peering_bit/top_right_corner = 1
31:1/0 = 0
31:1/0/terrain_set = 0
31:1/0/terrain = 2
31:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
31:1/0/physics_layer_0/angular_velocity = 0.0
31:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-6, -8, -6, -6, -8, -4, -8, -8)
31:1/0/terrains_peering_bit/right_side = 2
31:1/0/terrains_peering_bit/bottom_right_corner = 0
31:1/0/terrains_peering_bit/bottom_side = 0
31:1/0/terrains_peering_bit/bottom_left_corner = 0
31:1/0/terrains_peering_bit/left_side = 0
31:1/0/terrains_peering_bit/top_side = 2
31:1/0/terrains_peering_bit/top_right_corner = 2
32:1/0 = 0
32:1/0/terrain_set = 0
32:1/0/terrain = 2
32:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
32:1/0/physics_layer_0/angular_velocity = 0.0
32:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(6, -8, 6, -6, 8, -4, 8, -8)
32:1/0/terrains_peering_bit/right_side = 0
32:1/0/terrains_peering_bit/bottom_right_corner = 0
32:1/0/terrains_peering_bit/bottom_side = 0
32:1/0/terrains_peering_bit/bottom_left_corner = 0
32:1/0/terrains_peering_bit/left_side = 2
32:1/0/terrains_peering_bit/top_left_corner = 2
32:1/0/terrains_peering_bit/top_side = 2
29:2/0 = 0
29:2/0/terrain_set = 0
29:2/0/terrain = 2
29:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
29:2/0/physics_layer_0/angular_velocity = 0.0
29:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -6, 6, -6, 4, -8, 8, -8)
29:2/0/terrains_peering_bit/right_side = 2
29:2/0/terrains_peering_bit/bottom_right_corner = 2
29:2/0/terrains_peering_bit/bottom_side = 2
29:2/0/terrains_peering_bit/bottom_left_corner = 0
29:2/0/terrains_peering_bit/left_side = 0
29:2/0/terrains_peering_bit/top_left_corner = 0
29:2/0/terrains_peering_bit/top_side = 0
29:3/0 = 0
29:3/0/terrain_set = 0
29:3/0/terrain = 2
29:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
29:3/0/physics_layer_0/angular_velocity = 0.0
29:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 6, 6, 6, 4, 8, 8, 8)
29:3/0/terrains_peering_bit/right_side = 2
29:3/0/terrains_peering_bit/bottom_side = 0
29:3/0/terrains_peering_bit/bottom_left_corner = 0
29:3/0/terrains_peering_bit/left_side = 0
29:3/0/terrains_peering_bit/top_left_corner = 0
29:3/0/terrains_peering_bit/top_side = 2
29:3/0/terrains_peering_bit/top_right_corner = 2
30:3/0 = 0
30:3/0/terrain_set = 0
30:3/0/terrain = 2
30:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
30:3/0/physics_layer_0/angular_velocity = 0.0
30:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 6, -6, 6, -4, 8, -8, 8)
30:3/0/terrains_peering_bit/right_side = 1
30:3/0/terrains_peering_bit/bottom_right_corner = 1
30:3/0/terrains_peering_bit/bottom_side = 1
30:3/0/terrains_peering_bit/left_side = 2
30:3/0/terrains_peering_bit/top_left_corner = 2
30:3/0/terrains_peering_bit/top_side = 2
30:3/0/terrains_peering_bit/top_right_corner = 1
30:2/0 = 0
30:2/0/terrain_set = 0
30:2/0/terrain = 2
30:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
30:2/0/physics_layer_0/angular_velocity = 0.0
30:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -6, -6, -6, -4, -8, -8, -8)
30:2/0/terrains_peering_bit/right_side = 1
30:2/0/terrains_peering_bit/bottom_right_corner = 1
30:2/0/terrains_peering_bit/bottom_side = 2
30:2/0/terrains_peering_bit/bottom_left_corner = 2
30:2/0/terrains_peering_bit/left_side = 2
30:2/0/terrains_peering_bit/top_side = 1
30:2/0/terrains_peering_bit/top_right_corner = 1
24:3/0 = 0
24:3/0/terrain_set = 0
24:3/0/terrain = 3
24:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
24:3/0/physics_layer_0/angular_velocity = 0.0
24:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 8, 6, 8, 6, 6, 8, 4)
24:3/0/physics_layer_0/polygon_1/points = PackedVector2Array(-6, 8, -6, 6, -8, 4, -8, 8)
24:3/0/terrains_peering_bit/right_side = 0
24:3/0/terrains_peering_bit/bottom_side = 3
24:3/0/terrains_peering_bit/left_side = 0
24:3/0/terrains_peering_bit/top_left_corner = 0
24:3/0/terrains_peering_bit/top_side = 0
24:3/0/terrains_peering_bit/top_right_corner = 0
25:3/0 = 0
25:3/0/terrain_set = 0
25:3/0/terrain = 3
25:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
25:3/0/physics_layer_0/angular_velocity = 0.0
25:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 8, 6, 8, 6, 6, 8, 4)
25:3/0/physics_layer_0/polygon_1/points = PackedVector2Array(-6, 8, -6, 6, -8, 4, -8, 8)
25:3/0/terrains_peering_bit/right_side = 1
25:3/0/terrains_peering_bit/bottom_side = 3
25:3/0/terrains_peering_bit/left_side = 1
25:3/0/terrains_peering_bit/top_left_corner = 1
25:3/0/terrains_peering_bit/top_side = 1
25:3/0/terrains_peering_bit/top_right_corner = 1
26:3/0 = 0
26:3/0/terrain_set = 0
26:3/0/terrain = 3
26:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
26:3/0/physics_layer_0/angular_velocity = 0.0
26:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, -6, 6, -6, 4, -8)
26:3/0/physics_layer_0/polygon_1/points = PackedVector2Array(8, 6, 6, 6, 4, 8, 8, 8)
26:3/0/terrains_peering_bit/right_side = 3
26:3/0/terrains_peering_bit/bottom_side = 0
26:3/0/terrains_peering_bit/bottom_left_corner = 0
26:3/0/terrains_peering_bit/left_side = 0
26:3/0/terrains_peering_bit/top_left_corner = 0
26:3/0/terrains_peering_bit/top_side = 0
27:3/0 = 0
27:3/0/terrain_set = 0
27:3/0/terrain = 3
27:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
27:3/0/physics_layer_0/angular_velocity = 0.0
27:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, 6, -6, 6, -4, 8)
27:3/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, -6, -6, -6, -4, -8, -8, -8)
27:3/0/terrains_peering_bit/right_side = 1
27:3/0/terrains_peering_bit/bottom_right_corner = 1
27:3/0/terrains_peering_bit/bottom_side = 1
27:3/0/terrains_peering_bit/left_side = 3
27:3/0/terrains_peering_bit/top_side = 1
27:3/0/terrains_peering_bit/top_right_corner = 1
27:4/0 = 0
27:4/0/terrain_set = 0
27:4/0/terrain = 3
27:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
27:4/0/physics_layer_0/angular_velocity = 0.0
27:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, 6, -6, 6, -4, 8)
27:4/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, -6, -6, -6, -4, -8, -8, -8)
27:4/0/terrains_peering_bit/right_side = 0
27:4/0/terrains_peering_bit/bottom_right_corner = 0
27:4/0/terrains_peering_bit/bottom_side = 0
27:4/0/terrains_peering_bit/left_side = 3
27:4/0/terrains_peering_bit/top_side = 0
27:4/0/terrains_peering_bit/top_right_corner = 0
26:4/0 = 0
26:4/0/terrain_set = 0
26:4/0/terrain = 3
26:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
26:4/0/physics_layer_0/angular_velocity = 0.0
26:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, -6, 6, -6, 4, -8)
26:4/0/physics_layer_0/polygon_1/points = PackedVector2Array(8, 6, 6, 6, 4, 8, 8, 8)
26:4/0/terrains_peering_bit/right_side = 3
26:4/0/terrains_peering_bit/bottom_side = 1
26:4/0/terrains_peering_bit/bottom_left_corner = 1
26:4/0/terrains_peering_bit/left_side = 1
26:4/0/terrains_peering_bit/top_left_corner = 1
26:4/0/terrains_peering_bit/top_side = 1
25:4/0 = 0
25:4/0/terrain_set = 0
25:4/0/terrain = 3
25:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
25:4/0/physics_layer_0/angular_velocity = 0.0
25:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -6, -8, -6, -6, -8, -4)
25:4/0/physics_layer_0/polygon_1/points = PackedVector2Array(6, -8, 6, -6, 8, -4, 8, -8)
25:4/0/terrains_peering_bit/right_side = 0
25:4/0/terrains_peering_bit/bottom_right_corner = 0
25:4/0/terrains_peering_bit/bottom_side = 0
25:4/0/terrains_peering_bit/bottom_left_corner = 0
25:4/0/terrains_peering_bit/left_side = 0
25:4/0/terrains_peering_bit/top_side = 3
24:4/0 = 0
24:4/0/terrain_set = 0
24:4/0/terrain = 3
24:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
24:4/0/physics_layer_0/angular_velocity = 0.0
24:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -6, -8, -6, -6, -8, -4)
24:4/0/physics_layer_0/polygon_1/points = PackedVector2Array(6, -8, 6, -6, 8, -4, 8, -8)
24:4/0/terrains_peering_bit/right_side = 1
24:4/0/terrains_peering_bit/bottom_right_corner = 1
24:4/0/terrains_peering_bit/bottom_side = 1
24:4/0/terrains_peering_bit/bottom_left_corner = 1
24:4/0/terrains_peering_bit/left_side = 1
24:4/0/terrains_peering_bit/top_side = 3
34:3/0 = 0
34:3/0/terrain_set = 0
34:3/0/terrain = 3
34:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
34:3/0/physics_layer_0/angular_velocity = 0.0
34:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 6, 6, 6, 4, 8, 8, 8)
34:3/0/terrains_peering_bit/right_side = 3
34:3/0/terrains_peering_bit/bottom_side = 0
34:3/0/terrains_peering_bit/bottom_left_corner = 0
34:3/0/terrains_peering_bit/left_side = 0
34:3/0/terrains_peering_bit/top_left_corner = 0
34:3/0/terrains_peering_bit/top_side = 3
34:3/0/terrains_peering_bit/top_right_corner = 3
34:2/0 = 0
34:2/0/terrain_set = 0
34:2/0/terrain = 3
34:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
34:2/0/physics_layer_0/angular_velocity = 0.0
34:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -6, 6, -6, 4, -8, 8, -8)
34:2/0/terrains_peering_bit/right_side = 3
34:2/0/terrains_peering_bit/bottom_right_corner = 3
34:2/0/terrains_peering_bit/bottom_side = 3
34:2/0/terrains_peering_bit/bottom_left_corner = 0
34:2/0/terrains_peering_bit/left_side = 0
34:2/0/terrains_peering_bit/top_left_corner = 0
34:2/0/terrains_peering_bit/top_side = 0
34:1/0 = 0
34:1/0/terrain_set = 0
34:1/0/terrain = 3
34:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
34:1/0/physics_layer_0/angular_velocity = 0.0
34:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-6, -8, -6, -6, -8, -4, -8, -8)
34:1/0/terrains_peering_bit/right_side = 3
34:1/0/terrains_peering_bit/bottom_right_corner = 1
34:1/0/terrains_peering_bit/bottom_side = 1
34:1/0/terrains_peering_bit/bottom_left_corner = 1
34:1/0/terrains_peering_bit/left_side = 1
34:1/0/terrains_peering_bit/top_side = 3
34:1/0/terrains_peering_bit/top_right_corner = 3
34:0/0 = 0
34:0/0/terrain_set = 0
34:0/0/terrain = 3
34:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
34:0/0/physics_layer_0/angular_velocity = 0.0
34:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-6, 8, -6, 6, -8, 4, -8, 8)
34:0/0/terrains_peering_bit/right_side = 3
34:0/0/terrains_peering_bit/bottom_right_corner = 3
34:0/0/terrains_peering_bit/bottom_side = 3
34:0/0/terrains_peering_bit/left_side = 0
34:0/0/terrains_peering_bit/top_left_corner = 0
34:0/0/terrains_peering_bit/top_side = 0
34:0/0/terrains_peering_bit/top_right_corner = 0
35:0/0 = 0
35:0/0/terrain_set = 0
35:0/0/terrain = 3
35:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
35:0/0/physics_layer_0/angular_velocity = 0.0
35:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(6, 8, 6, 6, 8, 4, 8, 8)
35:0/0/terrains_peering_bit/right_side = 0
35:0/0/terrains_peering_bit/bottom_side = 3
35:0/0/terrains_peering_bit/bottom_left_corner = 3
35:0/0/terrains_peering_bit/left_side = 3
35:0/0/terrains_peering_bit/top_left_corner = 0
35:0/0/terrains_peering_bit/top_side = 0
35:0/0/terrains_peering_bit/top_right_corner = 0
36:0/0 = 0
36:0/0/terrain_set = 0
36:0/0/terrain = 3
36:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
36:0/0/physics_layer_0/angular_velocity = 0.0
36:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-6, 8, -6, 6, -8, 4, -8, 8)
36:0/0/terrains_peering_bit/right_side = 3
36:0/0/terrains_peering_bit/bottom_right_corner = 3
36:0/0/terrains_peering_bit/bottom_side = 3
36:0/0/terrains_peering_bit/left_side = 1
36:0/0/terrains_peering_bit/top_left_corner = 1
36:0/0/terrains_peering_bit/top_side = 1
36:0/0/terrains_peering_bit/top_right_corner = 1
36:1/0 = 0
36:1/0/terrain_set = 0
36:1/0/terrain = 3
36:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
36:1/0/physics_layer_0/angular_velocity = 0.0
36:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-6, -8, -6, -6, -8, -4, -8, -8)
36:1/0/terrains_peering_bit/right_side = 3
36:1/0/terrains_peering_bit/bottom_right_corner = 0
36:1/0/terrains_peering_bit/bottom_side = 0
36:1/0/terrains_peering_bit/bottom_left_corner = 0
36:1/0/terrains_peering_bit/left_side = 0
36:1/0/terrains_peering_bit/top_side = 3
36:1/0/terrains_peering_bit/top_right_corner = 3
35:1/0 = 0
35:1/0/terrain_set = 0
35:1/0/terrain = 3
35:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
35:1/0/physics_layer_0/angular_velocity = 0.0
35:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(6, -8, 6, -6, 8, -4, 8, -8)
35:1/0/terrains_peering_bit/right_side = 1
35:1/0/terrains_peering_bit/bottom_right_corner = 1
35:1/0/terrains_peering_bit/bottom_side = 1
35:1/0/terrains_peering_bit/bottom_left_corner = 1
35:1/0/terrains_peering_bit/left_side = 3
35:1/0/terrains_peering_bit/top_left_corner = 3
35:1/0/terrains_peering_bit/top_side = 3
35:2/0 = 0
35:2/0/terrain_set = 0
35:2/0/terrain = 3
35:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
35:2/0/physics_layer_0/angular_velocity = 0.0
35:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -6, -6, -6, -4, -8, -8, -8)
35:2/0/terrains_peering_bit/right_side = 1
35:2/0/terrains_peering_bit/bottom_right_corner = 1
35:2/0/terrains_peering_bit/bottom_side = 3
35:2/0/terrains_peering_bit/bottom_left_corner = 3
35:2/0/terrains_peering_bit/left_side = 3
35:2/0/terrains_peering_bit/top_side = 1
35:2/0/terrains_peering_bit/top_right_corner = 1
35:3/0 = 0
35:3/0/terrain_set = 0
35:3/0/terrain = 3
35:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
35:3/0/physics_layer_0/angular_velocity = 0.0
35:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 6, -6, 6, -4, 8, -8, 8)
35:3/0/terrains_peering_bit/right_side = 1
35:3/0/terrains_peering_bit/bottom_right_corner = 1
35:3/0/terrains_peering_bit/bottom_side = 1
35:3/0/terrains_peering_bit/left_side = 3
35:3/0/terrains_peering_bit/top_left_corner = 3
35:3/0/terrains_peering_bit/top_side = 3
35:3/0/terrains_peering_bit/top_right_corner = 1
36:3/0 = 0
36:3/0/terrain_set = 0
36:3/0/terrain = 3
36:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
36:3/0/physics_layer_0/angular_velocity = 0.0
36:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 6, 6, 6, 4, 8, 8, 8)
36:3/0/terrains_peering_bit/right_side = 3
36:3/0/terrains_peering_bit/bottom_side = 1
36:3/0/terrains_peering_bit/bottom_left_corner = 1
36:3/0/terrains_peering_bit/left_side = 1
36:3/0/terrains_peering_bit/top_left_corner = 1
36:3/0/terrains_peering_bit/top_side = 3
36:3/0/terrains_peering_bit/top_right_corner = 3
36:2/0 = 0
36:2/0/terrain_set = 0
36:2/0/terrain = 3
36:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
36:2/0/physics_layer_0/angular_velocity = 0.0
36:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -6, 6, -6, 4, -8, 8, -8)
36:2/0/terrains_peering_bit/right_side = 3
36:2/0/terrains_peering_bit/bottom_right_corner = 3
36:2/0/terrains_peering_bit/bottom_side = 3
36:2/0/terrains_peering_bit/bottom_left_corner = 1
36:2/0/terrains_peering_bit/left_side = 1
36:2/0/terrains_peering_bit/top_left_corner = 1
36:2/0/terrains_peering_bit/top_side = 1
37:3/0 = 0
37:3/0/terrain_set = 0
37:3/0/terrain = 3
37:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
37:3/0/physics_layer_0/angular_velocity = 0.0
37:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 6, -6, 6, -4, 8, -8, 8)
37:3/0/terrains_peering_bit/right_side = 0
37:3/0/terrains_peering_bit/bottom_right_corner = 0
37:3/0/terrains_peering_bit/bottom_side = 0
37:3/0/terrains_peering_bit/left_side = 3
37:3/0/terrains_peering_bit/top_left_corner = 3
37:3/0/terrains_peering_bit/top_side = 3
37:3/0/terrains_peering_bit/top_right_corner = 0
37:2/0 = 0
37:2/0/terrain_set = 0
37:2/0/terrain = 3
37:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
37:2/0/physics_layer_0/angular_velocity = 0.0
37:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -6, -6, -6, -4, -8, -8, -8)
37:2/0/terrains_peering_bit/right_side = 0
37:2/0/terrains_peering_bit/bottom_right_corner = 0
37:2/0/terrains_peering_bit/bottom_side = 3
37:2/0/terrains_peering_bit/bottom_left_corner = 3
37:2/0/terrains_peering_bit/left_side = 3
37:2/0/terrains_peering_bit/top_side = 0
37:2/0/terrains_peering_bit/top_right_corner = 0
37:1/0 = 0
37:1/0/terrain_set = 0
37:1/0/terrain = 3
37:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
37:1/0/physics_layer_0/angular_velocity = 0.0
37:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(6, -8, 6, -6, 8, -4, 8, -8)
37:1/0/terrains_peering_bit/right_side = 0
37:1/0/terrains_peering_bit/bottom_right_corner = 0
37:1/0/terrains_peering_bit/bottom_side = 0
37:1/0/terrains_peering_bit/bottom_left_corner = 0
37:1/0/terrains_peering_bit/left_side = 3
37:1/0/terrains_peering_bit/top_left_corner = 3
37:1/0/terrains_peering_bit/top_side = 3
37:0/0 = 0
37:0/0/terrain_set = 0
37:0/0/terrain = 3
37:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
37:0/0/physics_layer_0/angular_velocity = 0.0
37:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(6, 8, 6, 6, 8, 4, 8, 8)
37:0/0/terrains_peering_bit/right_side = 1
37:0/0/terrains_peering_bit/bottom_side = 3
37:0/0/terrains_peering_bit/bottom_left_corner = 3
37:0/0/terrains_peering_bit/left_side = 3
37:0/0/terrains_peering_bit/top_left_corner = 1
37:0/0/terrains_peering_bit/top_side = 1
37:0/0/terrains_peering_bit/top_right_corner = 1
[resource]
physics_layer_0/collision_layer = 1
physics_layer_0/collision_mask = 0
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Colony Blue"
terrain_set_0/terrain_0/color = Color(0, 0.384314, 0.721569, 1)
terrain_set_0/terrain_1/name = "Colony Red"
terrain_set_0/terrain_1/color = Color(0.831373, 0.0156863, 0, 1)
terrain_set_0/terrain_2/name = "Colony Connections"
terrain_set_0/terrain_2/color = Color(0.46875, 0.5, 0.25, 1)
terrain_set_0/terrain_2/name = "Colony Connect Blue Dominant"
terrain_set_0/terrain_2/color = Color(0, 0.160784, 0.309804, 1)
terrain_set_0/terrain_3/name = "Colony Connect Red Dominant"
terrain_set_0/terrain_3/color = Color(0.372549, 0, 0.0235294, 1)
sources/0 = SubResource("TileSetAtlasSource_17cgg")

View file

@ -1,12 +1,25 @@
# 2DHackAndSlay
## Branches
- [stable](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/stable) - This is the Most stable branch and only will get PRs from [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly)
- [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly) - This Branch will only get PRs from [dev-base](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/dev-base)its meant for testing
- [dev-base](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/dev-base) - On This branch the Diffrent dev branches will be merged and code may be written to combine everything. when this branch is at a somewhat stable branch it gets a PR to [nightly](https://git.euph.dev/GameDev/2DHackAndSlay/src/branch/nightly)
- dev-* - Dev branches with their respective goal which will be merged into dev-base
## Code Linting Rules
### Use Tabs
Tabs are just cooler
### Use Sign-Form instead of Text-Form
#### Why
There are a lot of Operators in godot, and most are based around signs, so for consistency we stay at the Sign-Forms
#### Boolean operators
- `&&` instead of `and`
- `||` instead of `or`
- `!` instead of `not`
## Resources used:
### Game Art

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,132 @@
extends RigidBody2D
@export_group("Movement Properties")
@export var speed := 100.0
@export var turn_speed := 25.0
@export_group("Vision Properties")
@export var ray : RayCast2D
@export_flags_2d_physics var player_collision_layer := 2
@export var max_view_distance := 120.0
@export_range(0.0, 360.0) var angle_cone_of_vision := 120.0
@export_range(0, 72) var sweeping_steps := 34.0
@export var debug_vision := false
@export_group("Behaviour Properties")
@export var follow_keep_distance := 30.0
enum STATES {
IDLE,
TARGETING
}
var state : STATES
var target_positons : Array
var target_distance : float
func _ready():
# Set Raycast into view Direction
ray.target_position = Vector2(max_view_distance, 0)
pass
func swipe_view() -> Array:
# Set Raycast to starting position
ray.rotation_degrees = -angle_cone_of_vision / 2
# Create Array to Store Angles of Hits
var hit_angles : Array
# Clear Player Positions Array
target_positons.clear()
# Reset Targets distance to Infinity
target_distance = INF
for step in sweeping_steps + 1:
# Check Ray
ray.force_raycast_update()
if ray.is_colliding():
# Get Collider
var collider = ray.get_collider()
var collider_class = collider.get_class()
var collision_layer : int
# Get Collision Layer
if collider_class == "TileMap":
collider = collider as TileMap
collision_layer = collider.tile_set.get_physics_layer_collision_layer(0)
else:
collision_layer = collider.get_collision_layer()
# Break if No relevant Collision
if collision_layer & player_collision_layer > 0:
# Checking Collision Layer
hit_angles.append(ray.rotation_degrees)
target_positons.append(to_local(ray.get_collision_point()))
# Check distance
target_distance = min(target_distance, ray.get_collision_point().distance_to(self.global_position))
# Rotate Ray
ray.rotation_degrees += angle_cone_of_vision / sweeping_steps
return hit_angles
func look_at_player(delta : float) -> float:
# Get All Angles at which the Player can be seen
var hit_angles = swipe_view()
# If The Player cant be seen, return and do nothing
if hit_angles.size() <= 0:
state = STATES.IDLE
return 0
state = STATES.TARGETING
# Calculate Average Angle Of Player
var average_angle : float
for angle in hit_angles:
average_angle += angle
average_angle /= hit_angles.size()
# Rotate towards Player, but limit it by rotation speed
self.rotation_degrees += clampf(average_angle, -2 * PI * delta * turn_speed, 2 * PI * delta * turn_speed)
return average_angle
func follow_player(angle : float):
if(target_distance > follow_keep_distance):
self.apply_central_force(Vector2.RIGHT.rotated(self.rotation).rotated(deg_to_rad(angle)) * speed)
pass
func _physics_process(delta: float):
var angle := look_at_player(delta)
match state:
STATES.TARGETING:
follow_player(angle)
STATES.IDLE:
# Do Idle Stuff
print("Dam, Nice a pause, time for a Coffee")
pass
func _process(delta: float):
if debug_vision:
queue_redraw()
pass
func _draw():
# Draw a Debug Arc in case that Debug Vision is enabled
if debug_vision:
# Draw All Ray Positions
var angle = -angle_cone_of_vision / 2
for step in sweeping_steps + 1:
self.draw_line(Vector2(), Vector2(max_view_distance,0).rotated(deg_to_rad(angle)), Color.DARK_RED, 0.5, false)
angle += angle_cone_of_vision / sweeping_steps
# Draw Ray Arc
self.draw_arc(Vector2(), max_view_distance, deg_to_rad(-angle_cone_of_vision / 2), deg_to_rad(angle_cone_of_vision / 2), sweeping_steps + 1, Color.RED, 0.5, false)
# Draw A Circle Around the Player if hes seen
for pos in target_positons:
self.draw_circle(pos, 1, Color.RED)
pass

View file

@ -0,0 +1,16 @@
extends CharacterBody2D
@export var speed = 50
func get_move_vector():
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down").normalized()
return input_direction
func _physics_process(delta):
# Set Velcoity to Move Vector times speed
self.velocity = get_move_vector() * speed
# Do the Physics-Calculations of the Player
self.move_and_slide()
pass

View file

@ -1,18 +0,0 @@
extends CharacterBody2D
@export var speed = 50
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
func get_input():
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down")
velocity = input_direction * speed
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _physics_process(delta):
get_input()
move_and_slide()

View file

@ -16,7 +16,9 @@ config/features=PackedStringArray("4.0")
[display]
window/stretch/aspect="ignore"
window/stretch/mode="viewport"
window/stretch/aspect="expand"
window/stretch/scale=0.7
[editor]
@ -57,6 +59,17 @@ move_right={
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
do_shake={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null)
]
}
[layer_names]
2d_physics/layer_1="Map"
2d_physics/layer_2="Player"
2d_physics/layer_3="Enemys"
[physics]