diff --git a/assets/Audio/SFX/wind01.ogg b/assets/Audio/SFX/wind01.ogg new file mode 100644 index 0000000..a359c00 Binary files /dev/null and b/assets/Audio/SFX/wind01.ogg differ diff --git a/assets/Audio/SFX/wind01.ogg.import b/assets/Audio/SFX/wind01.ogg.import new file mode 100644 index 0000000..fdaf0f0 --- /dev/null +++ b/assets/Audio/SFX/wind01.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/wind01.ogg-026f1cb389bf20630dec6d09db72d7c0.oggstr" + +[deps] + +source_file="res://assets/Audio/SFX/wind01.ogg" +dest_files=[ "res://.import/wind01.ogg-026f1cb389bf20630dec6d09db72d7c0.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/assets/Audio/Scene - Lucid Night.ogg b/assets/Audio/Scene - Lucid Night.ogg new file mode 100644 index 0000000..d907509 Binary files /dev/null and b/assets/Audio/Scene - Lucid Night.ogg differ diff --git a/assets/Audio/Scene - Lucid Night.ogg.import b/assets/Audio/Scene - Lucid Night.ogg.import new file mode 100644 index 0000000..da41f63 --- /dev/null +++ b/assets/Audio/Scene - Lucid Night.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/Scene - Lucid Night.ogg-125beaea2f81884b06fa61796e9d61b8.oggstr" + +[deps] + +source_file="res://assets/Audio/Scene - Lucid Night.ogg" +dest_files=[ "res://.import/Scene - Lucid Night.ogg-125beaea2f81884b06fa61796e9d61b8.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/assets/Tiles/SolidsTileMap.tscn b/assets/Tiles/SolidsTileMap.tscn index 9da599f..998126b 100644 --- a/assets/Tiles/SolidsTileMap.tscn +++ b/assets/Tiles/SolidsTileMap.tscn @@ -2,107 +2,107 @@ [ext_resource path="res://assets/Tiles/tileset.png" type="Texture" id=1] -[sub_resource type="OccluderPolygon2D" id=1] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=53] +polygon = PoolVector2Array( 16, 16, 4.51224, 16, 4.51224, 5.0704, 16, 5.0704 ) -[sub_resource type="OccluderPolygon2D" id=2] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=54] +polygon = PoolVector2Array( 16, 16, 4.4869, 16, 4.4869, 0, 16, 0 ) -[sub_resource type="OccluderPolygon2D" id=3] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=57] +polygon = PoolVector2Array( 16, 0, 4.4869, 0, 4.4869, 10.994, 16, 10.994 ) -[sub_resource type="OccluderPolygon2D" id=4] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=55] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 5.14114, 16, 5.2346 ) -[sub_resource type="OccluderPolygon2D" id=5] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=58] +polygon = PoolVector2Array( 0, 16, 16, 16, 16, 0, 0, 0 ) -[sub_resource type="OccluderPolygon2D" id=6] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=59] +polygon = PoolVector2Array( 16, 0, 0, 0, 0, 11.0875, 16, 11.0875 ) -[sub_resource type="OccluderPolygon2D" id=7] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=56] +polygon = PoolVector2Array( 11.9286, 15.9829, 0, 16, 0, 5.32807, 11.8352, 5.32807 ) -[sub_resource type="OccluderPolygon2D" id=8] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=60] +polygon = PoolVector2Array( 0, 0, 11.8352, 0, 11.7417, 16, 0, 16 ) -[sub_resource type="OccluderPolygon2D" id=9] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=61] +polygon = PoolVector2Array( 11.5548, 0, 0, 0, 0, 11.0875, 11.5548, 11.0875 ) -[sub_resource type="OccluderPolygon2D" id=10] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=62] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 11.4032, 12.8456, 11.4032, 11.6306, 11.4032, 11.724, 16, 0, 16, 0, 0 ) -[sub_resource type="OccluderPolygon2D" id=11] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=63] +polygon = PoolVector2Array( 11.6306, 16, 0, 16, 0, 0, 11.6306, 0 ) -[sub_resource type="OccluderPolygon2D" id=12] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=64] +polygon = PoolVector2Array( 11.4436, 0, 11.5371, 4.45152, 16, 4.54499, 16, 16, 0, 16, 0, 0 ) -[sub_resource type="OccluderPolygon2D" id=13] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=65] +polygon = PoolVector2Array( 16, 0, 0, 0, 0, 11.2163, 16, 11.2163 ) -[sub_resource type="OccluderPolygon2D" id=14] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=66] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 4.63845, 16, 4.63845 ) -[sub_resource type="OccluderPolygon2D" id=15] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=67] +polygon = PoolVector2Array( 0, 11.4032, 0, 0, 16, 0, 16, 16, 3.18344, 16, 3.08997, 11.3097 ) -[sub_resource type="OccluderPolygon2D" id=16] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=68] +polygon = PoolVector2Array( 16, 16, 3.08997, 16, 3.08997, 0, 16, 0 ) -[sub_resource type="OccluderPolygon2D" id=17] -polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) +[sub_resource type="OccluderPolygon2D" id=69] +polygon = PoolVector2Array( 0, 4.73192, 0, 4.73192, 3.18344, 4.73192, 3.18344, 0, 16, 0, 15.8945, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=18] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=36] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=19] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=37] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=20] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=38] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=21] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=39] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=22] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=40] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=23] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=41] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=24] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=42] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=25] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=43] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=26] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=44] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=27] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=45] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=28] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=46] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=29] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=47] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=30] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=48] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=31] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=49] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=32] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=50] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=33] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=51] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) -[sub_resource type="ConvexPolygonShape2D" id=34] -points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=52] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) [sub_resource type="TileSet" id=35] 0/name = "tileset.png 0" @@ -116,7 +116,7 @@ points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) 0/autotile/icon_coordinate = Vector2( 1, 0 ) 0/autotile/tile_size = Vector2( 16, 16 ) 0/autotile/spacing = 0 -0/autotile/occluder_map = [ Vector2( 0, 0 ), SubResource( 1 ), Vector2( 0, 1 ), SubResource( 2 ), Vector2( 0, 2 ), SubResource( 3 ), Vector2( 1, 0 ), SubResource( 4 ), Vector2( 1, 1 ), SubResource( 5 ), Vector2( 1, 2 ), SubResource( 6 ), Vector2( 2, 0 ), SubResource( 7 ), Vector2( 2, 1 ), SubResource( 8 ), Vector2( 2, 2 ), SubResource( 9 ), Vector2( 3, 0 ), SubResource( 10 ), Vector2( 3, 1 ), SubResource( 11 ), Vector2( 3, 2 ), SubResource( 12 ), Vector2( 4, 0 ), SubResource( 13 ), Vector2( 4, 2 ), SubResource( 14 ), Vector2( 5, 0 ), SubResource( 15 ), Vector2( 5, 1 ), SubResource( 16 ), Vector2( 5, 2 ), SubResource( 17 ) ] +0/autotile/occluder_map = [ Vector2( 0, 0 ), SubResource( 53 ), Vector2( 0, 1 ), SubResource( 54 ), Vector2( 0, 2 ), SubResource( 57 ), Vector2( 1, 0 ), SubResource( 55 ), Vector2( 1, 1 ), SubResource( 58 ), Vector2( 1, 2 ), SubResource( 59 ), Vector2( 2, 0 ), SubResource( 56 ), Vector2( 2, 1 ), SubResource( 60 ), Vector2( 2, 2 ), SubResource( 61 ), Vector2( 3, 0 ), SubResource( 62 ), Vector2( 3, 1 ), SubResource( 63 ), Vector2( 3, 2 ), SubResource( 64 ), Vector2( 4, 0 ), SubResource( 65 ), Vector2( 4, 2 ), SubResource( 66 ), Vector2( 5, 0 ), SubResource( 67 ), Vector2( 5, 1 ), SubResource( 68 ), Vector2( 5, 2 ), SubResource( 69 ) ] 0/autotile/navpoly_map = [ ] 0/autotile/priority_map = [ ] 0/autotile/z_index_map = [ ] @@ -124,110 +124,110 @@ points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) 0/navigation_offset = Vector2( 0, 0 ) 0/shape_offset = Vector2( 0, 0 ) 0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -0/shape = SubResource( 18 ) +0/shape = SubResource( 36 ) 0/shape_one_way = false 0/shape_one_way_margin = 1.0 0/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 36 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { "autotile_coord": Vector2( 1, 0 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 18 ), +"shape": SubResource( 37 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 2, 0 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 19 ), +"shape": SubResource( 38 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 0, 1 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 20 ), +"shape": SubResource( 39 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 1, 1 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 21 ), +"shape": SubResource( 40 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 2, 1 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 22 ), -"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) -}, { -"autotile_coord": Vector2( 0, 0 ), -"one_way": false, -"one_way_margin": 1.0, -"shape": SubResource( 23 ), +"shape": SubResource( 41 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 0, 2 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 24 ), +"shape": SubResource( 42 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 1, 2 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 25 ), +"shape": SubResource( 43 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 2, 2 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 26 ), +"shape": SubResource( 44 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 3, 0 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 27 ), +"shape": SubResource( 45 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 3, 1 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 28 ), +"shape": SubResource( 46 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 3, 2 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 29 ), +"shape": SubResource( 47 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 4, 0 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 30 ), +"shape": SubResource( 48 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 4, 2 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 31 ), +"shape": SubResource( 49 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 5, 0 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 32 ), +"shape": SubResource( 50 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 5, 1 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 33 ), +"shape": SubResource( 51 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) }, { "autotile_coord": Vector2( 5, 2 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 34 ), +"shape": SubResource( 52 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) } ] 0/z_index = 0 diff --git a/project.godot b/project.godot index ed446b4..b04f065 100644 --- a/project.godot +++ b/project.godot @@ -74,6 +74,7 @@ config/icon="res://icon.png" AudioManager="*res://src/Singletons/AudioManager.tscn" GameState="*res://src/Singletons/GameState.gd" Utils="*res://src/Singletons/Utils.gd" +Stage="*res://src/Singletons/Stage.tscn" [display] @@ -177,4 +178,5 @@ attack={ [rendering] quality/2d/use_pixel_snap=true +environment/default_clear_color=Color( 0, 0, 0, 1 ) environment/default_environment="res://default_env.tres" diff --git a/src/Actors/Goblin.gd b/src/Actors/Goblin.gd index a543f78..4870fc2 100644 --- a/src/Actors/Goblin.gd +++ b/src/Actors/Goblin.gd @@ -11,7 +11,7 @@ func _on_Area2D_body_entered(body: Node) -> void: func _physics_process(delta: float) -> void: if not _is_alive: return if _triggerd and _damage_enabled: - var player_direction = (_player_ref.position - position).normalized() + var player_direction = (_player_ref.position - global_position).normalized() $Sprite.scale = Vector2(-1 if player_direction.x < 0 else 1, 1) if _get_pit_direction() == 0 and dont_fall_patrol: _velocity.x = $Sprite.scale.x * walking_speed * 2 diff --git a/src/Actors/Goblin.tscn b/src/Actors/Goblin.tscn index 4df5b54..e09a456 100644 --- a/src/Actors/Goblin.tscn +++ b/src/Actors/Goblin.tscn @@ -6,13 +6,13 @@ [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 6, 8 ) -[sub_resource type="RectangleShape2D" id=5] +[sub_resource type="RectangleShape2D" id=2] extents = Vector2( 7, 9 ) -[sub_resource type="RectangleShape2D" id=6] +[sub_resource type="RectangleShape2D" id=3] extents = Vector2( 35, 10 ) -[sub_resource type="Animation" id=8] +[sub_resource type="Animation" id=4] resource_name = "attack" length = 0.3 loop = true @@ -101,8 +101,7 @@ tracks/6/keys = { "values": [ false ] } -[sub_resource type="Animation" id=2] -resource_name = "die" +[sub_resource type="Animation" id=5] length = 0.5 loop = true tracks/0/type = "value" @@ -204,7 +203,7 @@ tracks/7/keys = { } ] } -[sub_resource type="Animation" id=7] +[sub_resource type="Animation" id=6] resource_name = "hit" length = 0.2 tracks/0/type = "value" @@ -318,8 +317,7 @@ tracks/8/keys = { } ] } -[sub_resource type="Animation" id=3] -resource_name = "idle" +[sub_resource type="Animation" id=7] length = 0.3 loop = true tracks/0/type = "value" @@ -419,8 +417,7 @@ tracks/7/keys = { "values": [ false ] } -[sub_resource type="Animation" id=4] -resource_name = "walk" +[sub_resource type="Animation" id=8] length = 0.5 loop = true tracks/0/type = "value" @@ -514,21 +511,24 @@ collision_mask = 15 script = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false position = Vector2( 0, -8 ) shape = SubResource( 1 ) [node name="Area2D" type="Area2D" parent="."] +visible = false collision_layer = 2 [node name="DamageArea" type="CollisionShape2D" parent="Area2D"] position = Vector2( 0, -8 ) -shape = SubResource( 5 ) +shape = SubResource( 2 ) [node name="TriggerZone" type="Area2D" parent="."] +visible = false [node name="CollisionShape2D" type="CollisionShape2D" parent="TriggerZone"] position = Vector2( 0, -6 ) -shape = SubResource( 6 ) +shape = SubResource( 3 ) [node name="Sprite" type="Sprite" parent="."] position = Vector2( 0, -8 ) @@ -539,19 +539,21 @@ frame = 8 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "idle" -anims/attack = SubResource( 8 ) -anims/die = SubResource( 2 ) -anims/hit = SubResource( 7 ) -anims/idle = SubResource( 3 ) -anims/walk = SubResource( 4 ) +anims/attack = SubResource( 4 ) +anims/die = SubResource( 5 ) +anims/hit = SubResource( 6 ) +anims/idle = SubResource( 7 ) +anims/walk = SubResource( 8 ) [node name="RayCastLeft" type="RayCast2D" parent="."] +visible = false position = Vector2( -6, 0 ) enabled = true cast_to = Vector2( 0, 1 ) collision_mask = 8 [node name="RayCastRight" type="RayCast2D" parent="."] +visible = false position = Vector2( 6, 0 ) enabled = true cast_to = Vector2( 0, 1 ) diff --git a/src/Actors/LightBeam.tscn b/src/Actors/LightBeam.tscn index 98afef5..c565290 100644 --- a/src/Actors/LightBeam.tscn +++ b/src/Actors/LightBeam.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://src/Actors/ligt_beam.png" type="Texture" id=1] [ext_resource path="res://src/Actors/LightBeam.gd" type="Script" id=2] +[ext_resource path="res://assets/Items/torch_ligt_texture.png" type="Texture" id=3] [sub_resource type="Gradient" id=1] offsets = PoolRealArray( 0, 0.189655, 0.366379, 0.616379, 1 ) @@ -36,7 +37,7 @@ color_ramp = SubResource( 2 ) [sub_resource type="CircleShape2D" id=6] radius = 3.0 -[sub_resource type="Animation" id=8] +[sub_resource type="Animation" id=7] resource_name = "lights_on" length = 0.5 loop = true @@ -50,7 +51,7 @@ tracks/0/keys = { "times": PoolRealArray( 0, 0.25, 0.5 ), "transitions": PoolRealArray( 1, 1, 1 ), "update": 0, -"values": [ 1.0, 1.5, 1.0 ] +"values": [ 3.0, 4.0, 3.0 ] } tracks/1/type = "value" tracks/1/path = NodePath("Light2D:rotation_degrees") @@ -65,8 +66,7 @@ tracks/1/keys = { "values": [ 0.0, -86.4, 33.4 ] } -[sub_resource type="Animation" id=7] -resource_name = "lights_out" +[sub_resource type="Animation" id=8] length = 0.5 step = 0.25 tracks/0/type = "value" @@ -116,13 +116,13 @@ texture = ExtResource( 1 ) script = ExtResource( 2 ) [node name="Light2D" type="Light2D" parent="."] -rotation = -0.253422 -texture = ExtResource( 1 ) -texture_scale = 0.8 -energy = 2.0 +rotation = -1.20637 +texture = ExtResource( 3 ) +texture_scale = 3.8 +color = Color( 0.87451, 0.976471, 0.984314, 0.866667 ) range_item_cull_mask = 15375 shadow_enabled = true -shadow_item_cull_mask = 28 +shadow_item_cull_mask = 30 [node name="Area2D" type="Area2D" parent="."] collision_layer = 0 @@ -133,6 +133,6 @@ shape = SubResource( 6 ) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "lights_on" -anims/lights_on = SubResource( 8 ) -anims/lights_out = SubResource( 7 ) +anims/lights_on = SubResource( 7 ) +anims/lights_out = SubResource( 8 ) [connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"] diff --git a/src/Actors/Player.gd b/src/Actors/Player.gd index 2af2651..4a50655 100644 --- a/src/Actors/Player.gd +++ b/src/Actors/Player.gd @@ -25,7 +25,7 @@ signal died var _velocity: Vector2 = Vector2.ZERO var _landing_position:Vector2 = Vector2.ZERO var _is_wall_jumping := false -var _alive := false +var _alive := true var _can_dash := true var _is_jump_canceled := false var _direction := Vector2.ZERO @@ -52,8 +52,8 @@ export var abilities:= { "light_beam": false } func _ready() -> void: - $AnimationPlayer.play("fade_in") respawn_position = position + $AnimationPlayer.play("idle") func _physics_process(delta: float) -> void: if _alive: @@ -65,7 +65,7 @@ func _physics_process(delta: float) -> void: func _input_check() -> void: - if GameState.get_state() == GameState.States.GAME: + if GameState.get_state() == GameState.States.GAME or GameState.get_state() == GameState.States.NEW_GAME: _is_jump_canceled = Input.is_action_just_released("jump") and !_is_wall_jumping and _velocity.y < 0.0; _get_direction() _check_dash() @@ -199,7 +199,6 @@ func calculate_move_velocity(direction:Vector2, is_jump_canceled:bool, delta:fl func _respawn(): position = respawn_position _velocity = Vector2.ZERO - $AnimationPlayer.play("fade_in") func _revive(): _alive = true @@ -250,11 +249,12 @@ func _attack(): func _on_die_animation_done(): emit_signal("died") _respawn() + _revive() func die(): _alive = false - GameState.player_died() $AnimationPlayer.play("die") + GameState.player_died(self) func setAbility(ability:String, enabled:bool=false): if ability == 'dash': diff --git a/src/Actors/Player.tscn b/src/Actors/Player.tscn index 294bcd9..2b17bff 100644 --- a/src/Actors/Player.tscn +++ b/src/Actors/Player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=2] +[gd_scene load_steps=17 format=2] [ext_resource path="res://src/Actors/DashParticles_right.tscn" type="PackedScene" id=1] [ext_resource path="res://src/Actors/Player.gd" type="Script" id=2] @@ -28,7 +28,7 @@ tracks/0/keys = { "values": [ 12, 13, 14, 15 ] } tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/path = NodePath("Sprite:vframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -36,11 +36,11 @@ tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ) ] +"update": 1, +"values": [ 13 ] } tracks/2/type = "value" -tracks/2/path = NodePath("Sprite:vframes") +tracks/2/path = NodePath("Sprite:hframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -49,10 +49,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 4 ] } tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:hframes") +tracks/3/path = NodePath("Sprite:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -60,11 +60,11 @@ tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 4 ] +"update": 0, +"values": [ Vector2( -8, -8 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:position") +tracks/4/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -72,18 +72,6 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( -8, -8 ) ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ false ] } @@ -104,7 +92,7 @@ tracks/0/keys = { "values": [ 12, 13, 14, 15 ] } tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/path = NodePath("Sprite:vframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -112,11 +100,11 @@ tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ) ] +"update": 1, +"values": [ 13 ] } tracks/2/type = "value" -tracks/2/path = NodePath("Sprite:vframes") +tracks/2/path = NodePath("Sprite:hframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -125,10 +113,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 4 ] } tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:hframes") +tracks/3/path = NodePath("Sprite:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -136,11 +124,11 @@ tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 4 ] +"update": 0, +"values": [ Vector2( 8, -8 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:position") +tracks/4/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -148,18 +136,6 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 8, -8 ) ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ false ] } @@ -178,25 +154,13 @@ tracks/0/keys = { "update": 1, "values": [ 0, 1, 2, 3, 4, 5, 6, 7 ] } -tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/type = "method" +tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { -"times": PoolRealArray( 0, 0.7, 0.9 ), -"transitions": PoolRealArray( 1, 1, 2.54912 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 1 ) ] -} -tracks/2/type = "method" -tracks/2/path = NodePath(".") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/keys = { "times": PoolRealArray( 0.9 ), "transitions": PoolRealArray( 1 ), "values": [ { @@ -204,8 +168,20 @@ tracks/2/keys = { "method": "_on_die_animation_done" } ] } +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:vframes") +tracks/3/path = NodePath("Sprite:hframes") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -214,10 +190,10 @@ tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 8 ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:hframes") +tracks/4/path = NodePath("Sprite:position") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -225,11 +201,11 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 8 ] +"update": 0, +"values": [ Vector2( 0, -8 ) ] } tracks/5/type = "value" -tracks/5/path = NodePath("Sprite:position") +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/imported = false @@ -237,113 +213,12 @@ tracks/5/enabled = true tracks/5/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -8 ) ] -} -tracks/6/type = "value" -tracks/6/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ true ] } [sub_resource type="Animation" id=6] length = 0.2 -tracks/0/type = "value" -tracks/0/path = NodePath("Sprite:frame") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 32 ] -} -tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0, 0.2 ), -"transitions": PoolRealArray( 1, 0.378929 ), -"update": 0, -"values": [ Color( 0, 0, 0, 1 ), Color( 0, 0, 0, 0 ) ] -} -tracks/2/type = "method" -tracks/2/path = NodePath(".") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/keys = { -"times": PoolRealArray( 0.2 ), -"transitions": PoolRealArray( 1 ), -"values": [ { -"args": [ ], -"method": "_revive" -} ] -} -tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:vframes") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 13 ] -} -tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:hframes") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 8 ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite:position") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -8 ) ] -} -tracks/6/type = "value" -tracks/6/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ true ] -} - -[sub_resource type="Animation" id=7] -length = 0.2 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") @@ -358,7 +233,7 @@ tracks/0/keys = { "values": [ 40, 41, 42 ] } tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/path = NodePath("Sprite:vframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -366,11 +241,11 @@ tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ) ] +"update": 1, +"values": [ 13 ] } tracks/2/type = "value" -tracks/2/path = NodePath("Sprite:vframes") +tracks/2/path = NodePath("Sprite:hframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -379,10 +254,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 8 ] } tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:hframes") +tracks/3/path = NodePath("Sprite:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -390,11 +265,11 @@ tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 8 ] +"update": 0, +"values": [ Vector2( 0, -8 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:position") +tracks/4/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -402,23 +277,11 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -8 ) ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ true ] } -[sub_resource type="Animation" id=8] +[sub_resource type="Animation" id=7] length = 0.3 loop = true tracks/0/type = "value" @@ -434,7 +297,7 @@ tracks/0/keys = { "values": [ 32, 33, 34, 35 ] } tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/path = NodePath("Sprite:vframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -442,11 +305,11 @@ tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ) ] +"update": 1, +"values": [ 13 ] } tracks/2/type = "value" -tracks/2/path = NodePath("Sprite:vframes") +tracks/2/path = NodePath("Sprite:hframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -455,10 +318,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 8 ] } tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:hframes") +tracks/3/path = NodePath("Sprite:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -466,11 +329,11 @@ tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 8 ] +"update": 0, +"values": [ Vector2( 0, -8 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:position") +tracks/4/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -478,23 +341,11 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -8 ) ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ true ] } -[sub_resource type="Animation" id=9] +[sub_resource type="Animation" id=8] length = 0.2 loop = true tracks/0/type = "value" @@ -510,7 +361,7 @@ tracks/0/keys = { "values": [ 48, 49, 50 ] } tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/path = NodePath("Sprite:vframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -518,11 +369,11 @@ tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ) ] +"update": 1, +"values": [ 13 ] } tracks/2/type = "value" -tracks/2/path = NodePath("Sprite:vframes") +tracks/2/path = NodePath("Sprite:hframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -531,10 +382,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 8 ] } tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:hframes") +tracks/3/path = NodePath("Sprite:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -542,11 +393,11 @@ tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 8 ] +"update": 0, +"values": [ Vector2( 0, -8 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:position") +tracks/4/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -554,23 +405,11 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -8 ) ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ true ] } -[sub_resource type="Animation" id=10] +[sub_resource type="Animation" id=9] length = 0.1 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") @@ -585,7 +424,7 @@ tracks/0/keys = { "values": [ 72, 73 ] } tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/path = NodePath("Sprite:vframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -593,11 +432,11 @@ tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ) ] +"update": 1, +"values": [ 13 ] } tracks/2/type = "value" -tracks/2/path = NodePath("Sprite:vframes") +tracks/2/path = NodePath("Sprite:hframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -606,10 +445,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 8 ] } tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:hframes") +tracks/3/path = NodePath("Sprite:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -617,11 +456,11 @@ tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 8 ] +"update": 0, +"values": [ Vector2( 0, -8 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:position") +tracks/4/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -629,23 +468,11 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -8 ) ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ true ] } -[sub_resource type="Animation" id=11] +[sub_resource type="Animation" id=10] length = 0.5 loop = true tracks/0/type = "value" @@ -661,7 +488,7 @@ tracks/0/keys = { "values": [ 8, 9, 10, 11, 12, 13 ] } tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/path = NodePath("Sprite:vframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -669,11 +496,11 @@ tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ) ] +"update": 1, +"values": [ 13 ] } tracks/2/type = "value" -tracks/2/path = NodePath("Sprite:vframes") +tracks/2/path = NodePath("Sprite:hframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -682,10 +509,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 8 ] } tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:hframes") +tracks/3/path = NodePath("Sprite:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -693,11 +520,11 @@ tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 8 ] +"update": 0, +"values": [ Vector2( 0, -8 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:position") +tracks/4/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -705,23 +532,11 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -8 ) ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ true ] } -[sub_resource type="Animation" id=12] +[sub_resource type="Animation" id=11] length = 0.3 loop = true tracks/0/type = "value" @@ -737,7 +552,7 @@ tracks/0/keys = { "values": [ 45, 46, 47 ] } tracks/1/type = "value" -tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/path = NodePath("Sprite:vframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -745,11 +560,11 @@ tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Color( 0, 0, 0, 0 ) ] +"update": 1, +"values": [ 13 ] } tracks/2/type = "value" -tracks/2/path = NodePath("Sprite:vframes") +tracks/2/path = NodePath("Sprite:hframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -758,10 +573,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, -"values": [ 13 ] +"values": [ 8 ] } tracks/3/type = "value" -tracks/3/path = NodePath("Sprite:hframes") +tracks/3/path = NodePath("Sprite:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -769,11 +584,11 @@ tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ 8 ] +"update": 0, +"values": [ Vector2( 0, -8 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("Sprite:position") +tracks/4/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -781,18 +596,6 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -8 ) ] -} -tracks/5/type = "value" -tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/keys = { -"times": PoolRealArray( 0 ), -"transitions": PoolRealArray( 1 ), "update": 1, "values": [ true ] } @@ -813,8 +616,7 @@ position = Vector2( 1.90735e-06, -7 ) scale = Vector2( 3.83333, 3.83333 ) texture = ExtResource( 7 ) texture_scale = 3.07 -color = Color( 0.262745, 0.890196, 0.937255, 1 ) -energy = 0.61 +color = Color( 0.87451, 0.976471, 0.984314, 1 ) range_height = -2048.0 range_item_cull_mask = 15 shadow_enabled = true @@ -822,11 +624,11 @@ shadow_item_cull_mask = 15 [node name="Sprite" type="Sprite" parent="."] self_modulate = Color( 0.482353, 0.694118, 0.819608, 1 ) -position = Vector2( 8, -8 ) +position = Vector2( 0, -8 ) texture = ExtResource( 8 ) vframes = 13 -hframes = 4 -frame = 12 +hframes = 8 +frame = 33 [node name="SordRange" type="Area2D" parent="Sprite"] position = Vector2( -8, 8 ) @@ -835,6 +637,7 @@ collision_mask = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/SordRange"] position = Vector2( 14, -6 ) shape = SubResource( 2 ) +disabled = true [node name="LightBeamInitPoint" type="Position2D" parent="Sprite"] position = Vector2( 14, 2 ) @@ -844,24 +647,12 @@ autoplay = "idle" anims/attack_left = SubResource( 3 ) anims/attack_right = SubResource( 4 ) anims/die = SubResource( 5 ) -anims/fade_in = SubResource( 6 ) -anims/fall = SubResource( 7 ) -anims/idle = SubResource( 8 ) -anims/jump = SubResource( 9 ) -anims/pre_jump = SubResource( 10 ) -anims/run = SubResource( 11 ) -anims/wall_slide = SubResource( 12 ) - -[node name="ScreenOverlay" type="CanvasLayer" parent="."] -layer = 128 - -[node name="CanvasModulate" type="ColorRect" parent="ScreenOverlay"] -anchor_right = 1.0 -anchor_bottom = 1.0 -color = Color( 0, 0, 0, 0 ) -__meta__ = { -"_edit_use_anchors_": false -} +anims/fall = SubResource( 6 ) +anims/idle = SubResource( 7 ) +anims/jump = SubResource( 8 ) +anims/pre_jump = SubResource( 9 ) +anims/run = SubResource( 10 ) +anims/wall_slide = SubResource( 11 ) [node name="DashTimeout" type="Timer" parent="."] wait_time = 0.1 diff --git a/src/Actors/WiseOldDude/WiseOldDude.tscn b/src/Actors/WiseOldDude/WiseOldDude.tscn index 94b673e..91d5bf5 100644 --- a/src/Actors/WiseOldDude/WiseOldDude.tscn +++ b/src/Actors/WiseOldDude/WiseOldDude.tscn @@ -1,7 +1,35 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=4 format=2] [ext_resource path="res://src/Actors/WiseOldDude/wize_old_dude.png" type="Texture" id=1] +[sub_resource type="Animation" id=2] +resource_name = "fade" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 17 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:self_modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} + [sub_resource type="Animation" id=1] resource_name = "idle" length = 0.8 @@ -22,12 +50,14 @@ tracks/0/keys = { [node name="WiseOldDude" type="Node2D"] [node name="Sprite" type="Sprite" parent="."] -position = Vector2( 0, -16 ) +self_modulate = Color( 1, 1, 1, 0 ) +position = Vector2( 9.53674e-07, -11 ) +scale = Vector2( 0.6875, 0.6875 ) texture = ExtResource( 1 ) vframes = 6 hframes = 9 -frame = 18 +frame = 17 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -autoplay = "idle" +anims/fade = SubResource( 2 ) anims/idle = SubResource( 1 ) diff --git a/src/CutScenes/ChallengeCutscene.tscn b/src/CutScenes/ChallengeCutscene.tscn index 5b67f1a..674410b 100644 --- a/src/CutScenes/ChallengeCutscene.tscn +++ b/src/CutScenes/ChallengeCutscene.tscn @@ -84,7 +84,7 @@ layer = 2 scale = Vector2( 0.533333, 0.533333 ) texture = ExtResource( 2 ) centered = false -offset = Vector2( 600, 50 ) +offset = Vector2( 900, 50 ) flip_h = true [node name="ColorRect" type="ColorRect" parent="Overlay"] diff --git a/src/CutScenes/IntroCutscene.gd b/src/CutScenes/IntroCutscene.gd new file mode 100644 index 0000000..5259f3b --- /dev/null +++ b/src/CutScenes/IntroCutscene.gd @@ -0,0 +1,56 @@ +extends CutScene + +func _ready() -> void: + start_scene() + +func start_scene(camera:Camera2D = null): + + var text_show_delay = 2 + var no_text_delay = 1 + + $Wind.play() + $Wind/Tween.interpolate_property($Wind, "volume_db", $Wind.volume_db, -15, 0.5) + $Wind/Tween.start() + + $MarginContainer/Text.text = ''; + $AnimationPlayer.play("start") + yield($AnimationPlayer, "animation_finished") + + $MarginContainer/Text.text = 'breathe...'; + $AnimationPlayer.play("fade-text") + yield($AnimationPlayer, "animation_finished") + yield(get_tree().create_timer(text_show_delay), "timeout") + $AnimationPlayer.play_backwards("fade-text") + yield($AnimationPlayer, "animation_finished") + + yield(get_tree().create_timer(no_text_delay), "timeout") + + $MarginContainer/Text.text = 'you know you can do this'; + $AnimationPlayer.play("fade-text") + yield($AnimationPlayer, "animation_finished") + yield(get_tree().create_timer(text_show_delay), "timeout") + $AnimationPlayer.play_backwards("fade-text") + yield($AnimationPlayer, "animation_finished") + + yield(get_tree().create_timer(no_text_delay), "timeout") + + $MarginContainer/Text.text = 'once again...'; + $AnimationPlayer.play("fade-text") + yield($AnimationPlayer, "animation_finished") + yield(get_tree().create_timer(text_show_delay), "timeout") + $AnimationPlayer.play_backwards("fade-text") + yield($AnimationPlayer, "animation_finished") + + yield(get_tree().create_timer(no_text_delay), "timeout") + + $Wind.play() + $Wind/Tween.interpolate_property($Wind, "volume_db", $Wind.volume_db, -30, 0.5) + $Wind/Tween.start() + + $AnimationPlayer.play_backwards("start") + yield($AnimationPlayer, "animation_finished") + _on_scene_exited() + +func _on_scene_exited(): + end_scene() + GameState.start_new_game(false, false) diff --git a/src/CutScenes/IntroCutscene.tscn b/src/CutScenes/IntroCutscene.tscn new file mode 100644 index 0000000..09af773 --- /dev/null +++ b/src/CutScenes/IntroCutscene.tscn @@ -0,0 +1,169 @@ +[gd_scene load_steps=18 format=2] + +[ext_resource path="res://src/CutScenes/IntroCutscene.gd" type="Script" id=1] +[ext_resource path="res://assets/Theme/menu_font.tres" type="DynamicFont" id=2] +[ext_resource path="res://assets/Audio/SFX/wind01.ogg" type="AudioStream" id=3] + +[sub_resource type="Gradient" id=1] +colors = PoolColorArray( 0.180392, 0.352941, 0.537255, 1, 0.121569, 0.262745, 0.415686, 1 ) + +[sub_resource type="GradientTexture" id=2] +gradient = SubResource( 1 ) + +[sub_resource type="Gradient" id=3] +offsets = PoolRealArray( 0.00431034, 1 ) +colors = PoolColorArray( 1, 1, 1, 0.815686, 1, 1, 1, 0.294118 ) + +[sub_resource type="GradientTexture" id=4] +gradient = SubResource( 3 ) + +[sub_resource type="Curve" id=5] +_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.553738 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=6] +curve = SubResource( 5 ) + +[sub_resource type="ParticlesMaterial" id=7] +emission_shape = 2 +emission_box_extents = Vector3( 250, 1, 1 ) +flag_disable_z = true +direction = Vector3( 0, 1, 0 ) +gravity = Vector3( 0, 0, 0 ) +initial_velocity = 15.0 +initial_velocity_random = 0.25 +orbit_velocity = 0.0 +orbit_velocity_random = 0.0 +linear_accel = 1.0 +linear_accel_random = 0.25 +scale = 3.09 +scale_random = 0.25 +scale_curve = SubResource( 6 ) +color_ramp = SubResource( 4 ) + +[sub_resource type="Animation" id=8] +resource_name = "fade-text" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath("MarginContainer/Text:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=9] +length = 2.0 +tracks/0/type = "value" +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 2 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 1 ), Color( 1, 1, 1, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("MarginContainer/Text:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 2 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ) ] +} + +[sub_resource type="Gradient" id=10] +colors = PoolColorArray( 1, 1, 1, 0.243137, 1, 1, 1, 0.0392157 ) + +[sub_resource type="GradientTexture" id=11] +gradient = SubResource( 10 ) + +[sub_resource type="Curve" id=12] +_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.988235, 0.906818 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=13] +curve = SubResource( 12 ) + +[sub_resource type="ParticlesMaterial" id=14] +emission_shape = 2 +emission_box_extents = Vector3( 250, 1, 1 ) +flag_disable_z = true +direction = Vector3( 0, 1, 0 ) +gravity = Vector3( 0, 0, 0 ) +initial_velocity = 50.0 +orbit_velocity = 0.0 +orbit_velocity_random = 0.0 +scale = 15.0 +scale_random = 0.8 +scale_curve = SubResource( 13 ) +color_ramp = SubResource( 11 ) + +[node name="IntroCutscene" type="Node2D"] +modulate = Color( 0.6, 0.6, 0.6, 1 ) +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( -86, 318 ) +rotation = 4.70806 +scale = Vector2( 0.163033, 650.745 ) +texture = SubResource( 2 ) +centered = false + +[node name="BG" type="Particles2D" parent="."] +position = Vector2( 251, -15 ) +amount = 200 +lifetime = 15.0 +preprocess = 15.0 +explosiveness = 0.1 +process_material = SubResource( 7 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/fade-text = SubResource( 8 ) +anims/start = SubResource( 9 ) + +[node name="MarginContainer" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_right = 481.0 +margin_bottom = 271.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Text" type="Label" parent="MarginContainer"] +modulate = Color( 1, 1, 1, 0 ) +margin_top = 125.0 +margin_right = 481.0 +margin_bottom = 146.0 +custom_fonts/font = ExtResource( 2 ) +text = "Every thing looks familiar..." +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="FG" type="Particles2D" parent="."] +position = Vector2( 248, -13 ) +amount = 20 +lifetime = 10.0 +preprocess = 5.0 +explosiveness = 0.2 +process_material = SubResource( 14 ) + +[node name="Wind" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) +volume_db = -30.0 +autoplay = true + +[node name="Tween" type="Tween" parent="Wind"] diff --git a/src/GameWorld/AmbiantLighting.gd b/src/GameWorld/AmbiantLighting.gd new file mode 100644 index 0000000..9ca7949 --- /dev/null +++ b/src/GameWorld/AmbiantLighting.gd @@ -0,0 +1,16 @@ +extends Node2D + + +var LIGHTS = { + "DAY": Color(1, 1, 1, 1), + "NIGHT": Color("#848282") +} + +var _current_light = 'DAY' + +func change_light(light: String) -> void: + if _current_light != light: + $Tween.stop_all() + _current_light = light + $Tween.interpolate_property($CanvasModulate, "color" ,$CanvasModulate.color, LIGHTS[light],0.5 ) + $Tween.start() diff --git a/src/GameWorld/AmbiantLighting.tscn b/src/GameWorld/AmbiantLighting.tscn new file mode 100644 index 0000000..32a3eb3 --- /dev/null +++ b/src/GameWorld/AmbiantLighting.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://src/GameWorld/AmbiantLighting.gd" type="Script" id=1] + +[sub_resource type="Animation" id=1] +resource_name = "DAY" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath("CanvasModulate:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "NIGHT" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath("CanvasModulate:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 0.615686, 0.223529, 0.223529, 1 ) ] +} + +[node name="AmbiantLighting" type="Node2D"] +script = ExtResource( 1 ) + +[node name="CanvasModulate" type="CanvasModulate" parent="."] +color = Color( 0.517647, 0.509804, 0.509804, 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "DAY" +anims/DAY = SubResource( 1 ) +anims/NIGHT = SubResource( 2 ) + +[node name="Tween" type="Tween" parent="."] diff --git a/src/GameWorld/GameWorld.gd b/src/GameWorld/GameWorld.gd index ed47002..6a99d50 100644 --- a/src/GameWorld/GameWorld.gd +++ b/src/GameWorld/GameWorld.gd @@ -1,9 +1,7 @@ extends Node2D -var _Cutscenes = { - "old_man_intro": "res://src/CutScenes/ChallengeCutscene.tscn" -} + func _ready() -> void: @@ -11,17 +9,9 @@ func _ready() -> void: $Player/Camera2D.limit_left = -45 $Player/Camera2D.limit_right = 700 - - - -func _on_OldDudeIntroArea_body_entered(body: Node) -> void: - if body.name == 'Player': - AudioManager.play_music(AudioManager.Music.Abandon) - GameState.start_cutscene() - var scene = (load(_Cutscenes.old_man_intro)).instance() - add_child(scene) - scene.start_scene($Player/Camera2D) - yield(scene, "cutscene_finished") - GameState.end_cutscene() - pass # Replace with function body. +func _process(delta: float) -> void: + if $Player.global_position.x > 330: + $AmbiantLighting.change_light("NIGHT") + else: + $AmbiantLighting.change_light("DAY") diff --git a/src/GameWorld/GameWorld.tscn b/src/GameWorld/GameWorld.tscn index a6ee253..dcbdce0 100644 --- a/src/GameWorld/GameWorld.tscn +++ b/src/GameWorld/GameWorld.tscn @@ -1,121 +1,28 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://src/HUD/HUD.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/Tiles/SolidsTileMap.tscn" type="PackedScene" id=2] +[ext_resource path="res://src/GameWorld/PreGame.tscn" type="PackedScene" id=2] [ext_resource path="res://src/Actors/Player.tscn" type="PackedScene" id=3] -[ext_resource path="res://assets/Tiles/background_0.png" type="Texture" id=4] [ext_resource path="res://src/GameWorld/GameWorld.gd" type="Script" id=5] -[ext_resource path="res://assets/Tiles/background_1.png" type="Texture" id=6] -[ext_resource path="res://assets/Tiles/background_2.png" type="Texture" id=7] -[ext_resource path="res://src/Actors/WiseOldDude/WiseOldDude.tscn" type="PackedScene" id=8] -[ext_resource path="res://assets/Tiles/SemiSolidsTileMap.tscn" type="PackedScene" id=9] - -[sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 7, 37 ) +[ext_resource path="res://src/GameWorld/AmbiantLighting.tscn" type="PackedScene" id=10] [node name="GameWorld" type="Node2D"] script = ExtResource( 5 ) [node name="HUD" parent="." instance=ExtResource( 1 )] +layer = 2 -[node name="ParallaxBackground" type="ParallaxBackground" parent="."] - -[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] -motion_scale = Vector2( 0.6, 1 ) - -[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer"] -margin_left = -142.0 -margin_top = -103.0 -margin_right = 443.0 -margin_bottom = 255.0 -texture = ExtResource( 4 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer"] -margin_left = 443.0 -margin_top = -103.0 -margin_right = 1028.0 -margin_bottom = 255.0 -texture = ExtResource( 4 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"] -motion_scale = Vector2( 0.8, 1 ) - -[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer2"] -margin_left = -142.0 -margin_top = -103.0 -margin_right = 443.0 -margin_bottom = 255.0 -texture = ExtResource( 6 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer2"] -margin_left = 443.0 -margin_top = -103.0 -margin_right = 1028.0 -margin_bottom = 255.0 -texture = ExtResource( 6 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"] -motion_scale = Vector2( 0.9, 1 ) - -[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer3"] -margin_left = -142.0 -margin_top = -103.0 -margin_right = 443.0 -margin_bottom = 255.0 -texture = ExtResource( 7 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer3"] -margin_left = 443.0 -margin_top = -103.0 -margin_right = 1028.0 -margin_bottom = 255.0 -texture = ExtResource( 7 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="SolidPlatforms" type="Node2D" parent="."] - -[node name="SemiSolidsTileMap" parent="SolidPlatforms" instance=ExtResource( 9 )] -tile_data = PoolIntArray( 524316, 1, 0, 524317, 1, 1, 524318, 1, 1, 524319, 1, 1, 524320, 1, 1, 524321, 1, 1, 524322, 1, 2, 589852, 1, 65536, 589853, 1, 65537, 589854, 1, 65537, 589855, 1, 65537, 589856, 1, 65537, 589857, 1, 65537, 589858, 1, 65538, 655375, 0, 0, 655376, 0, 131076, 655377, 0, 1, 655378, 0, 1, 655379, 0, 131076, 655380, 0, 1, 655381, 0, 1, 655382, 0, 1, 655383, 0, 131076, 655384, 0, 131076, 655385, 0, 1, 655386, 0, 131076, 655387, 0, 2, 655388, 1, 65536, 655389, 1, 65537, 655390, 1, 65537, 655391, 1, 65537, 655392, 1, 65537, 655393, 1, 65537, 655394, 1, 65538, 720911, 0, 65541, 720912, 0, 65537, 720913, 0, 65537, 720914, 0, 65537, 720915, 0, 65537, 720916, 0, 65537, 720917, 0, 65537, 720918, 0, 65537, 720919, 0, 65537, 720920, 0, 3, 720921, 0, 131073, 720922, 0, 4, 720923, 0, 131074, 720924, 1, 65536, 720925, 1, 0, 720926, 1, 131073, 720927, 1, 131073, 720928, 1, 131073, 720929, 1, 0, 720930, 1, 65538, 786447, 0, 65541, 786448, 0, 65537, 786449, 0, 65537, 786450, 0, 65537, 786451, 0, 65537, 786452, 0, 65537, 786453, 0, 65537, 786454, 0, 65537, 786455, 0, 65537, 786456, 0, 65538, 786457, 1, 0, 786458, 1, 1, 786459, 1, 1, 786460, 1, 0, 786461, 1, 65538, 786462, 0, 0, 786463, 0, 131076, 786464, 0, 2, 786465, 1, 65536, 786466, 1, 65538, 851983, 0, 65541, 851984, 0, 65537, 851985, 0, 65537, 851986, 0, 65537, 851987, 0, 65537, 851988, 0, 65537, 851989, 0, 65537, 851990, 0, 65537, 851991, 0, 65537, 851992, 0, 65538, 851993, 1, 65536, 851994, 1, 65537, 851995, 1, 65537, 851996, 1, 65537, 851997, 1, 65538, 851998, 0, 65541, 851999, 0, 65537, 852000, 0, 65539, 852001, 1, 65536, 852002, 1, 65538, 917519, 0, 131072, 917520, 0, 4, 917521, 0, 131073, 917522, 0, 131073, 917523, 0, 4, 917524, 0, 4, 917525, 0, 131073, 917526, 0, 131073, 917527, 0, 4, 917528, 0, 131074, 917529, 1, 131072, 917530, 1, 131073, 917531, 1, 131073, 917532, 1, 131073, 917533, 1, 131074, 917534, 0, 65541, 917535, 0, 65537, 917536, 0, 65539, 917537, 1, 131072, 917538, 1, 131074, 983070, 0, 131072, 983071, 0, 131073, 983072, 0, 131074 ) - -[node name="SolidsTileMap" parent="SolidPlatforms" instance=ExtResource( 2 )] -tile_data = PoolIntArray( -65544, 0, 0, -65543, 0, 1, -65542, 0, 1, -65541, 0, 131076, -65540, 0, 1, -65539, 0, 1, -65538, 0, 1, -65537, 0, 2, -131041, 0, 0, -131040, 0, 131076, -131039, 0, 131076, -131038, 0, 1, -131037, 0, 131076, -131036, 0, 1, -131035, 0, 1, -131034, 0, 1, -131033, 0, 131076, -131032, 0, 1, -131031, 0, 1, -131030, 0, 131076, -131029, 0, 1, -131028, 0, 2, -8, 0, 65541, -7, 0, 65537, -6, 0, 65537, -5, 0, 65537, -4, 0, 65537, -3, 0, 65537, -2, 0, 65537, -1, 0, 65539, -65505, 0, 131072, -65504, 0, 4, -65503, 0, 5, -65502, 0, 3, -65501, 0, 4, -65500, 0, 131073, -65499, 0, 5, -65498, 0, 65537, -65497, 0, 65537, -65496, 0, 65537, -65495, 0, 65537, -65494, 0, 65537, -65493, 0, 65537, -65492, 0, 65538, 65528, 0, 65541, 65529, 0, 65537, 65530, 0, 65537, 65531, 0, 65537, 65532, 0, 65537, 65533, 0, 65537, 65534, 0, 65537, 65535, 0, 65538, 33, 0, 131072, 34, 0, 131074, 37, 0, 65536, 38, 0, 65537, 39, 0, 65537, 40, 0, 65537, 41, 0, 65537, 42, 0, 65537, 43, 0, 65537, 44, 0, 65539, 131064, 0, 65536, 131065, 0, 65537, 131066, 0, 65537, 131067, 0, 65537, 131068, 0, 65537, 131069, 0, 65537, 131070, 0, 65537, 131071, 0, 65538, 65573, 0, 65536, 65574, 0, 65537, 65575, 0, 65537, 65576, 0, 65537, 65577, 0, 65537, 65578, 0, 65537, 65579, 0, 65537, 65580, 0, 65539, 196600, 0, 65541, 196601, 0, 65537, 196602, 0, 65537, 196603, 0, 65537, 196604, 0, 65537, 196605, 0, 65537, 196606, 0, 65537, 196607, 0, 65539, 131109, 0, 65536, 131110, 0, 65537, 131111, 0, 65537, 131112, 0, 65537, 131113, 0, 65537, 131114, 0, 65537, 131115, 0, 65537, 131116, 0, 65538, 262136, 0, 65541, 262137, 0, 65537, 262138, 0, 65537, 262139, 0, 65537, 262140, 0, 65537, 262141, 0, 65537, 262142, 0, 65537, 262143, 0, 65538, 196645, 0, 65541, 196646, 0, 65537, 196647, 0, 65537, 196648, 0, 65537, 196649, 0, 65537, 196650, 0, 65537, 196651, 0, 65537, 196652, 0, 65539, 327672, 0, 65541, 327673, 0, 65537, 327674, 0, 65537, 327675, 0, 65537, 327676, 0, 65537, 327677, 0, 65537, 327678, 0, 65537, 327679, 0, 65538, 262181, 0, 65541, 262182, 0, 65537, 262183, 0, 65537, 262184, 0, 65537, 262185, 0, 65537, 262186, 0, 65537, 262187, 0, 65537, 262188, 0, 65539, 393208, 0, 65536, 393209, 0, 65537, 393210, 0, 65537, 393211, 0, 65537, 393212, 0, 65537, 393213, 0, 65537, 393214, 0, 65537, 393215, 0, 65538, 327717, 0, 131072, 327718, 0, 131073, 327719, 0, 5, 327720, 0, 65537, 327721, 0, 65537, 327722, 0, 65537, 327723, 0, 65537, 327724, 0, 65538, 458744, 0, 65541, 458745, 0, 65537, 458746, 0, 65537, 458747, 0, 65537, 458748, 0, 65537, 458749, 0, 65537, 458750, 0, 65537, 458751, 0, 65538, 393255, 0, 65536, 393256, 0, 65537, 393257, 0, 65537, 393258, 0, 65537, 393259, 0, 65537, 393260, 0, 65539, 524280, 0, 65541, 524281, 0, 65537, 524282, 0, 65537, 524283, 0, 65537, 524284, 0, 65537, 524285, 0, 65537, 524286, 0, 65537, 524287, 0, 65538, 458791, 0, 131072, 458792, 0, 131073, 458793, 0, 131073, 458794, 0, 4, 458795, 0, 5, 458796, 0, 65538, 589816, 0, 65541, 589817, 0, 65537, 589818, 0, 65537, 589819, 0, 65537, 589820, 0, 65537, 589821, 0, 65537, 589822, 0, 65537, 589823, 0, 65538, 524331, 0, 65541, 524332, 0, 65538, 655352, 0, 65536, 655353, 0, 65537, 655354, 0, 65537, 655355, 0, 65537, 655356, 0, 65537, 655357, 0, 65537, 655358, 0, 65537, 655359, 0, 65539, 589867, 0, 65541, 589868, 0, 65538, 720888, 0, 65541, 720889, 0, 65537, 720890, 0, 65537, 720891, 0, 65537, 720892, 0, 65537, 720893, 0, 65537, 720894, 0, 65537, 720895, 0, 131075, 655360, 0, 2, 655399, 0, 0, 655400, 0, 1, 655401, 0, 1, 655402, 0, 131076, 655403, 0, 131077, 655404, 0, 65539, 786424, 0, 65541, 786425, 0, 65537, 786426, 0, 65537, 786427, 0, 65537, 786428, 0, 65537, 786429, 0, 65537, 786430, 0, 65537, 786431, 0, 65537, 720896, 0, 131075, 720897, 0, 2, 720920, 0, 0, 720921, 0, 2, 720935, 0, 131072, 720936, 0, 131073, 720937, 0, 131073, 720938, 0, 4, 720939, 0, 4, 720940, 0, 131074, 851960, 0, 65536, 851961, 0, 65537, 851962, 0, 65537, 851963, 0, 65537, 851964, 0, 65537, 851965, 0, 65537, 851966, 0, 65537, 851967, 0, 65537, 786432, 0, 65537, 786433, 0, 131075, 786434, 0, 2, 786456, 0, 65541, 786457, 0, 65538, 786466, 0, 0, 786467, 0, 2, 917496, 0, 65541, 917497, 0, 65537, 917498, 0, 65537, 917499, 0, 65537, 917500, 0, 65537, 917501, 0, 65537, 917502, 0, 65537, 917503, 0, 65537, 851968, 0, 65537, 851969, 0, 65537, 851970, 0, 131075, 851971, 0, 2, 851987, 0, 0, 851988, 0, 2, 851992, 0, 65536, 851993, 0, 65539, 852002, 0, 65541, 852003, 0, 65539, 983032, 0, 65541, 983033, 0, 65537, 983034, 0, 65537, 983035, 0, 65537, 983036, 0, 65537, 983037, 0, 65537, 983038, 0, 65537, 983039, 0, 65537, 917504, 0, 65537, 917505, 0, 65537, 917506, 0, 65537, 917507, 0, 131075, 917508, 0, 1, 917509, 0, 131076, 917510, 0, 1, 917511, 0, 1, 917512, 0, 1, 917513, 0, 131076, 917514, 0, 131076, 917515, 0, 131076, 917516, 0, 131076, 917517, 0, 131076, 917518, 0, 1, 917519, 0, 131076, 917520, 0, 131076, 917521, 0, 1, 917522, 0, 1, 917523, 0, 131077, 917524, 0, 131075, 917525, 0, 1, 917526, 0, 131076, 917527, 0, 1, 917528, 0, 131077, 917529, 0, 131075, 917530, 0, 131076, 917531, 0, 1, 917532, 0, 1, 917533, 0, 131076, 917534, 0, 1, 917535, 0, 1, 917536, 0, 131076, 917537, 0, 131076, 917538, 0, 131077, 917539, 0, 131075, 917540, 0, 1, 917541, 0, 1, 917542, 0, 131076, 917543, 0, 1, 917544, 0, 1, 917545, 0, 1, 917546, 0, 1, 917547, 0, 1, 917548, 0, 2, 1048568, 0, 65536, 1048569, 0, 65537, 1048570, 0, 65537, 1048571, 0, 65537, 1048572, 0, 65537, 1048573, 0, 65537, 1048574, 0, 65537, 1048575, 0, 65537, 983040, 0, 65537, 983041, 0, 65537, 983042, 0, 65537, 983043, 0, 65537, 983044, 0, 65537, 983045, 0, 65537, 983046, 0, 65537, 983047, 0, 65537, 983048, 0, 65537, 983049, 0, 65537, 983050, 0, 65537, 983051, 0, 65537, 983052, 0, 65537, 983053, 0, 65537, 983054, 0, 65537, 983055, 0, 65537, 983056, 0, 65537, 983057, 0, 65537, 983058, 0, 65537, 983059, 0, 65537, 983060, 0, 65537, 983061, 0, 65537, 983062, 0, 65537, 983063, 0, 65537, 983064, 0, 65537, 983065, 0, 65537, 983066, 0, 65537, 983067, 0, 65537, 983068, 0, 65537, 983069, 0, 65537, 983070, 0, 65537, 983071, 0, 65537, 983072, 0, 65537, 983073, 0, 65537, 983074, 0, 65537, 983075, 0, 65537, 983076, 0, 65537, 983077, 0, 65537, 983078, 0, 65537, 983079, 0, 65537, 983080, 0, 65537, 983081, 0, 65537, 983082, 0, 65537, 983083, 0, 65537, 983084, 0, 65539, 1114104, 0, 131072, 1114105, 0, 131073, 1114106, 0, 131073, 1114107, 0, 131073, 1114108, 0, 131073, 1114109, 0, 131073, 1114110, 0, 131073, 1114111, 0, 4, 1048576, 0, 131073, 1048577, 0, 131073, 1048578, 0, 131073, 1048579, 0, 131073, 1048580, 0, 131073, 1048581, 0, 131073, 1048582, 0, 131073, 1048583, 0, 4, 1048584, 0, 131073, 1048585, 0, 131073, 1048586, 0, 131073, 1048587, 0, 4, 1048588, 0, 4, 1048589, 0, 131073, 1048590, 0, 4, 1048591, 0, 131073, 1048592, 0, 4, 1048593, 0, 4, 1048594, 0, 4, 1048595, 0, 131073, 1048596, 0, 131073, 1048597, 0, 131073, 1048598, 0, 131073, 1048599, 0, 4, 1048600, 0, 4, 1048601, 0, 131073, 1048602, 0, 4, 1048603, 0, 131073, 1048604, 0, 4, 1048605, 0, 131073, 1048606, 0, 131073, 1048607, 0, 4, 1048608, 0, 131073, 1048609, 0, 4, 1048610, 0, 131073, 1048611, 0, 4, 1048612, 0, 4, 1048613, 0, 131073, 1048614, 0, 131073, 1048615, 0, 4, 1048616, 0, 4, 1048617, 0, 131073, 1048618, 0, 4, 1048619, 0, 131073, 1048620, 0, 131074 ) - -[node name="WiseOldDude" parent="." instance=ExtResource( 8 )] -position = Vector2( 643, 161 ) - -[node name="CutsceneAreas" type="Node2D" parent="."] - -[node name="OldDudeIntroArea" type="Area2D" parent="CutsceneAreas"] -position = Vector2( 560, 182 ) -collision_layer = 0 - -[node name="CollisionShape2D" type="CollisionShape2D" parent="CutsceneAreas/OldDudeIntroArea"] -position = Vector2( 0, -27 ) -shape = SubResource( 1 ) +[node name="PreGame" parent="." instance=ExtResource( 2 )] [node name="Player" parent="." instance=ExtResource( 3 )] -position = Vector2( 77, 218 ) +position = Vector2( 73, 222 ) abilities = { "attack": true, "dash": true, "light_beam": true, "wall_jump": true } -[connection signal="body_entered" from="CutsceneAreas/OldDudeIntroArea" to="." method="_on_OldDudeIntroArea_body_entered"] + +[node name="AmbiantLighting" parent="." instance=ExtResource( 10 )] + +[editable path="AmbiantLighting"] diff --git a/src/GameWorld/PreGame.gd b/src/GameWorld/PreGame.gd new file mode 100644 index 0000000..45838f7 --- /dev/null +++ b/src/GameWorld/PreGame.gd @@ -0,0 +1,27 @@ +extends Node2D +var _Cutscenes = { + "old_man_intro": "res://src/CutScenes/ChallengeCutscene.tscn" +} +var _played_old_man_cutscene = false + +func _on_OldDudeIntroArea_body_entered(body: Node) -> void: + if _played_old_man_cutscene: return + if body.name == 'Player': + var old_man_animation_palyer = $WiseOldDude/AnimationPlayer + old_man_animation_palyer.play("fade") + yield(old_man_animation_palyer, "animation_finished") + old_man_animation_palyer.play("idle") + + _played_old_man_cutscene = true + AudioManager.play_music(AudioManager.Music.Abandon) + GameState.start_cutscene() + var scene = (load(_Cutscenes.old_man_intro)).instance() + add_child(scene) + scene.start_scene(body.get_node("Camera2D")) + yield(scene, "cutscene_finished") + + old_man_animation_palyer.play_backwards("fade") + yield(old_man_animation_palyer, "animation_finished") + + GameState.end_cutscene(GameState.States.NEW_GAME) + pass # Replace with function body. diff --git a/src/GameWorld/PreGame.tscn b/src/GameWorld/PreGame.tscn new file mode 100644 index 0000000..0fadecb --- /dev/null +++ b/src/GameWorld/PreGame.tscn @@ -0,0 +1,246 @@ +[gd_scene load_steps=21 format=2] + +[ext_resource path="res://assets/Tiles/background_0.png" type="Texture" id=1] +[ext_resource path="res://assets/Tiles/background_1.png" type="Texture" id=2] +[ext_resource path="res://assets/Tiles/tileset.png" type="Texture" id=3] +[ext_resource path="res://assets/Tiles/background_2.png" type="Texture" id=4] +[ext_resource path="res://assets/Tiles/SolidsTileMap.tscn" type="PackedScene" id=5] +[ext_resource path="res://src/Actors/WiseOldDude/WiseOldDude.tscn" type="PackedScene" id=6] +[ext_resource path="res://assets/Tiles/SemiSolidsTileMap.tscn" type="PackedScene" id=7] +[ext_resource path="res://src/GameWorld/PreGame.gd" type="Script" id=8] +[ext_resource path="res://assets/Items/torch_ligt_texture.png" type="Texture" id=9] +[ext_resource path="res://src/Scripts/SpawnPoint.tscn" type="PackedScene" id=10] +[ext_resource path="res://src/Actors/Goblin.tscn" type="PackedScene" id=11] +[ext_resource path="res://src/Items/Coin.tscn" type="PackedScene" id=12] + +[sub_resource type="TileSet" id=1] +0/name = "tileset.png 0" +0/texture = ExtResource( 3 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 96, 0, 96, 48 ) +0/tile_mode = 1 +0/autotile/bitmask_mode = 0 +0/autotile/bitmask_flags = [ Vector2( 0, 0 ), 256, Vector2( 0, 1 ), 260, Vector2( 0, 2 ), 4, Vector2( 1, 0 ), 320, Vector2( 1, 1 ), 325, Vector2( 1, 2 ), 5, Vector2( 2, 0 ), 64, Vector2( 2, 1 ), 65, Vector2( 2, 2 ), 1, Vector2( 3, 0 ), 69, Vector2( 3, 1 ), 65, Vector2( 3, 2 ), 321, Vector2( 4, 0 ), 5, Vector2( 4, 2 ), 320, Vector2( 5, 0 ), 261, Vector2( 5, 1 ), 260, Vector2( 5, 2 ), 324 ] +0/autotile/icon_coordinate = Vector2( 0, 0 ) +0/autotile/tile_size = Vector2( 16, 16 ) +0/autotile/spacing = 0 +0/autotile/occluder_map = [ ] +0/autotile/navpoly_map = [ ] +0/autotile/priority_map = [ ] +0/autotile/z_index_map = [ ] +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 +1/name = "tileset.png 1" +1/texture = ExtResource( 3 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 0, 48, 48, 48 ) +1/tile_mode = 1 +1/autotile/bitmask_mode = 0 +1/autotile/bitmask_flags = [ Vector2( 0, 0 ), 256, Vector2( 0, 1 ), 260, Vector2( 0, 2 ), 4, Vector2( 1, 0 ), 320, Vector2( 1, 1 ), 325, Vector2( 1, 2 ), 5, Vector2( 2, 0 ), 64, Vector2( 2, 1 ), 65, Vector2( 2, 2 ), 1 ] +1/autotile/icon_coordinate = Vector2( 0, 0 ) +1/autotile/tile_size = Vector2( 16, 16 ) +1/autotile/spacing = 0 +1/autotile/occluder_map = [ ] +1/autotile/navpoly_map = [ ] +1/autotile/priority_map = [ ] +1/autotile/z_index_map = [ ] +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape_one_way = false +1/shape_one_way_margin = 0.0 +1/shapes = [ ] +1/z_index = 0 + +[sub_resource type="RectangleShape2D" id=37] +extents = Vector2( 7, 37 ) + +[sub_resource type="Gradient" id=38] +colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0.258824 ) + +[sub_resource type="GradientTexture" id=39] +gradient = SubResource( 38 ) + +[sub_resource type="Curve" id=40] +_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.756818 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=41] +curve = SubResource( 40 ) + +[sub_resource type="ParticlesMaterial" id=42] +emission_shape = 2 +emission_box_extents = Vector3( 1, 4, 1 ) +flag_disable_z = true +direction = Vector3( -1, 0, 0 ) +gravity = Vector3( 0, 0, 0 ) +initial_velocity = 10.0 +initial_velocity_random = 0.25 +angular_velocity = 4.0 +angular_velocity_random = 1.0 +orbit_velocity = 0.0 +orbit_velocity_random = 0.0 +scale = 1.5 +scale_random = 0.5 +scale_curve = SubResource( 41 ) +color_ramp = SubResource( 39 ) + +[sub_resource type="Animation" id=43] +resource_name = "default" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Light2D:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3, 0.5, 0.7, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 0.980392, 0.454902, 0.0313726, 1 ), Color( 0.980392, 0.654902, 0.0313726, 1 ), Color( 0.980392, 0.0745098, 0.0313726, 1 ), Color( 0.917647, 0.309804, 0.14902, 1 ), Color( 0.980392, 0.454902, 0.0313726, 1 ) ] +} + +[node name="PreGame" type="Node2D"] +script = ExtResource( 8 ) + +[node name="ParallaxBackground" type="ParallaxBackground" parent="."] + +[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.6, 1 ) + +[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer"] +margin_left = -142.0 +margin_top = -103.0 +margin_right = 443.0 +margin_bottom = 255.0 +texture = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer"] +margin_left = 443.0 +margin_top = -103.0 +margin_right = 1028.0 +margin_bottom = 255.0 +texture = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.8, 1 ) + +[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer2"] +margin_left = -142.0 +margin_top = -103.0 +margin_right = 443.0 +margin_bottom = 255.0 +texture = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer2"] +margin_left = 443.0 +margin_top = -103.0 +margin_right = 1028.0 +margin_bottom = 255.0 +texture = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.9, 1 ) + +[node name="NinePatchRect" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer3"] +margin_left = -142.0 +margin_top = -103.0 +margin_right = 443.0 +margin_bottom = 255.0 +texture = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="NinePatchRect2" type="NinePatchRect" parent="ParallaxBackground/ParallaxLayer3"] +margin_left = 443.0 +margin_top = -103.0 +margin_right = 1028.0 +margin_bottom = 255.0 +texture = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="SolidPlatforms" type="Node2D" parent="."] + +[node name="SemiSolidsTileMap2" parent="SolidPlatforms" instance=ExtResource( 7 )] +tile_set = SubResource( 1 ) +tile_data = PoolIntArray( -65513, 0, 0, -65512, 0, 1, -65511, 0, 131076, -65510, 0, 131076, -65509, 0, 131076, -65508, 0, 131076, -65507, 0, 131076, -65506, 0, 1, -65505, 0, 1, -65504, 0, 131076, -65503, 0, 1, -65502, 0, 131076, -65501, 0, 131076, -65500, 0, 131076, -65499, 0, 2, 23, 0, 65541, 24, 0, 65537, 25, 0, 65537, 26, 0, 65537, 27, 0, 65537, 28, 0, 65537, 29, 0, 65537, 30, 0, 65537, 31, 0, 65537, 32, 0, 65537, 33, 0, 65537, 34, 0, 65537, 35, 0, 65537, 36, 0, 65537, 37, 0, 65538, 65559, 0, 65536, 65560, 0, 65537, 65561, 0, 65537, 65562, 0, 65537, 65563, 0, 65537, 65564, 0, 65537, 65565, 0, 65537, 65566, 0, 65537, 65567, 0, 65537, 65568, 0, 65537, 65569, 0, 65537, 65570, 0, 65537, 65571, 0, 65537, 65572, 0, 65537, 65573, 0, 131075, 65574, 0, 1, 65575, 0, 131076, 65576, 0, 131076, 65577, 0, 2, 131092, 0, 0, 131093, 0, 131076, 131094, 0, 131076, 131095, 0, 131077, 131096, 0, 65537, 131097, 0, 65537, 131098, 0, 65537, 131099, 0, 65537, 131100, 0, 65537, 131101, 0, 65537, 131102, 0, 65537, 131103, 0, 65537, 131104, 0, 65537, 131105, 0, 65537, 131106, 0, 65537, 131107, 0, 65537, 131108, 0, 65537, 131109, 0, 65537, 131110, 0, 65537, 131111, 0, 65537, 131112, 0, 65537, 131113, 0, 65538, 196628, 0, 65541, 196629, 0, 65537, 196630, 0, 65537, 196631, 0, 65537, 196632, 0, 65537, 196633, 0, 65537, 196634, 0, 65537, 196635, 0, 65537, 196636, 0, 65537, 196637, 0, 65537, 196638, 0, 65537, 196639, 0, 65537, 196640, 0, 65537, 196641, 0, 65537, 196642, 0, 65537, 196643, 0, 65537, 196644, 0, 65537, 196645, 0, 65537, 196646, 0, 65537, 196647, 0, 65537, 196648, 0, 65537, 196649, 0, 65539, 262161, 0, 0, 262162, 0, 131076, 262163, 0, 1, 262164, 0, 131077, 262165, 0, 65537, 262166, 0, 65537, 262167, 0, 65537, 262168, 0, 65537, 262169, 0, 65537, 262170, 0, 65537, 262171, 0, 65537, 262172, 0, 65537, 262173, 0, 65537, 262174, 0, 65537, 262175, 0, 65537, 262176, 0, 65537, 262177, 0, 65537, 262178, 0, 65537, 262179, 0, 65537, 262180, 0, 65537, 262181, 0, 65537, 262182, 0, 65537, 262183, 0, 65537, 262184, 0, 65537, 262185, 0, 65539, 327697, 0, 65536, 327698, 0, 65537, 327699, 0, 65537, 327700, 0, 65537, 327701, 0, 65537, 327702, 0, 65537, 327703, 0, 65537, 327704, 0, 65537, 327705, 0, 65537, 327706, 0, 65537, 327707, 0, 65537, 327708, 0, 65537, 327709, 0, 65537, 327710, 0, 65537, 327711, 0, 65537, 327712, 0, 65537, 327713, 0, 65537, 327714, 0, 65537, 327715, 0, 65537, 327716, 0, 65537, 327717, 0, 65537, 327718, 0, 65537, 327719, 0, 65537, 327720, 0, 65537, 327721, 0, 131075, 327722, 0, 131076, 327723, 0, 131076, 327724, 0, 2, 393232, 1, 0, 393233, 0, 65536, 393234, 0, 65537, 393235, 0, 65537, 393236, 0, 65537, 393237, 0, 65537, 393238, 0, 65537, 393239, 0, 65537, 393240, 0, 65537, 393241, 0, 65537, 393242, 0, 65537, 393243, 0, 65537, 393244, 0, 65537, 393245, 0, 65537, 393246, 0, 65537, 393247, 0, 65537, 393248, 0, 65537, 393249, 0, 65537, 393250, 0, 65537, 393251, 0, 65537, 393252, 0, 65537, 393253, 0, 65537, 393254, 0, 65537, 393255, 0, 65537, 393256, 0, 65537, 393257, 0, 3, 393258, 0, 131073, 393259, 0, 131073, 393260, 0, 131074, 458768, 1, 0, 458769, 0, 65536, 458770, 0, 65537, 458771, 0, 65537, 458772, 0, 65537, 458773, 0, 65537, 458774, 0, 65537, 458775, 0, 65537, 458776, 0, 65537, 458777, 0, 65537, 458778, 0, 65537, 458779, 0, 65537, 458780, 0, 65537, 458781, 0, 65537, 458782, 0, 65537, 458783, 0, 65537, 458784, 0, 65537, 458785, 0, 65537, 458786, 0, 65537, 458787, 0, 65537, 458788, 0, 65537, 458789, 0, 65537, 458790, 0, 65537, 458791, 0, 65537, 458792, 0, 65537, 458793, 0, 65538, 458794, 1, 0, 458795, 1, 2, 458796, 0, 0, 524305, 0, 65536, 524306, 0, 65537, 524307, 0, 65537, 524308, 0, 65537, 524309, 0, 65537, 524310, 0, 65537, 524311, 0, 65537, 524312, 0, 65537, 524313, 0, 65537, 524314, 0, 65537, 524315, 0, 65537, 524316, 0, 65537, 524317, 0, 65537, 524318, 0, 65537, 524319, 0, 65537, 524320, 0, 65537, 524321, 0, 65537, 524322, 0, 65537, 524323, 0, 65537, 524324, 0, 65537, 524325, 0, 65537, 524326, 0, 65537, 524327, 0, 65537, 524328, 0, 65537, 524329, 0, 65538, 524330, 1, 65536, 524331, 1, 65538, 524332, 0, 0, 589841, 0, 65536, 589842, 0, 65537, 589843, 0, 65537, 589844, 0, 65537, 589845, 0, 65537, 589846, 0, 65537, 589847, 0, 65537, 589848, 0, 65537, 589849, 0, 65537, 589850, 0, 65537, 589851, 0, 65537, 589852, 0, 65537, 589853, 0, 65537, 589854, 0, 65537, 589855, 0, 65537, 589856, 0, 65537, 589857, 0, 65537, 589858, 0, 65537, 589859, 0, 65537, 589860, 0, 65537, 589861, 0, 65537, 589862, 0, 65537, 589863, 0, 65537, 589864, 0, 65537, 589865, 0, 65539, 589866, 1, 131072, 589867, 1, 131074, 589868, 0, 0, 655375, 0, 0, 655376, 0, 131076, 655377, 0, 131077, 655378, 0, 65537, 655379, 0, 65537, 655380, 0, 65537, 655381, 0, 65537, 655382, 0, 65537, 655383, 0, 65537, 655384, 0, 65537, 655385, 0, 65537, 655386, 0, 65537, 655387, 0, 65537, 655388, 0, 65537, 655389, 0, 65537, 655390, 0, 65537, 655391, 0, 65537, 655392, 0, 65537, 655393, 0, 65537, 655394, 0, 65537, 655395, 0, 65537, 655396, 0, 65537, 655397, 0, 65537, 655398, 0, 65537, 655399, 0, 65537, 655400, 0, 65537, 655401, 0, 131075, 655402, 0, 1, 655403, 0, 131076, 655404, 0, 2, 720911, 0, 65541, 720912, 0, 65537, 720913, 0, 65537, 720914, 0, 65537, 720915, 0, 65537, 720916, 0, 65537, 720917, 0, 65537, 720918, 0, 65537, 720919, 0, 65537, 720920, 0, 65537, 720921, 0, 65537, 720922, 0, 65537, 720923, 0, 65537, 720924, 0, 65537, 720925, 0, 65537, 720926, 0, 65537, 720927, 0, 65537, 720928, 0, 65537, 720929, 0, 65537, 720930, 0, 65537, 720931, 0, 65537, 720932, 0, 65537, 720933, 0, 65537, 720934, 0, 65537, 720935, 0, 65537, 720936, 0, 65537, 720937, 0, 65537, 720938, 0, 65537, 720939, 0, 65537, 720940, 0, 65538, 786447, 0, 65541, 786448, 0, 65537, 786449, 0, 65537, 786450, 0, 65537, 786451, 0, 65537, 786452, 0, 65537, 786453, 0, 65537, 786454, 0, 65537, 786455, 0, 65537, 786456, 0, 65537, 786457, 0, 65537, 786458, 0, 65537, 786459, 0, 65537, 786460, 0, 65537, 786461, 0, 65537, 786462, 0, 65537, 786463, 0, 65537, 786464, 0, 65537, 786465, 0, 65537, 786466, 0, 65537, 786467, 0, 65537, 786468, 0, 65537, 786469, 0, 65537, 786470, 0, 65537, 786471, 0, 65537, 786472, 0, 65537, 786473, 0, 65537, 786474, 0, 65537, 786475, 0, 65537, 786476, 0, 65539, 851983, 0, 65541, 851984, 0, 65537, 851985, 0, 65537, 851986, 0, 65537, 851987, 0, 65537, 851988, 0, 3, 851989, 0, 131073, 851990, 0, 4, 851991, 0, 4, 851992, 0, 131073, 851993, 0, 131073, 851994, 0, 4, 851995, 0, 131073, 851996, 0, 131073, 851997, 0, 4, 851998, 0, 5, 851999, 0, 65537, 852000, 0, 3, 852001, 0, 131073, 852002, 0, 4, 852003, 0, 4, 852004, 0, 131073, 852005, 0, 4, 852006, 0, 4, 852007, 0, 4, 852008, 0, 4, 852009, 0, 131073, 852010, 0, 4, 852011, 0, 4, 852012, 0, 131074, 917519, 0, 131072, 917520, 0, 4, 917521, 0, 131073, 917522, 0, 131073, 917523, 0, 4, 917524, 0, 131074, 917525, 1, 0, 917526, 1, 0, 917527, 1, 0, 917528, 0, 0, 917529, 1, 0, 917530, 1, 0, 917531, 1, 0, 917532, 1, 0, 917533, 1, 0, 917534, 0, 65541, 917535, 0, 65537, 917536, 0, 65538, 917537, 1, 0, 917538, 1, 0, 983070, 0, 131072, 983071, 0, 131073, 983072, 0, 131074 ) + +[node name="SemiSolidsTileMap" parent="SolidPlatforms" instance=ExtResource( 7 )] +tile_set = SubResource( 1 ) +tile_data = PoolIntArray( -65513, 0, 0, -65512, 0, 1, -65511, 0, 131076, -65510, 0, 131076, -65509, 0, 131076, -65508, 0, 131076, -65507, 0, 131076, -65506, 0, 1, -65505, 0, 1, -65504, 0, 131076, -65503, 0, 1, -65502, 0, 131076, -65501, 0, 131076, -65500, 0, 131076, -65499, 0, 2, 23, 0, 65541, 24, 0, 65537, 25, 0, 65537, 26, 0, 65537, 27, 0, 65537, 28, 0, 65537, 29, 0, 65537, 30, 0, 65537, 31, 0, 65537, 32, 0, 65537, 33, 0, 65537, 34, 0, 65537, 35, 0, 65537, 36, 0, 65537, 37, 0, 65538, 65559, 0, 65536, 65560, 0, 65537, 65561, 0, 65537, 65562, 0, 65537, 65563, 0, 65537, 65564, 0, 65537, 65565, 0, 65537, 65566, 0, 65537, 65567, 0, 65537, 65568, 0, 65537, 65569, 0, 65537, 65570, 0, 3, 65571, 0, 131073, 65572, 0, 4, 65573, 0, 131074, 131092, 0, 0, 131093, 0, 131076, 131094, 0, 131076, 131095, 0, 131077, 131096, 0, 65537, 131097, 0, 65537, 131098, 0, 65537, 131099, 0, 65537, 131100, 0, 3, 131101, 0, 131073, 131102, 0, 4, 131103, 0, 5, 131104, 0, 65537, 131105, 0, 65537, 131106, 0, 65539, 131107, 1, 0, 131108, 1, 1, 131109, 1, 1, 131110, 1, 2, 196628, 0, 65541, 196629, 0, 65537, 196630, 0, 65537, 196631, 0, 65537, 196632, 0, 65537, 196633, 0, 65537, 196634, 0, 65537, 196635, 0, 65537, 196636, 0, 65539, 196637, 1, 0, 196638, 1, 2, 196639, 0, 65541, 196640, 0, 65537, 196641, 0, 65537, 196642, 0, 65539, 196643, 1, 65536, 196644, 1, 65537, 196645, 1, 65537, 196646, 1, 65538, 262161, 0, 0, 262162, 0, 131076, 262163, 0, 1, 262164, 0, 131077, 262165, 0, 65537, 262166, 0, 65537, 262167, 0, 65537, 262168, 0, 65537, 262169, 0, 65537, 262170, 0, 65537, 262171, 0, 65537, 262172, 0, 65539, 262173, 1, 131072, 262174, 1, 131074, 262175, 0, 65541, 262176, 0, 65537, 262177, 0, 65537, 262178, 0, 65539, 262179, 1, 131072, 262180, 1, 131073, 262181, 1, 131073, 262182, 1, 131074, 327697, 0, 131072, 327698, 0, 5, 327699, 0, 65537, 327700, 0, 65537, 327701, 0, 65537, 327702, 0, 65537, 327703, 0, 65537, 327704, 0, 65537, 327705, 0, 65537, 327706, 0, 65537, 327707, 0, 65537, 327708, 0, 131075, 327709, 0, 131076, 327710, 0, 1, 327711, 0, 131077, 327712, 0, 65537, 327713, 0, 65537, 327714, 0, 131075, 327715, 0, 1, 327716, 0, 131076, 327717, 0, 1, 327718, 0, 1, 327719, 0, 131076, 327720, 0, 1, 327721, 0, 131076, 327722, 0, 1, 327723, 0, 131076, 327724, 0, 2, 393232, 1, 0, 393233, 1, 2, 393234, 0, 131072, 393235, 0, 131073, 393236, 0, 4, 393237, 0, 4, 393238, 0, 131073, 393239, 0, 131073, 393240, 0, 131073, 393241, 0, 131073, 393242, 0, 131073, 393243, 0, 131073, 393244, 0, 4, 393245, 0, 4, 393246, 0, 131073, 393247, 0, 4, 393248, 0, 5, 393249, 0, 65537, 393250, 0, 65537, 393251, 0, 65537, 393252, 0, 65537, 393253, 0, 65537, 393254, 0, 65537, 393255, 0, 65537, 393256, 0, 3, 393257, 0, 131073, 393258, 0, 131073, 393259, 0, 131073, 393260, 0, 131074, 458768, 1, 131072, 458769, 1, 131074, 458770, 0, 0, 458771, 1, 0, 458772, 1, 1, 458773, 1, 1, 458774, 1, 1, 458775, 1, 1, 458776, 1, 1, 458777, 1, 1, 458778, 1, 1, 458779, 1, 1, 458780, 1, 1, 458781, 1, 1, 458782, 1, 1, 458783, 1, 2, 458784, 0, 131072, 458785, 0, 4, 458786, 0, 4, 458787, 0, 5, 458788, 0, 65537, 458789, 0, 65537, 458790, 0, 65537, 458791, 0, 65537, 458792, 0, 65539, 458793, 1, 0, 458794, 1, 1, 458795, 1, 2, 458796, 0, 0, 524305, 0, 0, 524306, 0, 2, 524307, 1, 65536, 524308, 1, 65537, 524309, 1, 65537, 524310, 1, 65537, 524311, 1, 65537, 524312, 1, 65537, 524313, 1, 65537, 524314, 1, 65537, 524315, 1, 65537, 524316, 1, 65537, 524317, 1, 65537, 524318, 1, 65537, 524319, 1, 0, 524320, 1, 1, 524321, 1, 1, 524322, 1, 2, 524323, 0, 65541, 524324, 0, 65537, 524325, 0, 65537, 524326, 0, 65537, 524327, 0, 65537, 524328, 0, 65539, 524329, 1, 65536, 524330, 1, 65537, 524331, 1, 65538, 524332, 0, 0, 589841, 0, 65536, 589842, 0, 65539, 589843, 1, 131072, 589844, 1, 131073, 589845, 1, 131073, 589846, 1, 131073, 589847, 1, 131073, 589848, 1, 131073, 589849, 1, 131073, 589850, 1, 131073, 589851, 1, 131073, 589852, 1, 0, 589853, 1, 65537, 589854, 1, 65537, 589855, 1, 65537, 589856, 1, 65537, 589857, 1, 65537, 589858, 1, 65538, 589859, 0, 65541, 589860, 0, 65537, 589861, 0, 65537, 589862, 0, 65537, 589863, 0, 65537, 589864, 0, 65539, 589865, 1, 131072, 589866, 1, 131073, 589867, 1, 131074, 589868, 0, 0, 655375, 0, 0, 655376, 0, 131076, 655377, 0, 131077, 655378, 0, 131075, 655379, 0, 1, 655380, 0, 131076, 655381, 0, 1, 655382, 0, 1, 655383, 0, 1, 655384, 0, 131076, 655385, 0, 1, 655386, 0, 1, 655387, 0, 2, 655388, 1, 65536, 655389, 1, 65537, 655390, 1, 65537, 655391, 1, 65537, 655392, 1, 65537, 655393, 1, 65537, 655394, 1, 65538, 655395, 0, 65541, 655396, 0, 65537, 655397, 0, 65537, 655398, 0, 65537, 655399, 0, 65537, 655400, 0, 131075, 655401, 0, 1, 655402, 0, 1, 655403, 0, 131076, 655404, 0, 2, 720911, 0, 65541, 720912, 0, 65537, 720913, 0, 65537, 720914, 0, 65537, 720915, 0, 65537, 720916, 0, 3, 720917, 0, 131073, 720918, 0, 4, 720919, 0, 131073, 720920, 0, 4, 720921, 0, 131073, 720922, 0, 4, 720923, 0, 131074, 720924, 1, 65536, 720925, 1, 65537, 720926, 1, 65537, 720927, 1, 65537, 720928, 1, 65537, 720929, 1, 65537, 720930, 1, 65538, 720931, 0, 65536, 720932, 0, 65537, 720933, 0, 65537, 720934, 0, 65537, 720935, 0, 65537, 720936, 0, 65537, 720937, 0, 65537, 720938, 0, 65537, 720939, 0, 65537, 720940, 0, 65538, 786447, 0, 65541, 786448, 0, 65537, 786449, 0, 65537, 786450, 0, 65537, 786451, 0, 65537, 786452, 0, 65538, 786453, 1, 0, 786454, 1, 1, 786455, 1, 2, 786456, 0, 0, 786457, 1, 0, 786458, 1, 1, 786459, 1, 1, 786460, 1, 0, 786461, 1, 0, 786462, 1, 131073, 786463, 1, 131073, 786464, 1, 131073, 786465, 1, 0, 786466, 1, 65538, 786467, 0, 65541, 786468, 0, 65537, 786469, 0, 65537, 786470, 0, 65537, 786471, 0, 65537, 786472, 0, 65537, 786473, 0, 65537, 786474, 0, 65537, 786475, 0, 65537, 786476, 0, 65539, 851983, 0, 65541, 851984, 0, 65537, 851985, 0, 65537, 851986, 0, 65537, 851987, 0, 65537, 851988, 0, 65539, 851989, 1, 65536, 851990, 1, 65537, 851991, 1, 65538, 851992, 0, 0, 851993, 1, 65536, 851994, 1, 65537, 851995, 1, 65537, 851996, 1, 65537, 851997, 1, 65538, 851998, 0, 0, 851999, 0, 131076, 852000, 0, 2, 852001, 1, 65536, 852002, 1, 65538, 852003, 0, 131072, 852004, 0, 131073, 852005, 0, 4, 852006, 0, 4, 852007, 0, 4, 852008, 0, 4, 852009, 0, 131073, 852010, 0, 4, 852011, 0, 4, 852012, 0, 131074, 917519, 0, 131072, 917520, 0, 4, 917521, 0, 131073, 917522, 0, 131073, 917523, 0, 4, 917524, 0, 131074, 917525, 1, 131072, 917526, 1, 131073, 917527, 1, 131074, 917528, 0, 0, 917529, 1, 131072, 917530, 1, 131073, 917531, 1, 131073, 917532, 1, 131073, 917533, 1, 131074, 917534, 0, 65541, 917535, 0, 65537, 917536, 0, 65539, 917537, 1, 131072, 917538, 1, 131074, 983070, 0, 131072, 983071, 0, 131073, 983072, 0, 131074 ) + +[node name="SolidsTileMap" parent="SolidPlatforms" instance=ExtResource( 5 )] +tile_data = PoolIntArray( -131077, 0, 0, -131076, 0, 131076, -131075, 0, 1, -131074, 0, 1, -131073, 0, 2, -196608, 0, 1, -196607, 0, 1, -196606, 0, 1, -196605, 0, 1, -196604, 0, 1, -196603, 0, 1, -196602, 0, 1, -196601, 0, 1, -196600, 0, 1, -196599, 0, 1, -196598, 0, 1, -196597, 0, 1, -196596, 0, 1, -196595, 0, 1, -196594, 0, 1, -196593, 0, 1, -196592, 0, 1, -196591, 0, 1, -196590, 0, 0, -196589, 0, 1, -196588, 0, 131076, -196587, 0, 131076, -196586, 0, 1, -196585, 0, 131076, -196584, 0, 1, -196583, 0, 1, -196582, 0, 131076, -196581, 0, 131076, -196580, 0, 131076, -196579, 0, 131076, -196578, 0, 1, -196577, 0, 1, -196576, 0, 131076, -196575, 0, 131076, -196574, 0, 131076, -196573, 0, 131076, -196572, 0, 1, -196571, 0, 1, -196570, 0, 1, -196569, 0, 131076, -196568, 0, 131076, -196567, 0, 131076, -196566, 0, 131076, -196565, 0, 1, -196564, 0, 2, -65541, 0, 65536, -65540, 0, 65537, -65539, 0, 65537, -65538, 0, 65537, -65537, 0, 65538, -131054, 0, 65536, -131053, 0, 65537, -131052, 0, 65537, -131051, 0, 65537, -131050, 0, 65537, -131049, 0, 65537, -131048, 0, 65537, -131047, 0, 65537, -131046, 0, 65537, -131045, 0, 65537, -131044, 0, 65537, -131043, 0, 65537, -131042, 0, 65537, -131041, 0, 65537, -131040, 0, 65537, -131039, 0, 65537, -131038, 0, 65537, -131037, 0, 65537, -131036, 0, 65537, -131035, 0, 65537, -131034, 0, 65537, -131033, 0, 65537, -131032, 0, 65537, -131031, 0, 65537, -131030, 0, 65537, -131029, 0, 65537, -131028, 0, 65538, -5, 0, 65536, -4, 0, 65537, -3, 0, 65537, -2, 0, 65537, -1, 0, 65539, -65518, 0, 65536, -65517, 0, 65537, -65516, 0, 65537, -65515, 0, 65537, -65514, 0, 65537, -65513, 0, 65537, -65512, 0, 65537, -65511, 0, 65537, -65510, 0, 65537, -65509, 0, 65537, -65508, 0, 65537, -65507, 0, 65537, -65506, 0, 65537, -65505, 0, 65537, -65504, 0, 65537, -65503, 0, 65537, -65502, 0, 65537, -65501, 0, 65537, -65500, 0, 65537, -65499, 0, 65537, -65498, 0, 65537, -65497, 0, 65537, -65496, 0, 65537, -65495, 0, 65537, -65494, 0, 65537, -65493, 0, 65537, -65492, 0, 65538, 65531, 0, 65536, 65532, 0, 65537, 65533, 0, 65537, 65534, 0, 65537, 65535, 0, 131075, 0, 0, 1, 1, 0, 131076, 2, 0, 2, 18, 0, 65541, 19, 0, 65537, 20, 0, 65537, 21, 0, 65537, 22, 0, 65537, 23, 0, 65537, 24, 0, 65537, 25, 0, 65537, 26, 0, 65537, 27, 0, 65537, 28, 0, 65537, 29, 0, 65537, 30, 0, 65537, 31, 0, 65537, 32, 0, 65537, 33, 0, 65537, 34, 0, 65537, 35, 0, 65537, 36, 0, 65537, 37, 0, 65537, 38, 0, 65537, 39, 0, 65537, 40, 0, 65537, 41, 0, 65537, 42, 0, 65537, 43, 0, 65537, 44, 0, 65538, 131067, 0, 65536, 131068, 0, 65537, 131069, 0, 65537, 131070, 0, 65537, 131071, 0, 65537, 65536, 0, 65537, 65537, 0, 65537, 65538, 0, 65538, 65554, 0, 131072, 65555, 0, 4, 65556, 0, 131073, 65557, 0, 131073, 65558, 0, 131073, 65559, 0, 5, 65560, 0, 65537, 65561, 0, 3, 65562, 0, 4, 65563, 0, 4, 65564, 0, 131073, 65565, 0, 4, 65566, 0, 4, 65567, 0, 5, 65568, 0, 3, 65569, 0, 4, 65570, 0, 131073, 65571, 0, 4, 65572, 0, 4, 65573, 0, 4, 65574, 0, 4, 65575, 0, 4, 65576, 0, 131073, 65577, 0, 131073, 65578, 0, 5, 65579, 0, 65537, 65580, 0, 65538, 196603, 0, 65536, 196604, 0, 65537, 196605, 0, 65537, 196606, 0, 65537, 196607, 0, 65537, 131072, 0, 65537, 131073, 0, 65537, 131074, 0, 65538, 131095, 0, 131072, 131096, 0, 4, 131097, 0, 131074, 131103, 0, 65541, 131104, 0, 65539, 131114, 0, 65541, 131115, 0, 65537, 131116, 0, 65538, 262139, 0, 65536, 262140, 0, 65537, 262141, 0, 65537, 262142, 0, 65537, 262143, 0, 65537, 196608, 0, 65537, 196609, 0, 65537, 196610, 0, 65538, 196639, 0, 65541, 196640, 0, 65538, 196650, 0, 65536, 196651, 0, 65537, 196652, 0, 65538, 327675, 0, 65536, 327676, 0, 65537, 327677, 0, 65537, 327678, 0, 65537, 327679, 0, 65537, 262144, 0, 65537, 262145, 0, 65537, 262146, 0, 65538, 262175, 0, 65536, 262176, 0, 65539, 262186, 0, 65541, 262187, 0, 65537, 262188, 0, 65539, 393211, 0, 65536, 393212, 0, 65537, 393213, 0, 65537, 393214, 0, 65537, 393215, 0, 3, 327680, 0, 131073, 327681, 0, 4, 327682, 0, 131074, 327688, 0, 0, 327689, 0, 2, 327711, 0, 131072, 327712, 0, 131074, 327722, 0, 65541, 327723, 0, 65537, 327724, 0, 65538, 458747, 0, 65541, 458748, 0, 65537, 458749, 0, 65537, 458750, 0, 65537, 458751, 0, 65539, 393224, 0, 65536, 393225, 0, 65538, 393258, 0, 65536, 393259, 0, 65537, 393260, 0, 65538, 524283, 0, 65536, 524284, 0, 65537, 524285, 0, 65537, 524286, 0, 65537, 524287, 0, 65539, 458760, 0, 65536, 458761, 0, 131075, 458762, 0, 131076, 458763, 0, 2, 458794, 0, 65541, 458795, 0, 65537, 458796, 0, 65538, 589819, 0, 65541, 589820, 0, 65537, 589821, 0, 65537, 589822, 0, 65537, 589823, 0, 65538, 524296, 0, 65536, 524297, 0, 65537, 524298, 0, 65537, 524299, 0, 131075, 524300, 0, 1, 524301, 0, 1, 524302, 0, 2, 524330, 0, 65541, 524331, 0, 65537, 524332, 0, 65539, 655355, 0, 65536, 655356, 0, 65537, 655357, 0, 65537, 655358, 0, 65537, 655359, 0, 65538, 589832, 0, 131072, 589833, 0, 131073, 589834, 0, 131073, 589835, 0, 4, 589836, 0, 4, 589837, 0, 131073, 589838, 0, 131074, 589866, 0, 65536, 589867, 0, 65537, 589868, 0, 65539, 720891, 0, 65536, 720892, 0, 65537, 720893, 0, 65537, 720894, 0, 65537, 720895, 0, 65538, 655399, 0, 0, 655400, 0, 1, 655401, 0, 1, 655402, 0, 131077, 655403, 0, 65537, 655404, 0, 65538, 786427, 0, 65536, 786428, 0, 65537, 786429, 0, 65537, 786430, 0, 65537, 786431, 0, 65539, 720935, 0, 131072, 720936, 0, 131073, 720937, 0, 4, 720938, 0, 4, 720939, 0, 4, 720940, 0, 131074, 851963, 0, 65541, 851964, 0, 65537, 851965, 0, 65537, 851966, 0, 65537, 851967, 0, 65539, 786451, 0, 0, 786452, 0, 2, 786466, 0, 0, 786467, 0, 2, 917499, 0, 65536, 917500, 0, 65537, 917501, 0, 65537, 917502, 0, 65537, 917503, 0, 65539, 851987, 0, 65541, 851988, 0, 131075, 851989, 0, 2, 852002, 0, 65541, 852003, 0, 65538, 983035, 0, 65541, 983036, 0, 65537, 983037, 0, 65537, 983038, 0, 65537, 983039, 0, 65538, 917523, 0, 65536, 917524, 0, 65537, 917525, 0, 131075, 917526, 0, 2, 917538, 0, 65541, 917539, 0, 131075, 917540, 0, 1, 917541, 0, 131076, 917542, 0, 1, 917543, 0, 1, 917544, 0, 1, 917545, 0, 131076, 917546, 0, 131076, 917547, 0, 1, 917548, 0, 2, 1048571, 0, 65541, 1048572, 0, 65537, 1048573, 0, 65537, 1048574, 0, 65537, 1048575, 0, 131075, 983040, 0, 1, 983041, 0, 1, 983042, 0, 1, 983043, 0, 131076, 983044, 0, 1, 983045, 0, 131076, 983046, 0, 131076, 983047, 0, 131076, 983048, 0, 1, 983049, 0, 131076, 983050, 0, 1, 983051, 0, 1, 983052, 0, 131076, 983053, 0, 1, 983054, 0, 1, 983055, 0, 131076, 983056, 0, 1, 983057, 0, 131076, 983058, 0, 1, 983059, 0, 131077, 983060, 0, 65537, 983061, 0, 65537, 983062, 0, 131075, 983063, 0, 131076, 983064, 0, 131076, 983065, 0, 1, 983066, 0, 1, 983067, 0, 1, 983068, 0, 131076, 983069, 0, 1, 983070, 0, 131076, 983071, 0, 131076, 983072, 0, 1, 983073, 0, 1, 983074, 0, 131077, 983075, 0, 65537, 983076, 0, 65537, 983077, 0, 65537, 983078, 0, 65537, 983079, 0, 65537, 983080, 0, 65537, 983081, 0, 65537, 983082, 0, 65537, 983083, 0, 65537, 983084, 0, 65538, 1114107, 0, 65536, 1114108, 0, 65537, 1114109, 0, 65537, 1114110, 0, 65537, 1114111, 0, 65537, 1048576, 0, 65537, 1048577, 0, 65537, 1048578, 0, 65537, 1048579, 0, 65537, 1048580, 0, 65537, 1048581, 0, 65537, 1048582, 0, 65537, 1048583, 0, 65537, 1048584, 0, 65537, 1048585, 0, 65537, 1048586, 0, 65537, 1048587, 0, 65537, 1048588, 0, 65537, 1048589, 0, 65537, 1048590, 0, 65537, 1048591, 0, 65537, 1048592, 0, 65537, 1048593, 0, 65537, 1048594, 0, 65537, 1048595, 0, 65537, 1048596, 0, 65537, 1048597, 0, 65537, 1048598, 0, 65537, 1048599, 0, 65537, 1048600, 0, 65537, 1048601, 0, 65537, 1048602, 0, 65537, 1048603, 0, 65537, 1048604, 0, 65537, 1048605, 0, 65537, 1048606, 0, 65537, 1048607, 0, 65537, 1048608, 0, 65537, 1048609, 0, 65537, 1048610, 0, 65537, 1048611, 0, 65537, 1048612, 0, 65537, 1048613, 0, 65537, 1048614, 0, 65537, 1048615, 0, 65537, 1048616, 0, 65537, 1048617, 0, 65537, 1048618, 0, 65537, 1048619, 0, 65537, 1048620, 0, 65538, 1179643, 0, 131072, 1179644, 0, 131073, 1179645, 0, 4, 1179646, 0, 4, 1179647, 0, 4, 1114112, 0, 4, 1114113, 0, 4, 1114114, 0, 4, 1114115, 0, 131073, 1114116, 0, 4, 1114117, 0, 131073, 1114118, 0, 4, 1114119, 0, 131073, 1114120, 0, 131073, 1114121, 0, 4, 1114122, 0, 131073, 1114123, 0, 4, 1114124, 0, 131073, 1114125, 0, 131073, 1114126, 0, 4, 1114127, 0, 4, 1114128, 0, 4, 1114129, 0, 4, 1114130, 0, 131073, 1114131, 0, 4, 1114132, 0, 4, 1114133, 0, 4, 1114134, 0, 4, 1114135, 0, 131073, 1114136, 0, 4, 1114137, 0, 131073, 1114138, 0, 4, 1114139, 0, 131073, 1114140, 0, 4, 1114141, 0, 131073, 1114142, 0, 4, 1114143, 0, 131073, 1114144, 0, 131073, 1114145, 0, 4, 1114146, 0, 131073, 1114147, 0, 131073, 1114148, 0, 131073, 1114149, 0, 131073, 1114150, 0, 131073, 1114151, 0, 131073, 1114152, 0, 4, 1114153, 0, 4, 1114154, 0, 131073, 1114155, 0, 4, 1114156, 0, 131074 ) + +[node name="WiseOldDude" parent="." instance=ExtResource( 6 )] +position = Vector2( 643, 161 ) + +[node name="CutsceneAreas" type="Node2D" parent="."] + +[node name="OldDudeIntroArea" type="Area2D" parent="CutsceneAreas"] +position = Vector2( 560, 182 ) +collision_layer = 0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CutsceneAreas/OldDudeIntroArea"] +position = Vector2( 0, -27 ) +shape = SubResource( 37 ) + +[node name="LoreParticals" type="Particles2D" parent="."] +position = Vector2( 702, 214 ) +amount = 20 +lifetime = 3.0 +preprocess = 1.0 +explosiveness = 0.25 +process_material = SubResource( 42 ) + +[node name="Light2D" type="Light2D" parent="LoreParticals"] +position = Vector2( -4, -2 ) +texture = ExtResource( 9 ) +texture_scale = 5.63 +color = Color( 0.980392, 0.554327, 0.0313726, 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="LoreParticals"] +autoplay = "default" +playback_speed = 0.2 +anims/default = SubResource( 43 ) + +[node name="GoblinSpawn" parent="." instance=ExtResource( 10 )] +position = Vector2( 536, 231 ) +node = ExtResource( 11 ) + +[node name="GoblinSpawn2" parent="." instance=ExtResource( 10 )] +position = Vector2( 212, 126 ) +node = ExtResource( 11 ) + +[node name="Coins" type="Node" parent="."] + +[node name="Coin" parent="Coins" instance=ExtResource( 12 )] +position = Vector2( 26, -6 ) + +[node name="Coin2" parent="Coins" instance=ExtResource( 12 )] +position = Vector2( 535, 42 ) +[connection signal="body_entered" from="CutsceneAreas/OldDudeIntroArea" to="." method="_on_OldDudeIntroArea_body_entered"] diff --git a/src/HUD/HUD.gd b/src/HUD/HUD.gd index a30f3ca..d6a4b34 100644 --- a/src/HUD/HUD.gd +++ b/src/HUD/HUD.gd @@ -10,6 +10,8 @@ var _pause_ref; var _data_ref = null; func _ready() -> void: _data_ref = GameState.get_run_data() + var time_remaining = (GameState.GAME_TIMEOUT_MIN * 60) - _data_ref.time + $UI/TimeLabel.text = Utils.parse_seconds_to_display_str(time_remaining) func _physics_process(delta: float) -> void: _handle_pause() diff --git a/src/Items/Coin.tscn b/src/Items/Coin.tscn index 71f27a6..db51777 100644 --- a/src/Items/Coin.tscn +++ b/src/Items/Coin.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://assets/Items/coin_animation_6_2.png" type="Texture" id=1] [ext_resource path="res://src/Items/Coin.gd" type="Script" id=2] [ext_resource path="res://assets/Theme/Theme.tres" type="Theme" id=3] +[ext_resource path="res://assets/Items/torch_ligt_texture.png" type="Texture" id=4] [sub_resource type="CircleShape2D" id=1] radius = 4.0 @@ -184,23 +185,51 @@ tracks/4/keys = { "update": 0, "values": [ Color( 1, 1, 1, 1 ) ] } +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/Light2D:texture_scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 0.2, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 1.0, 1.8, 1.0 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Sprite/Light2D:energy") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.8, 0.8 ] +} [node name="Coin" type="Area2D"] collision_layer = 16 script = ExtResource( 2 ) [node name="Sprite" type="Sprite" parent="."] -position = Vector2( 0, -8 ) +position = Vector2( 0, -4 ) texture = ExtResource( 1 ) vframes = 2 hframes = 6 -frame = 8 +frame = 2 + +[node name="Light2D" type="Light2D" parent="Sprite"] +texture = ExtResource( 4 ) +texture_scale = 1.5 +color = Color( 1, 0.976471, 0.878431, 1 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] visible = false position = Vector2( 0, -4 ) shape = SubResource( 1 ) -disabled = true [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "idle" diff --git a/src/Levels/LevelTemplate/LevelTemplate.tscn b/src/Levels/LevelTemplate/LevelTemplate.tscn index f9a1256..5600b6f 100644 --- a/src/Levels/LevelTemplate/LevelTemplate.tscn +++ b/src/Levels/LevelTemplate/LevelTemplate.tscn @@ -549,6 +549,14 @@ position = Vector2( -900.545, 401.773 ) [node name="Goblin" parent="Enemies" instance=ExtResource( 22 )] position = Vector2( 380.375, 528 ) +num_of_hits = 3 +walking_speed = 20.0 +attack_cool_down = 0.1 +patroler = true +idle_interval = 0.5 +idle_time = 0.2 +dont_fall_patrol = true +gravity = 500.0 [node name="Hazards" type="Node2D" parent="."] @@ -606,8 +614,8 @@ position = Vector2( 37.3754, 256 ) wall_jump_speed_factor = Vector2( 2.5, 0.9 ) abilities = { "attack": true, -"dash": false, -"wall_jump": false +"dash": true, +"wall_jump": true } [node name="HUD" parent="." instance=ExtResource( 14 )] diff --git a/src/Menu/MainMenu.gd b/src/Menu/MainMenu.gd index 6e8fbd6..fbcded4 100644 --- a/src/Menu/MainMenu.gd +++ b/src/Menu/MainMenu.gd @@ -14,7 +14,7 @@ func _on_ControlsBtn_pressed() -> void: func _on_NewGameBtn_pressed() -> void: - GameState.start_new_game() + GameState.start_new_game(true) queue_free() func _input(event: InputEvent) -> void: diff --git a/src/Menu/MainMenu.tscn b/src/Menu/MainMenu.tscn index a9b78ea..9fa16ee 100644 --- a/src/Menu/MainMenu.tscn +++ b/src/Menu/MainMenu.tscn @@ -157,6 +157,7 @@ shadow_enabled = true position = Vector2( 87, 175.5 ) amount = 50 lifetime = 2.5 +preprocess = 4.0 speed_scale = 0.4 explosiveness = 0.1 process_material = SubResource( 7 ) diff --git a/src/Scripts/SpawnPoint.gd b/src/Scripts/SpawnPoint.gd new file mode 100644 index 0000000..27d7851 --- /dev/null +++ b/src/Scripts/SpawnPoint.gd @@ -0,0 +1,30 @@ +extends Position2D +tool +export var node:PackedScene = null +onready var player_ref:Player = get_tree().current_scene.get_node("Player") + +func _ready() -> void: + if Engine.editor_hint: + _spawn() + else: + player_ref.connect("died", self, "_on_Player_died") + +func _on_VisibilityNotifier2D_screen_entered() -> void: + respawn() + +func respawn(): + var current_node = get_node("node") + if current_node == null and node != null: + _spawn() + else: + pass + +func _on_Player_died(): + if $VisibilityNotifier2D.is_on_screen(): + respawn() + +func _spawn(): + var inst = node.instance() + inst.name = "node" + add_child(inst) + diff --git a/src/Scripts/SpawnPoint.tscn b/src/Scripts/SpawnPoint.tscn new file mode 100644 index 0000000..cda6ad8 --- /dev/null +++ b/src/Scripts/SpawnPoint.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://src/Scripts/SpawnPoint.gd" type="Script" id=1] + +[node name="SpawnPoint" type="Position2D"] +script = ExtResource( 1 ) + +[node name="VisibilityNotifier2D" type="VisibilityNotifier2D" parent="."] +rect = Rect2( -50, -50, 100, 100 ) +[connection signal="screen_entered" from="VisibilityNotifier2D" to="." method="_on_VisibilityNotifier2D_screen_entered"] diff --git a/src/Singletons/AudioManager.gd b/src/Singletons/AudioManager.gd index 7a7a4e2..d3c18dc 100644 --- a/src/Singletons/AudioManager.gd +++ b/src/Singletons/AudioManager.gd @@ -11,11 +11,13 @@ var _DESIRED_PAUSE_VOLUME = -25.0 enum Music{ Intro, - Abandon + Abandon, + PreGame } var _music_files := { Music.Intro: load("res://assets/Audio/Dungeon - Altus Stratum.ogg"), - Music.Abandon: load("res://assets/Audio/Dungeon - Abandoned One.ogg") + Music.Abandon: load("res://assets/Audio/Dungeon - Abandoned One.ogg"), + Music.PreGame: load("res://assets/Audio/Scene - Lucid Night.ogg") } diff --git a/src/Singletons/GameState.gd b/src/Singletons/GameState.gd index bbc7901..d3b1d77 100644 --- a/src/Singletons/GameState.gd +++ b/src/Singletons/GameState.gd @@ -1,10 +1,15 @@ extends Node +signal scene_changed + enum States{ INTRO, + INTRO_CUTSCENE, + TRANSITIONING, MAIN_MENU, GAME_OVER, CONTROLS, + NEW_GAME, GAME, PUSE, STATS, @@ -16,12 +21,15 @@ var _ENCRYPTION_KEY = "fas3uyf076HJsiUDs24dfI9" var _SCENES := { States.MAIN_MENU: "res://src/Menu/MainMenu.tscn", - States.GAME: "res://src/GameWorld/GameWorld.tscn", + States.NEW_GAME: "res://src/GameWorld/GameWorld.tscn", + States.INTRO_CUTSCENE: "res://src/CutScenes/IntroCutscene.tscn" } +var _player_spawn_point; + var GAME_TIMEOUT_MIN = 10 -var _data := { +var _default_data := { "statistics": { "deaths": 0, "clears": 0, @@ -37,9 +45,15 @@ var _data := { "coins": 0, "orbs": 0, "time": 0, + }, + "achivements": { + "a": false, + "b": false } } +var _data := _default_data + var _run_data:= { "deaths": 0, "coins": 0, @@ -52,7 +66,7 @@ var _state = States.INTRO func _ready() -> void: load_data() - print(get_statistics()) + print(_data) func _physics_process(delta: float) -> void: if _state == States.GAME: @@ -66,7 +80,14 @@ func load_data(): data_file.close() save_data() else: - _data = data_file.get_var() + var saved_data:Dictionary = data_file.get_var() + for key in saved_data.keys(): + if _data.has(key): + if typeof(saved_data[key]) == TYPE_DICTIONARY: + for sub_key in saved_data[key]: + var subdict:Dictionary = _data[key]; + if subdict.has(sub_key): _data[key][sub_key] = saved_data[key][sub_key] + else: _data[key] = saved_data[key] data_file.close() pass @@ -77,17 +98,21 @@ func save_data(): data_file.close() pass -func start_new_game(): +func start_new_game(from_main_menu:bool=false, change_music:bool=true): for key in _run_data.keys(): _run_data[key] = 0 - _state = States.GAME - _data.statistics.runs += 1 + var state = States.INTRO_CUTSCENE if from_main_menu else States.NEW_GAME + if not from_main_menu: _data.statistics.runs += 1 save_data() - get_tree().change_scene_to(load(_SCENES[_state])) + var delay = 3 if state == States.INTRO_CUTSCENE else .2 + if change_music: AudioManager.play_music(AudioManager.Music.PreGame, delay) + _change_scene(state, delay) +# get_tree().change_scene_to(load(_SCENES[_state])) + func start_cutscene(): _state = States.CUTSCENE -func end_cutscene(): - _state = States.GAME +func end_cutscene(state:int = States.GAME): + _state = state func get_heigh_score(): return _data.heigh_score.duplicate() func get_statistics(): @@ -97,12 +122,31 @@ func get_run_data(): func get_state(): return int(_state) func go_to_main_menu(): - _state = States.MAIN_MENU save_data() - get_tree().change_scene_to(load(_SCENES[_state])) -func player_died(): + _change_scene(States.MAIN_MENU) + yield(self, "scene_changed") + +func _change_scene(state:int,duration:float=.2): + _state = States.TRANSITIONING + Stage.fade_out(duration/2) + yield(Stage, "fade_finished") + get_tree().change_scene_to(load(_SCENES[state])) + Stage.fade_in(duration/2) + yield(Stage, "fade_finished") + _state = state + emit_signal("scene_changed") + +func player_died(player:Player): _run_data.deaths += 1 _data.statistics.deaths += 1 + var prev_state = _state + _state = States.TRANSITIONING + Stage.fade_out(.8) + yield(Stage, "fade_finished") + Stage.fade_in(.8) + yield(Stage, "fade_finished") + _state = prev_state + func coin_collected(): _run_data.coins += 10 _data.statistics.coins += 10 diff --git a/src/Singletons/Stage.gd b/src/Singletons/Stage.gd new file mode 100644 index 0000000..93f0083 --- /dev/null +++ b/src/Singletons/Stage.gd @@ -0,0 +1,29 @@ +extends CanvasLayer + +signal fade_finished + +var _current_scene: Node = null; +var _next_scene: Node = null; + + +var _BLACK_COLOR = Color(0,0,0,1) +var _TRANSPARENT_COLOR = Color(0,0,0,0) + +func _ready() -> void: + fade_in() + + +func fade_in(sec:float = .2): + $Tween.stop_all() + $Tween.interpolate_property($ColorRect, "color", $ColorRect.color, _TRANSPARENT_COLOR, sec) + $Tween.start() + +func fade_out(sec:float = .2): + $Tween.stop_all() + $Tween.interpolate_property($ColorRect, "color", $ColorRect.color, _BLACK_COLOR, sec) + $Tween.start() + + + +func _on_Tween_tween_completed(object: Object, key: NodePath) -> void: + emit_signal("fade_finished") diff --git a/src/Singletons/Stage.tscn b/src/Singletons/Stage.tscn new file mode 100644 index 0000000..d20f903 --- /dev/null +++ b/src/Singletons/Stage.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://src/Singletons/Stage.gd" type="Script" id=1] + +[node name="Stage" type="CanvasLayer"] +script = ExtResource( 1 ) + +[node name="Tween" type="Tween" parent="."] + +[node name="ColorRect" type="ColorRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +color = Color( 0, 0, 0, 1 ) +__meta__ = { +"_edit_use_anchors_": false +} +[connection signal="tween_completed" from="Tween" to="." method="_on_fade_finished"] +[connection signal="tween_completed" from="Tween" to="." method="_on_Tween_tween_completed"]