diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..0466bd5 Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index 0035ad6..b375f45 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ export_presets.cfg # Mono-specific ignores .mono/ data_*/ -mono_crash.*.json \ No newline at end of file +mono_crash.*.json +*.import diff --git a/assets/icons.kra b/assets/icons.kra new file mode 100644 index 0000000..2a52d31 Binary files /dev/null and b/assets/icons.kra differ diff --git a/assets/icons.kra~ b/assets/icons.kra~ new file mode 100644 index 0000000..3c240e4 Binary files /dev/null and b/assets/icons.kra~ differ diff --git a/gmtk_2024/CommodoreSixtyFour.ttf b/gmtk_2024/CommodoreSixtyFour.ttf new file mode 100644 index 0000000..8fa2229 Binary files /dev/null and b/gmtk_2024/CommodoreSixtyFour.ttf differ diff --git a/gmtk_2024/CommodoreSixtyFour.ttf.import b/gmtk_2024/CommodoreSixtyFour.ttf.import new file mode 100644 index 0000000..00b20ab --- /dev/null +++ b/gmtk_2024/CommodoreSixtyFour.ttf.import @@ -0,0 +1,34 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://d3pbvdemdbxes" +path="res://.godot/imported/CommodoreSixtyFour.ttf-500f068f8657866f33df01894c79f165.fontdata" + +[deps] + +source_file="res://CommodoreSixtyFour.ttf" +dest_files=["res://.godot/imported/CommodoreSixtyFour.ttf-500f068f8657866f33df01894c79f165.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gmtk_2024/canvas_layer.tscn b/gmtk_2024/canvas_layer.tscn new file mode 100644 index 0000000..9f54ec3 --- /dev/null +++ b/gmtk_2024/canvas_layer.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=3 format=3 uid="uid://7rnltps0ssra"] + +[ext_resource type="Shader" path="res://shaders/crt.gdshader" id="2_wxq0n"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_c8ly2"] +shader = ExtResource("2_wxq0n") +shader_parameter/crt_curve = 0.02 +shader_parameter/crt_scan_line_color = 0.347 +shader_parameter/aperture_grille_rate = 0.4 +shader_parameter/rf_switch_esque_blur = 1.0 +shader_parameter/white_noise_rate = 0.0 + +[node name="CanvasLayer" type="CanvasLayer"] + +[node name="ColorRect" type="ColorRect" parent="."] +material = SubResource("ShaderMaterial_c8ly2") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 diff --git a/gmtk_2024/levels/LevelBase.tscn b/gmtk_2024/levels/LevelBase.tscn new file mode 100644 index 0000000..dd98367 --- /dev/null +++ b/gmtk_2024/levels/LevelBase.tscn @@ -0,0 +1,194 @@ +[gd_scene load_steps=14 format=4 uid="uid://ba6afuig8bqrg"] + +[ext_resource type="PackedScene" uid="uid://s683ua4q2ewm" path="res://menu/PauseMenu.tscn" id="1_dtdta"] +[ext_resource type="PackedScene" uid="uid://snxpqx0ony7s" path="res://objects/Player.tscn" id="1_prjlb"] +[ext_resource type="PackedScene" uid="uid://dii1q3f5dj72y" path="res://objects/CRT.tscn" id="2_mxtem"] +[ext_resource type="Shader" path="res://shaders/scrolling.gdshader" id="3_lcf1n"] +[ext_resource type="Texture2D" uid="uid://bn7cejgxkah8o" path="res://textures/Level 01.png" id="4_p3e10"] +[ext_resource type="Texture2D" uid="uid://c3m4os8kteaix" path="res://textures/level01-spritesheet.png" id="5_wr4v5"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_4uh45"] +size = Vector2(1281, 85.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_nnio8"] +size = Vector2(63.75, 738.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_h7316"] +size = Vector2(100, 753) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_g6g3g"] +shader = ExtResource("3_lcf1n") +shader_parameter/scroll_speed = 0.02 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rosol"] +texture = ExtResource("5_wr4v5") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:0/0 = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:0/0 = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +5:0/0 = 0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:0/0 = 0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:0/0 = 0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/next_alternative_id = 4 +8:0/0 = 0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/1 = 1 +8:0/1/flip_v = true +8:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/2 = 2 +8:0/2/transpose = true +8:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/3 = 3 +8:0/3/flip_h = true +8:0/3/transpose = true +8:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:1/0 = 0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:1/0 = 0 +5:1/0 = 0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:1/0 = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:1/0 = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:1/0 = 0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:2/0 = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:2/0 = 0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:2/0 = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +5:2/0 = 0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:2/0 = 0 +7:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 + +[sub_resource type="TileSet" id="TileSet_8ddyx"] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_rosol") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1vofj"] +size = Vector2(1289, 70.5) + +[node name="LevelBase" type="Node"] + +[node name="Player" parent="." instance=ExtResource("1_prjlb")] + +[node name="CanvasLayer" parent="." instance=ExtResource("2_mxtem")] +visible = false + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="Walls" type="StaticBody2D" parent="."] +collision_mask = 6 + +[node name="Ceiling" type="CollisionShape2D" parent="Walls"] +position = Vector2(3, -206) +shape = SubResource("RectangleShape2D_4uh45") + +[node name="LeftWall" type="CollisionShape2D" parent="Walls"] +position = Vector2(-357, 42) +shape = SubResource("RectangleShape2D_nnio8") + +[node name="RightWall" type="CollisionShape2D" parent="Walls"] +position = Vector2(367, 16) +shape = SubResource("RectangleShape2D_h7316") + +[node name="TextureRect" type="TextureRect" parent="."] +z_index = -100 +material = SubResource("ShaderMaterial_g6g3g") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -320.0 +offset_top = -158.0 +offset_right = -320.0 +offset_bottom = -158.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("4_p3e10") +stretch_mode = 1 + +[node name="Layer0" type="TileMapLayer" parent="."] +use_parent_material = true +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAACAAEAAAD2//7/AAACAAEAAAD2////AAACAAEAAAD2/wAAAAACAAEAAAD2/wEAAAACAAEAAAD2/wIAAAACAAEAAAD2/wMAAAACAAEAAAD2/wQAAAADAAIAAAAJAPv/AAAFAAAAAAAJAPz/AAAAAAEAAAAJAP3/AAAAAAEAAAAJAP7/AAAAAAEAAAAJAP//AAAAAAEAAAAJAAAAAAAAAAEAAAAJAAEAAAAAAAEAAAAJAAIAAAAAAAEAAAAJAAMAAAAAAAEAAAAJAAQAAAAFAAIAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAABAAIAAAD8//v/AAABAAIAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAABAAIAAAAAAPv/AAABAAIAAAABAPv/AAABAAIAAAACAPv/AAABAAIAAAADAPv/AAABAAIAAAAEAPv/AAABAAIAAAAFAPv/AAABAAIAAAAGAPv/AAABAAIAAAAHAPv/AAABAAIAAAAIAPv/AAABAAIAAAD3/wQAAAABAAAAAAD4/wQAAAABAAAAAAD5/wQAAAABAAAAAAD6/wQAAAAFAAIAAAD7/wQAAAABAAEAAAD8/wQAAAABAAEAAAD9/wQAAAABAAEAAAD+/wQAAAABAAEAAAD//wQAAAABAAEAAAAAAAQAAAABAAEAAAABAAQAAAADAAIAAAACAAQAAAABAAAAAAADAAQAAAABAAAAAAAEAAQAAAABAAAAAAAFAAQAAAABAAAAAAAGAAQAAAABAAAAAAAHAAQAAAABAAAAAAAIAAQAAAABAAAAAAA=") +tile_set = SubResource("TileSet_8ddyx") + +[node name="Ground" type="CharacterBody2D" parent="."] +collision_layer = 2 +collision_mask = 4 + +[node name="Ground" type="CollisionShape2D" parent="Ground"] +position = Vector2(10, 375) +shape = SubResource("RectangleShape2D_1vofj") + +[node name="PauseMenu" parent="." instance=ExtResource("1_dtdta")] +visible = false +offset_left = -320.0 +offset_top = -160.0 +offset_right = -320.0 +offset_bottom = -160.0 diff --git a/gmtk_2024/levels/Level_1_Rooms/level_1_2.tscn b/gmtk_2024/levels/Level_1_Rooms/level_1_2.tscn new file mode 100644 index 0000000..3926600 --- /dev/null +++ b/gmtk_2024/levels/Level_1_Rooms/level_1_2.tscn @@ -0,0 +1,192 @@ +[gd_scene load_steps=13 format=4 uid="uid://bgrwqfa7lr66a"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_hxt4x"] +[ext_resource type="Texture2D" uid="uid://c3m4os8kteaix" path="res://textures/level01-spritesheet.png" id="2_3aspe"] +[ext_resource type="Shader" path="res://shaders/scrolling.gdshader" id="3_kfccg"] +[ext_resource type="Texture2D" uid="uid://bn7cejgxkah8o" path="res://textures/Level 01.png" id="4_eh1te"] +[ext_resource type="PackedScene" uid="uid://d0q0sfati8wk0" path="res://objects/ResizableBlock.tscn" id="5_g32pt"] +[ext_resource type="PackedScene" uid="uid://c168bkledwyya" path="res://objects/Laser.tscn" id="6_kbfc1"] +[ext_resource type="PackedScene" uid="uid://c6g2f7tm7iasr" path="res://objects/PressurePlate.tscn" id="7_5joy3"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="8_sbr7w"] +[ext_resource type="PackedScene" uid="uid://bvvxwhg4tihng" path="res://menu/level_menu/level_select.tscn" id="9_0dfbn"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_a4gjk"] +texture = ExtResource("2_3aspe") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:0/0 = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:0/0 = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +5:0/0 = 0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:0/0 = 0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:0/0 = 0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/next_alternative_id = 4 +8:0/0 = 0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/1 = 1 +8:0/1/flip_v = true +8:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/2 = 2 +8:0/2/transpose = true +8:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/3 = 3 +8:0/3/flip_h = true +8:0/3/transpose = true +8:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:1/0 = 0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:1/0 = 0 +5:1/0 = 0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:1/0 = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:1/0 = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:1/0 = 0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:2/0 = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:2/0 = 0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:2/0 = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +5:2/0 = 0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:2/0 = 0 +7:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 + +[sub_resource type="TileSet" id="TileSet_n3khe"] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_a4gjk") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mvq46"] +shader = ExtResource("3_kfccg") +shader_parameter/scroll_speed = 0.02 + +[node name="LevelBase" instance=ExtResource("1_hxt4x")] + +[node name="Player" parent="." index="1"] +position = Vector2(-254, 99) +input_pickable = true + +[node name="Layer1" type="TileMapLayer" parent="." index="4"] +use_parent_material = true +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAABAAEAAAD2//7/AAACAAEAAAD2////AAACAAEAAAD2/wAAAAADAAIAAAD2/wEAAAADAAAAAAD2/wIAAAACAAEAAAD2/wMAAAACAAEAAAD2/wQAAAADAAIAAAAJAPv/AAAFAAAAAAAJAPz/AAAAAAEAAAAJAP3/AAAAAAEAAAAJAP7/AAAAAAEAAAAJAP//AAAAAAEAAAAJAAAAAAAAAAEAAAAJAAEAAAAFAAIAAAAJAAIAAAABAAEAAAAJAAMAAAABAAEAAAAJAAQAAAABAAEAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAABAAIAAAD8//v/AAABAAIAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAABAAIAAAAAAPv/AAABAAIAAAABAPv/AAABAAIAAAACAPv/AAABAAIAAAADAPv/AAABAAIAAAAEAPv/AAABAAIAAAAFAPv/AAABAAIAAAAGAPv/AAABAAIAAAAHAPv/AAABAAIAAAAIAPv/AAABAAIAAAD3/wQAAAABAAAAAAD4/wQAAAABAAAAAAD5/wQAAAABAAAAAAD6/wQAAAABAAAAAAD7/wQAAAAFAAIAAAD8/wQAAAABAAEAAAD9/wQAAAABAAEAAAD+/wQAAAABAAEAAAD//wQAAAABAAEAAAAAAAQAAAABAAEAAAABAAQAAAABAAEAAAACAAQAAAABAAEAAAADAAQAAAABAAEAAAAEAAQAAAABAAEAAAAFAAQAAAABAAEAAAAGAAQAAAABAAEAAAAHAAQAAAABAAEAAAAIAAQAAAABAAEAAAD7/wMAAAAAAAAAAAD8/wMAAAABAAAAAAD9/wMAAAABAAAAAAD+/wMAAAABAAAAAAD//wIAAAAAAAEAAAD//wEAAAAAAAAAAAAAAAEAAAAEAAIAAAABAAEAAAACAAAAAAABAAIAAAACAAEAAAABAAMAAAADAAIAAAD//wMAAAAFAAIAAAAAAAIAAAABAAEAAAAAAAMAAAABAAEAAAD3/wAAAAABAAAAAAD4/wAAAAABAAAAAAD5/wAAAAABAAAAAAD6/wAAAAAGAAAAAAD7/wAAAAAIAAAAAVD3//3/AAAIAAEAAFD4//3/AAAIAAEAAFD5//3/AAAIAAEAAFD6//3/AAAIAAEAAFD7//3/AAAIAAEAAFD8//3/AAAIAAEAAFD9//3/AAAIAAEAAFD+//3/AAACAAAAAAAAAP//AAABAAIAAAD/////AAAAAAIAAAD///7/AAAHAAAAAAAAAP7/AAACAAAAAAABAP//AAAIAAAAAVD+//7/AAAAAAIAAAAFAAEAAAAAAAAAAAAFAAIAAAAAAAEAAAACAAMAAAABAAAAAAADAAMAAAABAAAAAAAEAAMAAAABAAAAAAAFAAMAAAAFAAIAAAAGAAMAAAABAAEAAAAHAAMAAAABAAEAAAAIAAMAAAABAAEAAAAGAAEAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAD3/wEAAAABAAIAAAD4/wEAAAABAAIAAAD5/wEAAAABAAIAAAAGAAIAAAABAAEAAAAHAAIAAAABAAEAAAAIAAIAAAABAAEAAAD6/wEAAAACAAIAAAA=") +tile_set = SubResource("TileSet_n3khe") + +[node name="TextureRect2" type="TextureRect" parent="." index="5"] +z_index = -100 +material = SubResource("ShaderMaterial_mvq46") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -320.0 +offset_top = -158.0 +offset_right = -320.0 +offset_bottom = -158.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("4_eh1te") +stretch_mode = 1 + +[node name="AnimatableBody2D" parent="." index="6" instance=ExtResource("5_g32pt")] +position = Vector2(-65, 64) + +[node name="AnimatableBody2D2" parent="." index="7" instance=ExtResource("5_g32pt")] +position = Vector2(-250, -32) +scale = Vector2(0.5, 0.5) + +[node name="AnimatableBody2D4" parent="." index="8" instance=ExtResource("5_g32pt")] +position = Vector2(112, 48) +scale = Vector2(0.5, 0.5) + +[node name="AnimatableBody2D3" parent="." index="9" instance=ExtResource("5_g32pt")] +position = Vector2(0, -82) + +[node name="Laser" parent="." index="10" instance=ExtResource("6_kbfc1")] +position = Vector2(15, 15) + +[node name="PressurePlate" parent="." index="11" instance=ExtResource("7_5joy3")] +position = Vector2(-272, -32) +rotation = 1.57987 + +[node name="Goal" parent="." index="12" instance=ExtResource("8_sbr7w")] +position = Vector2(-272, -112) +next = ExtResource("9_0dfbn") + +[node name="Walls" parent="." index="13"] +collision_mask = 22 + +[node name="Ceiling" parent="Walls" index="0"] +position = Vector2(57, -171) + +[node name="LeftWall" parent="Walls" index="1"] +position = Vector2(-320, 26) + +[node name="RightWall" parent="Walls" index="2"] +position = Vector2(338, 15) + +[node name="Layer0" parent="." index="15"] +visible = false diff --git a/gmtk_2024/levels/Level_2_Rooms/level_2_room_2.tscn b/gmtk_2024/levels/Level_2_Rooms/level_2_room_2.tscn new file mode 100644 index 0000000..5f98d5d --- /dev/null +++ b/gmtk_2024/levels/Level_2_Rooms/level_2_room_2.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=5 format=4 uid="uid://dg4x0lmww373y"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_q5hrj"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="2_gt5hf"] +[ext_resource type="PackedScene" uid="uid://dg4x0lmww373x" path="res://levels/Level_2_Rooms/level_2_room_3.tscn" id="3_8hix8"] +[ext_resource type="PackedScene" uid="uid://cys3y6mvx2r51" path="res://objects/OneTimeBlock.tscn" id="4_odipr"] + +[node name="LevelBase" instance=ExtResource("1_q5hrj")] + +[node name="Player" parent="." index="0"] +position = Vector2(-266, 112) + +[node name="Layer0" parent="." index="5"] +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAACAAEAAAD2//7/AAACAAEAAAD2////AAACAAEAAAD2/wAAAAACAAEAAAD2/wEAAAACAAEAAAD2/wIAAAACAAEAAAD2/wMAAAACAAEAAAD2/wQAAAADAAIAAAAJAPv/AAABAAIAAAAJAP7/AAAHAAAAAAAJAP//AAAAAAEAAAAJAAAAAAAAAAEAAAAJAAEAAAAAAAEAAAAJAAIAAAAAAAEAAAAJAAMAAAAAAAEAAAAJAAQAAAAAAAEAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAABAAIAAAD8//v/AAABAAIAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAABAAIAAAAAAPv/AAABAAIAAAABAPv/AAABAAIAAAACAPv/AAABAAIAAAADAPv/AAABAAIAAAAEAPv/AAABAAIAAAAFAPv/AAABAAIAAAAGAPv/AAABAAIAAAAHAPv/AAABAAIAAAAIAPv/AAABAAIAAAD3/wQAAAACAAAAAAD5/wQAAAAGAAAAAGD6/wQAAAACAAAAAAD9/wQAAAAAAAAAAAD+/wQAAAABAAAAAAD//wQAAAACAAAAAAD5/wMAAAAIAAEAAAD9/wIAAAAAAAIAAAD+/wIAAAACAAIAAAD9/wEAAAAAAAEAAAD+/wEAAAACAAEAAAD9/wAAAAAAAAAAAAD+/wAAAAACAAAAAAABAAIAAAAAAAIAAAABAAEAAAAAAAAAAAACAAEAAAACAAAAAAACAAIAAAACAAIAAAAFAAAAAAAIAAAAAgAGAAAAAAAIAAAAAwAIAP7/AAAIAAEAAFAHAP7/AAAIAAEAAFAGAP7/AAAIAAEAAFAFAP7/AAAIAAEAAFAEAP7/AAAIAAEAAFADAP7/AAAGAAEAAAADAP3/AAACAAAAAAACAP3/AAAHAAAAAAD5////AAAAAAIAAAD6////AAACAAIAAAD5//7/AAAAAAAAAAD6//7/AAACAAAAAAD8//3/AAAIAAAAAgD9//3/AAAIAAEAAFABAP3/AAAIAAAAAgD+//3/AAAIAAEAAFD5/wIAAAAIAAAAAAACAP7/AAAAAAIAAAD///3/AAAIAAAAAwA=") + +[node name="Goal" parent="." index="7" instance=ExtResource("2_gt5hf")] +position = Vector2(298, -93) +next = ExtResource("3_8hix8") + +[node name="AnimatableBody2D" parent="." index="8" instance=ExtResource("4_odipr")] +position = Vector2(-128, 31) + +[node name="AnimatableBody2D2" parent="." index="9" instance=ExtResource("4_odipr")] +position = Vector2(-78, 113) +scale = Vector2(0.5, 0.5) diff --git a/gmtk_2024/levels/Level_2_Rooms/level_2_room_3.tscn b/gmtk_2024/levels/Level_2_Rooms/level_2_room_3.tscn new file mode 100644 index 0000000..cd09e86 --- /dev/null +++ b/gmtk_2024/levels/Level_2_Rooms/level_2_room_3.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=6 format=4 uid="uid://dg4x0lmww373x"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_fnfel"] +[ext_resource type="PackedScene" uid="uid://d0q0sfati8wk0" path="res://objects/ResizableBlock.tscn" id="2_myppf"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="3_ubjab"] +[ext_resource type="PackedScene" uid="uid://bvvxwhg4tihng" path="res://menu/level_menu/level_select.tscn" id="4_2hlyi"] +[ext_resource type="PackedScene" uid="uid://cys3y6mvx2r51" path="res://objects/OneTimeBlock.tscn" id="5_umo3r"] + +[node name="LevelBase" instance=ExtResource("1_fnfel")] + +[node name="Player" parent="." index="0"] +position = Vector2(-271, -112) + +[node name="Block2" parent="." index="4" instance=ExtResource("2_myppf")] +position = Vector2(-48, 127) +scale = Vector2(0.5, 0.5) + +[node name="Goal" parent="." index="5" instance=ExtResource("3_ubjab")] +position = Vector2(-72, -97) +next = ExtResource("4_2hlyi") + +[node name="TextureRect" parent="." index="6"] +offset_left = -319.0 +offset_right = -319.0 + +[node name="Layer0" parent="." index="7"] +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAACAAEAAAD2//7/AAACAAEAAAD2////AAACAAEAAAD2/wAAAAACAAEAAAD2/wEAAAACAAEAAAD2/wIAAAACAAEAAAD2/wMAAAACAAEAAAD2/wQAAAADAAIAAAAJAPv/AAAFAAAAAAAJAPz/AAAAAAEAAAAJAP3/AAAAAAEAAAAJAP7/AAAAAAEAAAAJAP//AAAAAAEAAAAJAAAAAAABAAEAAAAJAAEAAAABAAEAAAAJAAIAAAABAAEAAAAJAAMAAAABAAEAAAAJAAQAAAABAAEAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAAFAAAAAAD8//v/AAADAAAAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAABAAIAAAAAAPv/AAABAAIAAAABAPv/AAAFAAAAAAACAPv/AAADAAAAAAADAPv/AAABAAIAAAAEAPv/AAABAAIAAAAFAPv/AAABAAIAAAAGAPv/AAABAAIAAAAHAPv/AAABAAIAAAAIAPv/AAABAAIAAAD6/wQAAAAAAAEAAAD7/wQAAAACAAEAAAABAAQAAAAAAAEAAAACAAQAAAACAAEAAAAHAAQAAAAAAAEAAAAIAAQAAAABAAEAAAD3//7/AAAIAAEAAFD4//7/AAAIAAAAAwD7//z/AAAAAAEAAAD7//3/AAAAAAEAAAD7//7/AAAAAAEAAAD7////AAAAAAIAAAD8////AAABAAIAAAD8//7/AAADAAIAAAD9//7/AAAGAAAAAAD///7/AAAIAAEAAFD+//7/AAAIAAEAAFABAPz/AAAAAAIAAAAAAP7/AAAIAAEAAFABAP7/AAAIAAEAAFACAP7/AAAIAAEAAFADAP7/AAAIAAEAAFAEAP7/AAAIAAAAAwAIAAAAAAABAAAAAAAHAAAAAAAAAAAAAAAHAAEAAAAAAAEAAAAHAAIAAAAAAAEAAAAHAAMAAAAAAAEAAAAIAAMAAAABAAEAAAAIAAIAAAABAAEAAAAIAAEAAAABAAEAAAD6/wIAAAAAAAAAAAD7/wIAAAACAAAAAAD6/wMAAAAAAAEAAAD7/wMAAAACAAEAAAABAAIAAAAAAAAAAAABAAMAAAAAAAEAAAACAAIAAAACAAAAAAACAAMAAAACAAEAAAD8//z/AAACAAEAAAD8//3/AAACAAEAAAD9////AAACAAIAAAACAPz/AAACAAIAAAA=") + +[node name="AnimatableBody2D" parent="." index="9" instance=ExtResource("5_umo3r")] +position = Vector2(-192, -39) + +[node name="AnimatableBody2D2" parent="." index="10" instance=ExtResource("5_umo3r")] +position = Vector2(258, -96) + +[node name="AnimatableBody2D3" parent="." index="11" instance=ExtResource("5_umo3r")] +position = Vector2(64, -80) +scale = Vector2(0.5, 0.5) diff --git a/gmtk_2024/levels/Level_3_Rooms/level_3_room_2.tscn b/gmtk_2024/levels/Level_3_Rooms/level_3_room_2.tscn new file mode 100644 index 0000000..c626dd1 --- /dev/null +++ b/gmtk_2024/levels/Level_3_Rooms/level_3_room_2.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=6 format=4 uid="uid://bafs3yuts8e3v"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_t601r"] +[ext_resource type="PackedScene" uid="uid://biaxahxft1xo0" path="res://objects/box_pushable_2.tscn" id="2_12bbn"] +[ext_resource type="PackedScene" uid="uid://cys3y6mvx2r51" path="res://objects/OneTimeBlock.tscn" id="3_rf2v0"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="4_3ywhr"] +[ext_resource type="PackedScene" uid="uid://n2culjgg5aji" path="res://objects/LevelComplete.tscn" id="5_112df"] + +[node name="LevelBase" instance=ExtResource("1_t601r")] + +[node name="Player" parent="." index="0"] +position = Vector2(-15, -88) + +[node name="Layer0" parent="." index="5"] +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAACAAEAAAD2//7/AAACAAEAAAD2////AAACAAEAAAD2/wAAAAACAAEAAAD2/wEAAAACAAEAAAD2/wIAAAACAAEAAAD2/wMAAAACAAEAAAD2/wQAAAACAAEAAAAJAPv/AAAFAAAAAAAJAPz/AAAAAAEAAAAJAP3/AAAAAAEAAAAJAP7/AAAFAAIAAAAJAP//AAAFAAAAAAAJAAAAAAAAAAEAAAAJAAEAAAAAAAEAAAAJAAIAAAAAAAEAAAAJAAMAAAAAAAEAAAAJAAQAAAAFAAIAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAABAAIAAAD8//v/AAABAAIAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAACAAIAAAAIAPv/AAAAAAIAAAD5/wQAAAAGAAAAAGD6/wQAAAABAAAAAAD7/wQAAAABAAAAAAD8/wQAAAACAAAAAAACAAQAAAAAAAAAAAADAAQAAAABAAAAAAAEAAQAAAABAAAAAAAFAAQAAAABAAAAAAAGAAQAAAABAAAAAAAHAAQAAAABAAAAAAAIAAQAAAABAAAAAAD5//7/AAAAAAAAAAD6//7/AAABAAAAAAD7//7/AAABAAAAAAD8//7/AAABAAAAAAD9//7/AAABAAAAAAD+//7/AAABAAAAAAD///7/AAABAAAAAAAGAP7/AAAAAAAAAAAHAP7/AAABAAAAAAAIAP7/AAABAAAAAAD5////AAAHAAAAAGD6////AAABAAIAAAD7////AAABAAIAAAD8////AAABAAIAAAD9////AAABAAIAAAD+////AAABAAIAAAD/////AAABAAIAAAAAAP//AAABAAIAAAABAP//AAABAAIAAAACAP//AAACAAIAAAAGAP//AAAAAAIAAAAHAP//AAABAAIAAAAIAP//AAABAAIAAAD5/wAAAAAIAAEAAAD5/wEAAAAIAAEAAAD5/wIAAAAIAAEAAAD5/wMAAAAIAAEAAAAAAP7/AAABAAAAAAABAP7/AAABAAAAAAACAP7/AAACAAAAAAD8/wUAAAACAAEAAAD8/wYAAAABAAEAAAD9/wYAAAABAAEAAAD+/wYAAAABAAEAAAD//wYAAAABAAEAAAAAAAYAAAABAAEAAAABAAYAAAABAAEAAAACAAYAAAABAAEAAAADAAYAAAABAAEAAAACAAUAAAAAAAEAAAADAAUAAAABAAEAAAD///r/AAABAAEAAAAAAPr/AAABAAIAAAABAPr/AAABAAIAAAACAPr/AAABAAIAAAADAPr/AAABAAIAAAAEAPr/AAABAAIAAAAFAPr/AAABAAIAAAAGAPr/AAABAAIAAAAHAPr/AAABAAIAAAAIAPr/AAABAAIAAAABAPn/AAABAAIAAAACAPn/AAABAAIAAAADAPn/AAABAAIAAAAEAPn/AAABAAIAAAAFAPn/AAABAAIAAAAGAPn/AAABAAIAAAAHAPn/AAABAAIAAAAIAPn/AAABAAIAAAAJAPn/AAABAAIAAAAJAPr/AAABAAIAAAA=") + +[node name="BoxPushable1" parent="." index="7" instance=ExtResource("2_12bbn")] +position = Vector2(49, -96) +collision_mask = 21 + +[node name="AnimatableBody2D" parent="." index="8" instance=ExtResource("3_rf2v0")] +position = Vector2(-255, -31) + +[node name="Goal" parent="." index="9" instance=ExtResource("4_3ywhr")] +position = Vector2(-160, 95) +next = ExtResource("5_112df") diff --git a/gmtk_2024/levels/Level_3_Rooms/level_3_room_3.tscn b/gmtk_2024/levels/Level_3_Rooms/level_3_room_3.tscn new file mode 100644 index 0000000..567262e --- /dev/null +++ b/gmtk_2024/levels/Level_3_Rooms/level_3_room_3.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=4 uid="uid://dncy4ik2v5axn"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_d4hqf"] +[ext_resource type="PackedScene" uid="uid://vtwswrkfkgas" path="res://objects/EnemyMover.tscn" id="3_4yoc7"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="4_djcls"] + +[node name="LevelBase" instance=ExtResource("1_d4hqf")] + +[node name="Player" parent="." index="0"] +position = Vector2(-278, 79) + +[node name="Layer0" parent="." index="5"] +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAACAAEAAAD2//7/AAACAAEAAAD2////AAACAAEAAAD2/wAAAAACAAEAAAD2/wEAAAACAAEAAAD2/wIAAAACAAEAAAD2/wMAAAADAAIAAAD2/wQAAAABAAEAAAAJAPv/AAAFAAAAAAAJAPz/AAAAAAEAAAAJAP3/AAAAAAEAAAAJAP7/AAAFAAIAAAAJAP//AAABAAEAAAAJAAAAAAABAAEAAAAJAAEAAAABAAEAAAAJAAIAAAABAAEAAAAJAAMAAAABAAEAAAAJAAQAAAABAAEAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAABAAIAAAD8//v/AAABAAIAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAABAAIAAAAAAPv/AAABAAIAAAABAPv/AAABAAIAAAACAPv/AAABAAIAAAADAPv/AAABAAIAAAAEAPv/AAABAAIAAAAFAPv/AAABAAIAAAAGAPv/AAABAAIAAAAHAPv/AAABAAIAAAAIAPv/AAABAAIAAAD3/wQAAAABAAEAAAD4/wQAAAABAAEAAAD5/wQAAAABAAEAAAD6/wQAAAABAAEAAAD7/wQAAAABAAEAAAD8/wQAAAABAAEAAAD9/wQAAAABAAEAAAD+/wQAAAABAAEAAAD//wQAAAABAAEAAAAAAAQAAAABAAEAAAABAAQAAAABAAEAAAACAAQAAAABAAEAAAADAAQAAAABAAEAAAAEAAQAAAABAAEAAAAFAAQAAAABAAEAAAAGAAQAAAABAAEAAAAHAAQAAAABAAEAAAAIAAQAAAABAAEAAAD3/wMAAAABAAAAAAD4/wMAAAAFAAIAAAD4/wIAAAAAAAAAAAD5/wMAAAABAAEAAAD5/wIAAAABAAEAAAD5/wEAAAAAAAAAAAD6/wIAAAABAAEAAAD6/wMAAAABAAEAAAD6/wEAAAABAAAAAAD7/wEAAAAFAAIAAAD7/wIAAAABAAEAAAD7/wMAAAABAAEAAAD8/wMAAAABAAEAAAD8/wIAAAABAAEAAAD8/wEAAAABAAEAAAD8/wAAAAABAAAAAAD7/wAAAAAAAAAAAAD9/wEAAAABAAEAAAD9/wIAAAABAAEAAAD9/wMAAAABAAEAAAD+/wEAAAABAAEAAAD+/wAAAAABAAEAAAD9/wAAAAAFAAIAAAD9////AAAAAAAAAAD+////AAABAAAAAAD+/wIAAAABAAEAAAD+/wMAAAABAAEAAAD//wMAAAABAAEAAAD//wIAAAABAAEAAAD//wEAAAABAAEAAAD//wAAAAABAAEAAAD/////AAAFAAIAAAAAAP7/AAABAAAAAAAAAP//AAABAAEAAAAAAAAAAAABAAEAAAAAAAEAAAABAAEAAAAAAAIAAAABAAEAAAAAAAMAAAABAAEAAAABAAMAAAABAAEAAAABAP7/AAABAAAAAAACAP7/AAABAAAAAAADAP7/AAABAAAAAAAEAP7/AAABAAAAAAAFAP7/AAABAAAAAAAGAP7/AAABAAAAAAAHAP7/AAABAAAAAAAIAP7/AAABAAAAAAAIAP//AAABAAEAAAAHAP//AAABAAEAAAAGAP//AAABAAEAAAAFAP//AAABAAEAAAAEAP//AAABAAEAAAADAP//AAABAAEAAAACAP//AAABAAEAAAABAP//AAABAAEAAAABAAAAAAABAAEAAAACAAAAAAABAAEAAAADAAAAAAABAAEAAAAEAAAAAAABAAEAAAAFAAAAAAABAAEAAAAGAAAAAAABAAEAAAAHAAAAAAABAAEAAAAGAAEAAAABAAEAAAAFAAIAAAABAAEAAAAEAAIAAAABAAEAAAADAAIAAAABAAEAAAACAAIAAAABAAEAAAAGAAIAAAABAAEAAAAHAAIAAAABAAEAAAAIAAEAAAABAAEAAAAHAAEAAAABAAEAAAAFAAEAAAABAAEAAAAEAAEAAAABAAEAAAADAAEAAAABAAEAAAACAAEAAAABAAEAAAABAAEAAAABAAEAAAABAAIAAAABAAEAAAAGAAMAAAABAAEAAAAFAAMAAAABAAEAAAAEAAMAAAABAAEAAAAHAAMAAAABAAEAAAAIAAIAAAABAAEAAAAIAAAAAAABAAEAAAADAAMAAAABAAEAAAACAAMAAAABAAEAAAAIAAMAAAABAAEAAAD///7/AAAAAAAAAAA=") + +[node name="Goal" parent="." index="7" instance=ExtResource("4_djcls")] +position = Vector2(267, -103) + +[node name="EnemyMover" parent="." index="8" instance=ExtResource("3_4yoc7")] +position = Vector2(36, -84) + +[node name="EnemyMover2" parent="." index="9" instance=ExtResource("3_4yoc7")] +position = Vector2(-58, -52) diff --git a/gmtk_2024/levels/level_1.tscn b/gmtk_2024/levels/level_1.tscn new file mode 100644 index 0000000..6d86264 --- /dev/null +++ b/gmtk_2024/levels/level_1.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=5 format=4 uid="uid://cxsstkfcffdch"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_87xn7"] +[ext_resource type="PackedScene" uid="uid://bgrwqfa7lr66a" path="res://levels/Level_1_Rooms/level_1_2.tscn" id="3_usr81"] +[ext_resource type="PackedScene" uid="uid://d0q0sfati8wk0" path="res://objects/ResizableBlock.tscn" id="5_4ggcc"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="9_xut5w"] + +[node name="LevelBase" instance=ExtResource("1_87xn7")] + +[node name="Player" parent="." index="1"] +position = Vector2(-254, 99) +input_pickable = true + +[node name="Goal" parent="." index="4" instance=ExtResource("9_xut5w")] +position = Vector2(-272, -112) +next = ExtResource("3_usr81") + +[node name="Walls" parent="." index="5"] +collision_mask = 22 + +[node name="Ceiling" parent="Walls" index="0"] +position = Vector2(57, -171) + +[node name="LeftWall" parent="Walls" index="1"] +position = Vector2(-320, 26) + +[node name="RightWall" parent="Walls" index="2"] +position = Vector2(338, 15) + +[node name="Layer0" parent="." index="7"] +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAADAAIAAAD2//7/AAABAAEAAAD2////AAABAAEAAAD2/wAAAAABAAEAAAD2/wEAAAADAAAAAAD2/wIAAAACAAEAAAD2/wMAAAACAAEAAAD2/wQAAAADAAIAAAAJAPv/AAAFAAAAAAAJAPz/AAAAAAEAAAAJAP3/AAAAAAEAAAAJAP7/AAAAAAEAAAAJAP//AAAAAAEAAAAJAAAAAAAAAAEAAAAJAAEAAAAAAAEAAAAJAAIAAAAAAAEAAAAJAAMAAAAAAAEAAAAJAAQAAAAFAAIAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAABAAIAAAD8//v/AAABAAIAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAABAAIAAAAAAPv/AAABAAIAAAABAPv/AAABAAIAAAACAPv/AAABAAIAAAADAPv/AAABAAIAAAAEAPv/AAABAAIAAAAFAPv/AAABAAIAAAAGAPv/AAABAAIAAAAHAPv/AAABAAIAAAAIAPv/AAABAAIAAAD3/wQAAAABAAAAAAD4/wQAAAABAAAAAAD5/wQAAAABAAAAAAD6/wQAAAABAAAAAAD7/wQAAAABAAAAAAD8/wQAAAABAAAAAAD9/wQAAAABAAAAAAD+/wQAAAABAAAAAAD//wQAAAABAAAAAAAAAAQAAAABAAAAAAABAAQAAAABAAAAAAACAAQAAAABAAAAAAADAAQAAAABAAAAAAAEAAQAAAABAAAAAAAFAAQAAAABAAAAAAAGAAQAAAABAAAAAAAHAAQAAAABAAAAAAAIAAQAAAABAAAAAAABAAEAAAAAAAIAAAACAAEAAAACAAIAAAD3////AAABAAEAAAD4////AAACAAEAAAD4/wAAAAACAAEAAAD3/wAAAAABAAEAAAD3/wEAAAABAAIAAAD4/wEAAAACAAIAAAD3//7/AAABAAEAAAD4//7/AAACAAEAAAD3//3/AAABAAAAAAD4//3/AAACAAAAAAABAAAAAAAAAAAAAAACAAAAAAACAAAAAAA=") + +[node name="AnimatableBody2D" parent="." index="8" instance=ExtResource("5_4ggcc")] +position = Vector2(252, 96) + +[node name="AnimatableBody2D2" parent="." index="9" instance=ExtResource("5_4ggcc")] +position = Vector2(-134, 40) +scale = Vector2(0.5, 0.5) diff --git a/gmtk_2024/levels/level_2.tscn b/gmtk_2024/levels/level_2.tscn new file mode 100644 index 0000000..10e3185 --- /dev/null +++ b/gmtk_2024/levels/level_2.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=5 format=4 uid="uid://sxx7ndv28mey"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_y0h5c"] +[ext_resource type="PackedScene" uid="uid://cys3y6mvx2r51" path="res://objects/OneTimeBlock.tscn" id="2_1apa4"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="4_b8j1s"] +[ext_resource type="PackedScene" uid="uid://dg4x0lmww373y" path="res://levels/Level_2_Rooms/level_2_room_2.tscn" id="4_tx4ww"] + +[node name="LevelBase" instance=ExtResource("1_y0h5c")] + +[node name="Player" parent="." index="0"] +position = Vector2(-273, 111) + +[node name="Layer0" parent="." index="5"] +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAACAAEAAAD2//7/AAADAAIAAAD2////AAABAAEAAAD2/wAAAAABAAEAAAD2/wEAAAADAAAAAAD2/wIAAAACAAEAAAD2/wMAAAACAAEAAAD2/wQAAAADAAIAAAAJAPv/AAABAAEAAAAJAPz/AAABAAEAAAAJAP3/AAABAAEAAAAJAP7/AAABAAEAAAAJAP//AAABAAEAAAAJAAAAAAABAAEAAAAJAAEAAAAFAAAAAAAJAAIAAAAAAAEAAAAJAAMAAAAAAAEAAAAJAAQAAAAFAAIAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAABAAIAAAD8//v/AAABAAIAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAABAAIAAAAAAPv/AAABAAIAAAABAPv/AAABAAIAAAACAPv/AAABAAIAAAADAPv/AAABAAIAAAAEAPv/AAABAAIAAAAFAPv/AAABAAIAAAAGAPv/AAABAAIAAAAHAPv/AAAFAAAAAAAIAPv/AAABAAEAAAD3/wQAAAABAAAAAAD4/wQAAAABAAAAAAD5/wQAAAABAAAAAAD6/wQAAAABAAAAAAD7/wQAAAABAAAAAAD8/wQAAAABAAAAAAD9/wQAAAABAAAAAAD+/wQAAAABAAAAAAD//wQAAAABAAAAAAAAAAQAAAABAAAAAAABAAQAAAABAAAAAAACAAQAAAABAAAAAAADAAQAAAABAAAAAAAEAAQAAAABAAAAAAAFAAQAAAABAAAAAAAGAAQAAAABAAAAAAAHAAQAAAABAAAAAAAIAAQAAAABAAAAAAD3/wEAAAABAAIAAAD4/wEAAAABAAIAAAD5/wEAAAABAAIAAAD6/wEAAAABAAIAAAD7/wEAAAABAAIAAAD8/wEAAAABAAIAAAD9/wEAAAABAAIAAAD+/wEAAAABAAIAAAD//wEAAAABAAIAAAAAAAEAAAABAAIAAAABAAEAAAAGAAEAAAACAAEAAAAIAAAAAwABAAAAAAACAAAAAAAAAAAAAAABAAAAAAD//wAAAAABAAAAAAD+/wAAAAABAAAAAAD9/wAAAAADAAIAAAD8/wAAAAABAAEAAAD7/wAAAAABAAEAAAD6/wAAAAABAAEAAAD5/wAAAAABAAEAAAD4/wAAAAABAAEAAAD3/wAAAAABAAEAAAD3////AAABAAEAAAD4////AAABAAEAAAD5////AAADAAIAAAD6////AAABAAAAAAD7////AAABAAAAAAD8////AAABAAAAAAD9////AAACAAAAAAD3//7/AAABAAAAAAD4//7/AAABAAAAAAD5//7/AAACAAAAAAAEAAEAAAAIAAAAAgAFAAEAAAAIAAEAAFAGAAEAAAAHAAEAAAAHAAEAAAABAAIAAAAIAAEAAAABAAIAAAAGAAAAAAAAAAAAAAAHAAAAAAAFAAIAAAAHAP//AAAFAAEAAAAHAP7/AAAFAAEAAAAHAP3/AAAFAAEAAAAHAPz/AAAFAAEAAAAIAPz/AAABAAEAAAAIAP3/AAABAAEAAAAIAP7/AAABAAEAAAAIAP//AAABAAEAAAAIAAAAAAABAAEAAAA=") + +[node name="AnimatableBody2D" parent="." index="7" instance=ExtResource("2_1apa4")] +position = Vector2(-131, 97) + +[node name="AnimatableBody2D2" parent="." index="8" instance=ExtResource("2_1apa4")] +position = Vector2(112, 48) +scale = Vector2(0.5, 0.5) + +[node name="Goal" parent="." index="9" instance=ExtResource("4_b8j1s")] +position = Vector2(-264, -93) +next = ExtResource("4_tx4ww") diff --git a/gmtk_2024/levels/level_3.tscn b/gmtk_2024/levels/level_3.tscn new file mode 100644 index 0000000..43664b0 --- /dev/null +++ b/gmtk_2024/levels/level_3.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=7 format=4 uid="uid://badb2xvsbtm5j"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_eq270"] +[ext_resource type="PackedScene" uid="uid://d0q0sfati8wk0" path="res://objects/ResizableBlock.tscn" id="2_fn1kh"] +[ext_resource type="PackedScene" uid="uid://bafs3yuts8e3v" path="res://levels/Level_3_Rooms/level_3_room_2.tscn" id="3_xtvsr"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="4_c4pjs"] +[ext_resource type="PackedScene" uid="uid://d17jpcgayfg6i" path="res://objects/BoxPushable_1.tscn" id="4_jr6tv"] +[ext_resource type="PackedScene" uid="uid://cys3y6mvx2r51" path="res://objects/OneTimeBlock.tscn" id="5_1h3gw"] + +[node name="LevelBase" instance=ExtResource("1_eq270")] + +[node name="Player" parent="." index="0"] +position = Vector2(-261, 46) + +[node name="Layer0" parent="." index="5"] +tile_map_data = PackedByteArray("AAD2//v/AAADAAAAAAD2//z/AAACAAEAAAD2//3/AAACAAEAAAD2//7/AAADAAIAAAD2////AAADAAAAAAD2/wAAAAACAAEAAAD2/wEAAAACAAEAAAD2/wIAAAADAAIAAAD2/wMAAAABAAEAAAD2/wQAAAABAAEAAAAJAPv/AAAFAAAAAAAJAPz/AAAAAAEAAAAJAP3/AAAAAAEAAAAJAP7/AAAAAAEAAAAJAP//AAAAAAEAAAAJAAAAAAAAAAEAAAAJAAEAAAAAAAEAAAAJAAIAAAAFAAIAAAAJAAMAAAABAAEAAAAJAAQAAAABAAEAAAD3//v/AAABAAIAAAD4//v/AAABAAIAAAD5//v/AAABAAIAAAD6//v/AAABAAIAAAD7//v/AAABAAIAAAD8//v/AAABAAIAAAD9//v/AAABAAIAAAD+//v/AAABAAIAAAD///v/AAABAAIAAAAAAPv/AAABAAIAAAABAPv/AAABAAIAAAACAPv/AAABAAIAAAADAPv/AAABAAIAAAAEAPv/AAABAAIAAAAFAPv/AAABAAIAAAAGAPv/AAABAAIAAAAHAPv/AAABAAIAAAAIAPv/AAABAAIAAAD3/wQAAAABAAEAAAD4/wQAAAABAAEAAAD5/wQAAAADAAIAAAD6/wQAAAABAAAAAAD7/wQAAAABAAAAAAD8/wQAAAABAAAAAAD9/wQAAAABAAAAAAD+/wQAAAABAAAAAAD//wQAAAABAAAAAAAAAAQAAAABAAAAAAABAAQAAAABAAAAAAACAAQAAAABAAAAAAADAAQAAAABAAAAAAAEAAQAAAABAAAAAAAFAAQAAAABAAAAAAAGAAQAAAAFAAIAAAAHAAQAAAABAAEAAAAIAAQAAAABAAEAAAD3/wIAAAABAAAAAAD4/wIAAAABAAAAAAD5/wIAAAACAAAAAAD5/wMAAAACAAEAAAD3/wMAAAABAAEAAAD4/wMAAAABAAEAAAAGAAMAAAAAAAEAAAAGAAIAAAAAAAAAAAAHAAIAAAABAAAAAAAHAAMAAAABAAEAAAAIAAIAAAABAAAAAAAIAAMAAAABAAEAAAAFAP//AAACAAIAAAAEAP//AAABAAIAAAADAP//AAABAAIAAAACAP//AAABAAIAAAAAAP//AAABAAIAAAABAP//AAABAAIAAAAFAP7/AAAGAAEAAGAFAP3/AAAIAAAAAAD/////AAABAAIAAAD+////AAABAAIAAAD9////AAABAAIAAAD8////AAABAAIAAAD7////AAABAAIAAAD6////AAABAAIAAAD5////AAABAAIAAAD4////AAABAAIAAAAEAP7/AAABAAAAAAADAP7/AAABAAAAAAACAP7/AAABAAAAAAABAP7/AAABAAAAAAAAAP7/AAABAAAAAAD///7/AAABAAAAAAD+//7/AAABAAAAAAD3////AAABAAIAAAD9//7/AAABAAAAAAD8//7/AAABAAAAAAD7//7/AAABAAAAAAD6//7/AAABAAAAAAD5//7/AAABAAAAAAD4//7/AAABAAAAAAD3//7/AAABAAAAAAA=") + +[node name="Goal" parent="." index="7" instance=ExtResource("4_c4pjs")] +position = Vector2(-257, -95) +next = ExtResource("3_xtvsr") + +[node name="BoxPushable1" parent="." index="8" instance=ExtResource("4_jr6tv")] +position = Vector2(-75, 112) + +[node name="AnimatableBody2D" parent="." index="9" instance=ExtResource("5_1h3gw")] +position = Vector2(-163, 96) + +[node name="AnimatableBody2D2" parent="." index="10" instance=ExtResource("2_fn1kh")] +position = Vector2(259, 34) +scale = Vector2(0.5, 0.5) diff --git a/gmtk_2024/levels/level_test.tscn b/gmtk_2024/levels/level_test.tscn new file mode 100644 index 0000000..21d5217 --- /dev/null +++ b/gmtk_2024/levels/level_test.tscn @@ -0,0 +1,174 @@ +[gd_scene load_steps=12 format=4 uid="uid://ctc0arg3efa5k"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_5gkl4"] +[ext_resource type="Texture2D" uid="uid://c3m4os8kteaix" path="res://textures/level01-spritesheet.png" id="2_qg46i"] +[ext_resource type="Shader" path="res://shaders/scrolling.gdshader" id="3_rojjv"] +[ext_resource type="Texture2D" uid="uid://bn7cejgxkah8o" path="res://textures/Level 01.png" id="4_nk0bq"] +[ext_resource type="PackedScene" uid="uid://d0gpnqknarkg7" path="res://objects/Goal.tscn" id="5_3ut8w"] +[ext_resource type="PackedScene" uid="uid://cpa66thuxma15" path="res://objects/MirrorOrb.tscn" id="6_jm8e5"] +[ext_resource type="PackedScene" uid="uid://br6fngf5208j0" path="res://objects/ResizableBlockBig.tscn" id="7_82440"] +[ext_resource type="PackedScene" uid="uid://vtwswrkfkgas" path="res://objects/EnemyMover.tscn" id="8_m2r3p"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_e817v"] +texture = ExtResource("2_qg46i") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:0/0 = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:0/0 = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +5:0/0 = 0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:0/0 = 0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:0/0 = 0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/next_alternative_id = 4 +8:0/0 = 0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/1 = 1 +8:0/1/flip_v = true +8:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/2 = 2 +8:0/2/transpose = true +8:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/3 = 3 +8:0/3/flip_h = true +8:0/3/transpose = true +8:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:1/0 = 0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:1/0 = 0 +5:1/0 = 0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:1/0 = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:1/0 = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:1/0 = 0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:2/0 = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:2/0 = 0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:2/0 = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +5:2/0 = 0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:2/0 = 0 +7:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 + +[sub_resource type="TileSet" id="TileSet_n3khe"] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_e817v") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mvq46"] +shader = ExtResource("3_rojjv") +shader_parameter/scroll_speed = 0.02 + +[node name="LevelBase" instance=ExtResource("1_5gkl4")] + +[node name="Player" parent="." index="0"] +position = Vector2(-542, 331) +scale = Vector2(2, 2) + +[node name="Walls" parent="." index="3"] +collision_mask = 22 + +[node name="LeftWall" parent="Walls" index="2"] +position = Vector2(-665, 14) + +[node name="Layer0" type="TileMapLayer" parent="." index="4"] +use_parent_material = true +tile_map_data = PackedByteArray("AADt/wsAAAABAAAAAADu/wsAAAABAAAAAADv/wsAAAABAAAAAADw/wsAAAABAAAAAADx/wsAAAABAAAAAADy/wsAAAABAAAAAADz/wsAAAABAAAAAAD0/wsAAAABAAAAAAD1/wsAAAABAAAAAAD2/wsAAAABAAAAAAD3/wsAAAABAAAAAAD4/wsAAAABAAAAAAD5/wsAAAABAAAAAAD6/wsAAAABAAAAAAD7/wsAAAABAAAAAAD8/wsAAAABAAAAAAD9/wsAAAABAAAAAAD+/wsAAAABAAAAAAD//wsAAAABAAAAAAAAAAsAAAABAAAAAAABAAsAAAABAAAAAAACAAsAAAABAAAAAAADAAsAAAABAAAAAAAEAAsAAAABAAAAAAAFAAsAAAABAAAAAAAGAAsAAAABAAAAAAAHAAsAAAABAAAAAAAIAAsAAAABAAAAAAAJAAsAAAABAAAAAAAKAAsAAAAFAAIAAAALAAsAAAABAAEAAAAMAAsAAAABAAEAAAANAAsAAAABAAEAAAAOAAsAAAABAAEAAAAPAAsAAAABAAEAAAAQAAsAAAABAAEAAAARAAsAAAABAAEAAAASAAsAAAABAAEAAAATAAsAAAABAAEAAAAKAPT/AAABAAIAAAALAPT/AAABAAIAAAAMAPT/AAABAAIAAAANAPT/AAABAAIAAAATAPT/AAAFAAAAAAASAPT/AAABAAIAAAARAPT/AAABAAIAAAAQAPT/AAABAAIAAAAPAPT/AAABAAIAAAAOAPT/AAABAAIAAAAJAPT/AAABAAIAAAAIAPT/AAABAAIAAAAHAPT/AAABAAIAAAAGAPT/AAABAAIAAAAFAPT/AAABAAIAAAAEAPT/AAABAAIAAAADAPT/AAABAAIAAAACAPT/AAABAAIAAAD5//T/AAABAAIAAAD4//T/AAABAAIAAAD3//T/AAABAAIAAAD2//T/AAABAAIAAAD1//T/AAABAAIAAAD0//T/AAABAAIAAADz//T/AAABAAIAAADy//T/AAABAAIAAADx//T/AAABAAIAAADw//T/AAABAAIAAADv//T/AAABAAIAAADu//T/AAABAAIAAADt//T/AAABAAIAAADs//T/AAADAAAAAAD6//T/AAABAAIAAAD7//T/AAABAAIAAAD8//T/AAABAAIAAAD9//T/AAABAAIAAAD+//T/AAABAAIAAAD///T/AAABAAIAAAAAAPT/AAABAAIAAAABAPT/AAABAAIAAADs/woAAAACAAEAAADs/wkAAAACAAEAAADs/wgAAAACAAEAAADs/wcAAAACAAEAAADs/wYAAAADAAAAAADs/wUAAAABAAEAAADs/wQAAAABAAEAAADs/wMAAAADAAIAAADs/wIAAAACAAEAAADs/wEAAAACAAEAAADs/wAAAAABAAEAAADs////AAABAAEAAADs//7/AAADAAIAAADs//3/AAACAAEAAADs//z/AAACAAEAAADs//v/AAACAAEAAADs//r/AAACAAEAAADs//X/AAACAAEAAADs//b/AAACAAEAAADs//f/AAACAAEAAADs//j/AAACAAEAAADs//n/AAACAAEAAAATAPX/AAAAAAEAAAATAPb/AAAAAAEAAAATAPf/AAAFAAIAAAATAPj/AAABAAEAAAATAPn/AAABAAEAAAATAPr/AAABAAEAAAATAPv/AAABAAEAAAATAPz/AAAFAAAAAAATAP3/AAAAAAEAAAATAP7/AAAAAAEAAAATAP//AAAAAAEAAAATAAAAAAAAAAEAAAATAAEAAAAAAAEAAAATAAIAAAAAAAEAAAATAAMAAAAAAAEAAAATAAQAAAAAAAEAAAATAAUAAAAAAAEAAAATAAYAAAAAAAEAAAATAAcAAAAAAAEAAAATAAgAAAAAAAEAAAATAAkAAAAFAAIAAAATAAoAAAABAAEAAAAKAAkAAAAAAAAAAAAKAAoAAAAAAAEAAAALAAkAAAABAAAAAAALAAoAAAABAAEAAAAMAAkAAAABAAAAAAAMAAoAAAABAAEAAAANAAkAAAABAAAAAAANAAoAAAABAAEAAAAOAAkAAAABAAAAAAAOAAoAAAABAAEAAAAPAAkAAAABAAAAAAAPAAoAAAABAAEAAAAQAAkAAAABAAAAAAAQAAoAAAABAAEAAAARAAkAAAABAAAAAAARAAoAAAABAAEAAAASAAkAAAABAAAAAAASAAoAAAABAAEAAADt/wMAAAABAAAAAADt/wQAAAABAAEAAADt/wUAAAABAAEAAADt/wYAAAABAAIAAADu/wMAAAABAAAAAADu/wQAAAABAAEAAADu/wUAAAABAAEAAADu/wYAAAABAAIAAADv/wMAAAABAAAAAADv/wQAAAABAAEAAADv/wUAAAABAAEAAADv/wYAAAABAAIAAADw/wMAAAABAAAAAADw/wQAAAABAAEAAADw/wUAAAABAAEAAADw/wYAAAABAAIAAADx/wMAAAABAAAAAADx/wQAAAABAAEAAADx/wUAAAABAAEAAADx/wYAAAABAAIAAADy/wMAAAABAAAAAADy/wQAAAABAAEAAADy/wUAAAABAAEAAADy/wYAAAABAAIAAADz/wMAAAABAAAAAADz/wQAAAABAAEAAADz/wUAAAABAAEAAADz/wYAAAABAAIAAAD0/wMAAAABAAAAAAD0/wQAAAABAAEAAAD0/wUAAAABAAEAAAD0/wYAAAABAAIAAAD1/wMAAAABAAAAAAD1/wQAAAABAAEAAAD1/wUAAAABAAEAAAD1/wYAAAABAAIAAAD2/wMAAAABAAAAAAD2/wQAAAABAAEAAAD2/wUAAAABAAEAAAD2/wYAAAABAAIAAAD3/wMAAAABAAAAAAD3/wQAAAABAAEAAAD3/wUAAAABAAEAAAD3/wYAAAABAAIAAAD4/wMAAAABAAAAAAD4/wQAAAABAAEAAAD4/wUAAAABAAEAAAD4/wYAAAABAAIAAAD5/wMAAAABAAAAAAD5/wQAAAABAAEAAAD5/wUAAAABAAEAAAD5/wYAAAABAAIAAAD6/wMAAAABAAAAAAD6/wQAAAABAAEAAAD6/wUAAAABAAEAAAD6/wYAAAABAAIAAAD7/wMAAAABAAAAAAD7/wQAAAABAAEAAAD7/wUAAAABAAEAAAD7/wYAAAABAAIAAAD8/wMAAAABAAAAAAD8/wQAAAABAAEAAAD8/wUAAAABAAEAAAD8/wYAAAABAAIAAAD9/wMAAAABAAAAAAD9/wQAAAABAAEAAAD9/wUAAAABAAEAAAD9/wYAAAABAAIAAAD+/wMAAAABAAAAAAD+/wQAAAABAAEAAAD+/wUAAAABAAEAAAD+/wYAAAABAAIAAAD//wMAAAABAAAAAAD//wQAAAABAAEAAAD//wUAAAABAAEAAAD//wYAAAABAAIAAAAAAAMAAAABAAAAAAAAAAQAAAABAAEAAAAAAAUAAAABAAEAAAAAAAYAAAABAAIAAAABAAMAAAACAAAAAAABAAQAAAADAAIAAAABAAUAAAABAAEAAAABAAYAAAABAAIAAAACAAQAAAAEAAIAAAACAAUAAAABAAEAAAACAAYAAAABAAIAAAADAAQAAAACAAAAAAADAAUAAAADAAIAAAADAAYAAAABAAIAAAAEAAUAAAAEAAIAAAAEAAYAAAABAAIAAAAFAAUAAAACAAAAAAAFAAYAAAAGAAEAAAAGAAYAAAAIAAAAAwD7/wAAAAABAAIAAAD8/wAAAAABAAIAAAD9/wAAAAABAAIAAAD+/wAAAAABAAIAAAD//wAAAAABAAIAAAAAAAAAAAACAAIAAAD7////AAABAAEAAAD8////AAABAAEAAAD9////AAABAAEAAAD+////AAABAAEAAAD/////AAABAAEAAAAAAP//AAACAAEAAAAAAP7/AAACAAAAAAD///7/AAABAAAAAAD+//7/AAABAAAAAAD9//7/AAABAAAAAAD8//7/AAABAAAAAAD7//7/AAABAAAAAAD6/wAAAAABAAIAAAD5/wAAAAABAAIAAAD4/wAAAAABAAIAAAD3/wAAAAAHAAEAAAD2/wAAAAAIAAAAAgD3////AAAAAAAAAAD4////AAAFAAIAAAD4//7/AAAAAAAAAAD5//7/AAABAAAAAAD6//7/AAABAAAAAAD6////AAABAAEAAAD5////AAABAAEAAADz/wAAAAAIAAAAAwDy/wAAAAAGAAEAAADy////AAACAAAAAADx////AAABAAEAAADw////AAABAAEAAADv////AAABAAEAAADv//7/AAABAAAAAADu//7/AAABAAAAAADt//7/AAABAAAAAADt////AAABAAEAAADu////AAABAAEAAADv/wAAAAABAAIAAADw/wAAAAABAAIAAADx/wAAAAABAAIAAADu/wAAAAABAAIAAADt/wAAAAABAAIAAADw//7/AAABAAAAAADx//7/AAACAAAAAADy//v/AAAIAAAAAgDz//z/AAAAAAIAAAD0//3/AAAAAAIAAAD1//3/AAACAAIAAAD2//z/AAACAAIAAAD3//v/AAAIAAAAAwDz//v/AAAHAAAAAAD0//v/AAABAAAAAAD1//v/AAABAAAAAAD2//v/AAAGAAAAAAD0//z/AAABAAEAAAD1//z/AAABAAEAAAD6//n/AAAIAAAAAgD7//n/AAAHAAAAAAD8//n/AAABAAEAAAD8//j/AAAAAAAAAAD9//j/AAACAAAAAAD9//n/AAABAAEAAAD+//n/AAAGAAAAAAD///n/AAAIAAAAAwD7//r/AAAAAAIAAAD8//r/AAABAAEAAAD9//r/AAABAAEAAAD+//r/AAACAAIAAAD8//v/AAAAAAIAAAD9//v/AAACAAIAAAADAPj/AAAIAAAAAgAEAPj/AAAHAAAAAAAFAPj/AAABAAAAAAAGAPj/AAABAAAAAAAHAPj/AAABAAAAAAAIAPj/AAABAAAAAAAJAPj/AAABAAAAAAAKAPj/AAABAAAAAAALAPj/AAAFAAIAAAALAPf/AAAAAAAAAAAMAPf/AAABAAAAAAANAPf/AAABAAAAAAAOAPf/AAABAAAAAAAPAPf/AAABAAAAAAAQAPf/AAABAAAAAAARAPf/AAABAAAAAAASAPf/AAABAAAAAAASAPj/AAABAAEAAAARAPj/AAABAAEAAAAQAPj/AAABAAEAAAAPAPj/AAABAAEAAAAOAPn/AAABAAEAAAANAPn/AAABAAEAAAAMAPn/AAABAAEAAAAMAPj/AAABAAEAAAANAPj/AAABAAEAAAAOAPj/AAABAAEAAAASAPn/AAABAAEAAAARAPn/AAABAAEAAAAQAPn/AAABAAEAAAAPAPn/AAABAAEAAAALAPn/AAABAAEAAAAKAPn/AAABAAEAAAAJAPn/AAABAAEAAAAIAPn/AAABAAEAAAAHAPn/AAABAAEAAAAGAPn/AAABAAEAAAAFAPn/AAAFAAAAAAAEAPn/AAAAAAIAAAAFAPr/AAAAAAIAAAAGAPr/AAABAAIAAAAHAPr/AAABAAIAAAAIAPr/AAABAAEAAAAJAPr/AAABAAEAAAAKAPr/AAABAAEAAAALAPr/AAABAAEAAAAMAPr/AAABAAEAAAANAPr/AAABAAEAAAAOAPr/AAABAAEAAAAPAPr/AAABAAEAAAAQAPr/AAABAAEAAAARAPr/AAABAAEAAAASAPr/AAABAAEAAAAQAPv/AAABAAEAAAAPAPv/AAABAAEAAAAOAPv/AAABAAEAAAANAPv/AAABAAEAAAAMAPv/AAABAAEAAAALAPv/AAAFAAAAAAAKAPv/AAABAAIAAAAJAPv/AAABAAIAAAAIAPv/AAAAAAIAAAARAPv/AAABAAEAAAASAPv/AAABAAEAAAASAPz/AAABAAIAAAARAPz/AAABAAIAAAAQAPz/AAABAAIAAAAPAPz/AAABAAIAAAAOAPz/AAABAAIAAAANAPz/AAABAAIAAAAMAPz/AAABAAIAAAALAPz/AAAAAAIAAADs/wsAAAADAAIAAAA=") +tile_set = SubResource("TileSet_n3khe") + +[node name="TextureRect" type="TextureRect" parent="." index="5"] +z_index = -100 +material = SubResource("ShaderMaterial_mvq46") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -640.0 +offset_top = -360.0 +offset_right = -640.0 +offset_bottom = -360.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("4_nk0bq") +stretch_mode = 1 + +[node name="Goal" parent="." index="6" instance=ExtResource("5_3ut8w")] +position = Vector2(582, -317) + +[node name="MirrorOrb" parent="." index="7" instance=ExtResource("6_jm8e5")] +position = Vector2(-431, -212) + +[node name="Block" parent="." index="8" instance=ExtResource("7_82440")] +position = Vector2(432, 186) +collision_layer = 1 + +[node name="EnemyMover" parent="." index="9" instance=ExtResource("8_m2r3p")] +position = Vector2(-132, 311) + +[node name="Block3" parent="." index="10" instance=ExtResource("7_82440")] +position = Vector2(162, 124) +collision_layer = 1 diff --git a/gmtk_2024/menu/PauseMenu.tscn b/gmtk_2024/menu/PauseMenu.tscn new file mode 100644 index 0000000..2389ff7 --- /dev/null +++ b/gmtk_2024/menu/PauseMenu.tscn @@ -0,0 +1,87 @@ +[gd_scene load_steps=5 format=3 uid="uid://s683ua4q2ewm"] + +[ext_resource type="Theme" uid="uid://cohbys634cf18" path="res://menu/main_menu/MainMenuTheme.tres" id="1_fna2g"] +[ext_resource type="PackedScene" uid="uid://dii1q3f5dj72y" path="res://objects/CRT.tscn" id="2_vaod1"] +[ext_resource type="Script" path="res://scripts/pause_menu_control.gd" id="3_tyr11"] +[ext_resource type="FontFile" uid="uid://d3pbvdemdbxes" path="res://CommodoreSixtyFour.ttf" id="4_u4plf"] + +[node name="PauseMenu" type="MarginContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_fna2g") + +[node name="CanvasLayer" parent="." instance=ExtResource("2_vaod1")] + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 2 +color = Color(0, 0, 0, 1) + +[node name="Control" type="Control" parent="."] +layout_mode = 2 +script = ExtResource("3_tyr11") + +[node name="VBoxContainer" type="VBoxContainer" parent="Control"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="VBoxContainer2" type="VBoxContainer" parent="Control/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/VBoxContainer2"] +layout_mode = 2 + +[node name="Buttons" type="VBoxContainer" parent="Control/VBoxContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="Control/VBoxContainer/Buttons"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/Buttons/HBoxContainer"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("4_u4plf") +text = ">" + +[node name="continue" type="Button" parent="Control/VBoxContainer/Buttons/HBoxContainer"] +layout_mode = 2 +text = "continue" +flat = true + +[node name="HBoxContainer2" type="HBoxContainer" parent="Control/VBoxContainer/Buttons"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/Buttons/HBoxContainer2"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("4_u4plf") +text = ">" + +[node name="restart" type="Button" parent="Control/VBoxContainer/Buttons/HBoxContainer2"] +layout_mode = 2 +text = "restart" +flat = true + +[node name="HBoxContainer3" type="HBoxContainer" parent="Control/VBoxContainer/Buttons"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/Buttons/HBoxContainer3"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("4_u4plf") +text = ">" + +[node name="main menu" type="Button" parent="Control/VBoxContainer/Buttons/HBoxContainer3"] +layout_mode = 2 +text = "main menu" +flat = true + +[connection signal="pressed" from="Control/VBoxContainer/Buttons/HBoxContainer/continue" to="Control" method="_on_continue_button_pressed"] +[connection signal="pressed" from="Control/VBoxContainer/Buttons/HBoxContainer2/restart" to="Control" method="_on_restart_button_pressed"] +[connection signal="pressed" from="Control/VBoxContainer/Buttons/HBoxContainer3/main menu" to="Control" method="_on_back_to_main_menu_button_pressed"] diff --git a/gmtk_2024/menu/level_menu/level_button.tscn b/gmtk_2024/menu/level_menu/level_button.tscn new file mode 100644 index 0000000..2f6dc9f --- /dev/null +++ b/gmtk_2024/menu/level_menu/level_button.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=7 format=3 uid="uid://t83eid7pf4iv"] + +[ext_resource type="FontFile" uid="uid://d3pbvdemdbxes" path="res://CommodoreSixtyFour.ttf" id="3_732s0"] +[ext_resource type="Texture2D" uid="uid://dvk7nu7pp4fl3" path="res://textures/File-Icon-Sheet.png" id="3_bbfoq"] +[ext_resource type="Script" path="res://scripts/level_menu_level_button.gd" id="3_e83yn"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_xlv6q"] +atlas = ExtResource("3_bbfoq") +region = Rect2(99, 6, 26, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ih6f2"] +atlas = ExtResource("3_bbfoq") +region = Rect2(354, 6, 28, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fekch"] +atlas = ExtResource("3_bbfoq") +region = Rect2(35, 6, 26, 24) + +[node name="LevelButton" type="TextureButton"] +custom_minimum_size = Vector2(50, 50) +offset_right = 40.0 +offset_bottom = 40.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +disabled = true +texture_normal = SubResource("AtlasTexture_xlv6q") +texture_hover = SubResource("AtlasTexture_ih6f2") +texture_disabled = SubResource("AtlasTexture_fekch") +ignore_texture_size = true +stretch_mode = 5 +script = ExtResource("3_e83yn") + +[node name="Label" type="Label" parent="."] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 3 +theme_override_fonts/font = ExtResource("3_732s0") +theme_override_font_sizes/font_size = 35 +text = "1" +horizontal_alignment = 1 +vertical_alignment = 1 + +[connection signal="pressed" from="." to="." method="_on_pressed"] diff --git a/gmtk_2024/menu/level_menu/level_select.tscn b/gmtk_2024/menu/level_menu/level_select.tscn new file mode 100644 index 0000000..cb8d0c8 --- /dev/null +++ b/gmtk_2024/menu/level_menu/level_select.tscn @@ -0,0 +1,93 @@ +[gd_scene load_steps=6 format=3 uid="uid://bvvxwhg4tihng"] + +[ext_resource type="Theme" uid="uid://cohbys634cf18" path="res://menu/main_menu/MainMenuTheme.tres" id="1_3v0vu"] +[ext_resource type="Texture2D" uid="uid://dr4ayedb5xb2k" path="res://textures/file_editor.png" id="1_44xee"] +[ext_resource type="PackedScene" uid="uid://dii1q3f5dj72y" path="res://objects/CRT.tscn" id="2_crosg"] +[ext_resource type="Script" path="res://scripts/level_select.gd" id="2_nurro"] +[ext_resource type="PackedScene" uid="uid://t83eid7pf4iv" path="res://menu/level_menu/level_button.tscn" id="4_0d7hu"] + +[node name="LevelSelect" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("2_nurro") + +[node name="CanvasLayer" parent="." instance=ExtResource("2_crosg")] + +[node name="Background" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("1_44xee") +expand_mode = 1 + +[node name="Label" type="Label" parent="Background"] +layout_mode = 0 +offset_left = -28.0 +offset_top = -12.0 +offset_right = 214.0 +offset_bottom = 24.0 +theme = ExtResource("1_3v0vu") +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 30 +text = "level select" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="QuitButton" type="Button" parent="Background"] +layout_mode = 0 +offset_left = 576.0 +offset_top = 1.0 +offset_right = 635.0 +offset_bottom = 18.0 +flat = true + +[node name="ClipControl" type="Control" parent="Background"] +layout_mode = 1 +anchor_left = 0.005 +anchor_top = 0.11 +anchor_right = 0.956 +anchor_bottom = 0.924 +offset_left = 0.599999 +offset_top = -0.200005 +offset_right = 0.319946 +offset_bottom = -0.280029 + +[node name="GridContainer" type="GridContainer" parent="Background/ClipControl"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 65.2 +offset_top = 14.0 +offset_right = -93.1599 +offset_bottom = -25.4 +grow_horizontal = 2 +grow_vertical = 2 +scale = Vector2(1.06042, 1.058) +columns = 3 + +[node name="LevelButton" parent="Background/ClipControl/GridContainer" instance=ExtResource("4_0d7hu")] +layout_mode = 2 +disabled = false +locked = false + +[node name="LevelButton2" parent="Background/ClipControl/GridContainer" instance=ExtResource("4_0d7hu")] +layout_mode = 2 +disabled = false +level_num = 2 +locked = false + +[node name="LevelButton3" parent="Background/ClipControl/GridContainer" instance=ExtResource("4_0d7hu")] +layout_mode = 2 +disabled = false +level_num = 3 +locked = false + +[connection signal="pressed" from="Background/QuitButton" to="." method="_on_quit_button_pressed"] diff --git a/gmtk_2024/menu/main_menu/Cre73AB.tmp b/gmtk_2024/menu/main_menu/Cre73AB.tmp new file mode 100644 index 0000000..d5e1d8f --- /dev/null +++ b/gmtk_2024/menu/main_menu/Cre73AB.tmp @@ -0,0 +1,49 @@ +[gd_scene load_steps=5 format=3 uid="uid://cut2xjnvh8i58"] + +[ext_resource type="Theme" uid="uid://cohbys634cf18" path="res://menu/main_menu/MainMenuTheme.tres" id="1_tmf11"] +[ext_resource type="Script" path="res://scripts/menu_credit_control.gd" id="2_ogwi7"] +[ext_resource type="PackedScene" uid="uid://dii1q3f5dj72y" path="res://objects/CRT.tscn" id="3_rybt6"] +[ext_resource type="FontFile" uid="uid://d3pbvdemdbxes" path="res://CommodoreSixtyFour.ttf" id="4_pv7fe"] + +[node name="CreditScene" type="MarginContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_tmf11") + +[node name="CanvasLayer" parent="." instance=ExtResource("3_rybt6")] + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 2 +color = Color(0, 0, 0, 1) + +[node name="Control" type="Control" parent="."] +layout_mode = 2 +script = ExtResource("2_ogwi7") + +[node name="VBoxContainer" type="VBoxContainer" parent="Control"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="Label" type="Label" parent="Control/VBoxContainer"] +layout_mode = 2 + +[node name="BackToMenu" type="HBoxContainer" parent="Control/VBoxContainer"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/BackToMenu"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("4_pv7fe") +text = ">" + +[node name="back" type="Button" parent="Control/VBoxContainer/BackToMenu"] +layout_mode = 2 +text = "back to menu" +flat = true + +[connection signal="pressed" from="Control/VBoxContainer/BackToMenu/back" to="Control" method="_return_to_main_menu"] diff --git a/gmtk_2024/menu/main_menu/CreditsScene.tscn b/gmtk_2024/menu/main_menu/CreditsScene.tscn new file mode 100644 index 0000000..d5e1d8f --- /dev/null +++ b/gmtk_2024/menu/main_menu/CreditsScene.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=5 format=3 uid="uid://cut2xjnvh8i58"] + +[ext_resource type="Theme" uid="uid://cohbys634cf18" path="res://menu/main_menu/MainMenuTheme.tres" id="1_tmf11"] +[ext_resource type="Script" path="res://scripts/menu_credit_control.gd" id="2_ogwi7"] +[ext_resource type="PackedScene" uid="uid://dii1q3f5dj72y" path="res://objects/CRT.tscn" id="3_rybt6"] +[ext_resource type="FontFile" uid="uid://d3pbvdemdbxes" path="res://CommodoreSixtyFour.ttf" id="4_pv7fe"] + +[node name="CreditScene" type="MarginContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_tmf11") + +[node name="CanvasLayer" parent="." instance=ExtResource("3_rybt6")] + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 2 +color = Color(0, 0, 0, 1) + +[node name="Control" type="Control" parent="."] +layout_mode = 2 +script = ExtResource("2_ogwi7") + +[node name="VBoxContainer" type="VBoxContainer" parent="Control"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="Label" type="Label" parent="Control/VBoxContainer"] +layout_mode = 2 + +[node name="BackToMenu" type="HBoxContainer" parent="Control/VBoxContainer"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/BackToMenu"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("4_pv7fe") +text = ">" + +[node name="back" type="Button" parent="Control/VBoxContainer/BackToMenu"] +layout_mode = 2 +text = "back to menu" +flat = true + +[connection signal="pressed" from="Control/VBoxContainer/BackToMenu/back" to="Control" method="_return_to_main_menu"] diff --git a/gmtk_2024/menu/main_menu/MainMenu.tscn b/gmtk_2024/menu/main_menu/MainMenu.tscn new file mode 100644 index 0000000..d3b1026 --- /dev/null +++ b/gmtk_2024/menu/main_menu/MainMenu.tscn @@ -0,0 +1,103 @@ +[gd_scene load_steps=5 format=3 uid="uid://1h2urto6y63r"] + +[ext_resource type="FontFile" uid="uid://d3pbvdemdbxes" path="res://CommodoreSixtyFour.ttf" id="1_1tx2i"] +[ext_resource type="Theme" uid="uid://cohbys634cf18" path="res://menu/main_menu/MainMenuTheme.tres" id="1_kkajn"] +[ext_resource type="Script" path="res://scripts/menu_main_control.gd" id="2_g8c7b"] +[ext_resource type="PackedScene" uid="uid://dii1q3f5dj72y" path="res://objects/CRT.tscn" id="2_hal3l"] + +[node name="MainMenu" type="MarginContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_kkajn") + +[node name="CanvasLayer" parent="." instance=ExtResource("2_hal3l")] + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 2 +color = Color(0, 0, 0, 1) + +[node name="Control" type="Control" parent="."] +layout_mode = 2 +script = ExtResource("2_g8c7b") + +[node name="VBoxContainer" type="VBoxContainer" parent="Control"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="VBoxContainer2" type="VBoxContainer" parent="Control/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/VBoxContainer2"] +layout_mode = 2 + +[node name="Buttons" type="VBoxContainer" parent="Control/VBoxContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="Control/VBoxContainer/Buttons"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/Buttons/HBoxContainer"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("1_1tx2i") +text = ">" + +[node name="start" type="Button" parent="Control/VBoxContainer/Buttons/HBoxContainer"] +layout_mode = 2 +text = "start" +flat = true + +[node name="HBoxContainer2" type="HBoxContainer" parent="Control/VBoxContainer/Buttons"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/Buttons/HBoxContainer2"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("1_1tx2i") +text = ">" + +[node name="level_select" type="Button" parent="Control/VBoxContainer/Buttons/HBoxContainer2"] +layout_mode = 2 +text = "level selection" +flat = true + +[node name="HBoxContainer3" type="HBoxContainer" parent="Control/VBoxContainer/Buttons"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/Buttons/HBoxContainer3"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("1_1tx2i") +text = ">" + +[node name="credits" type="Button" parent="Control/VBoxContainer/Buttons/HBoxContainer3"] +layout_mode = 2 +text = "credits" +flat = true + +[node name="HBoxContainer4" type="HBoxContainer" parent="Control/VBoxContainer/Buttons"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/Buttons/HBoxContainer4"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("1_1tx2i") +text = ">" + +[node name="quit" type="Button" parent="Control/VBoxContainer/Buttons/HBoxContainer4"] +layout_mode = 2 +text = "quit" +flat = true + +[connection signal="pressed" from="Control/VBoxContainer/Buttons/HBoxContainer/start" to="Control" method="_on_start_button_pressed"] +[connection signal="pressed" from="Control/VBoxContainer/Buttons/HBoxContainer2/level_select" to="Control" method="_on_level_select_pressed"] +[connection signal="pressed" from="Control/VBoxContainer/Buttons/HBoxContainer3/credits" to="Control" method="_on_credits_button_pressed"] +[connection signal="pressed" from="Control/VBoxContainer/Buttons/HBoxContainer4/quit" to="Control" method="_on_quit_button_pressed"] diff --git a/gmtk_2024/menu/main_menu/MainMenuTheme.tres b/gmtk_2024/menu/main_menu/MainMenuTheme.tres new file mode 100644 index 0000000..13841fe --- /dev/null +++ b/gmtk_2024/menu/main_menu/MainMenuTheme.tres @@ -0,0 +1,19 @@ +[gd_resource type="Theme" load_steps=3 format=3 uid="uid://cohbys634cf18"] + +[ext_resource type="FontFile" uid="uid://d3pbvdemdbxes" path="res://CommodoreSixtyFour.ttf" id="1_ep67t"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_vnp6n"] + +[resource] +default_font = ExtResource("1_ep67t") +Button/colors/font_color = Color(0, 1, 0, 1) +Label/colors/font_color = Color(0, 1, 0, 1) +Label/colors/font_outline_color = Color(0, 0, 0, 1) +Label/colors/font_shadow_color = Color(0, 0, 0, 0) +Label/constants/line_spacing = 3 +Label/constants/outline_size = 0 +Label/constants/shadow_offset_x = 1 +Label/constants/shadow_offset_y = 1 +Label/constants/shadow_outline_size = 1 +Label/font_sizes/font_size = 16 +Label/styles/normal = SubResource("StyleBoxEmpty_vnp6n") diff --git a/gmtk_2024/menu/main_menu/conFBFE.tmp b/gmtk_2024/menu/main_menu/conFBFE.tmp new file mode 100644 index 0000000..0c2e91e --- /dev/null +++ b/gmtk_2024/menu/main_menu/conFBFE.tmp @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=3 uid="uid://cscsuljo8ivad"] + +[ext_resource type="Script" path="res://control.gd" id="1_demfw"] +[ext_resource type="PackedScene" uid="uid://cxbalfjqtp06t" path="res://canvas_layer.tscn" id="2_jr3s0"] + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 +script = ExtResource("1_demfw") + +[node name="Label" type="Label" parent="."] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 23.0 + +[node name="CanvasLayer" parent="." instance=ExtResource("2_jr3s0")] diff --git a/gmtk_2024/objects/BoxPushable_1.tscn b/gmtk_2024/objects/BoxPushable_1.tscn new file mode 100644 index 0000000..ef5623c --- /dev/null +++ b/gmtk_2024/objects/BoxPushable_1.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=3 uid="uid://d17jpcgayfg6i"] + +[ext_resource type="Script" path="res://scripts/pushable.gd" id="1_tf1fy"] +[ext_resource type="Texture2D" uid="uid://ca3ky53gvjj8" path="res://textures/movable-block-small.png" id="2_pp2mc"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_legx4"] +size = Vector2(34, 32) + +[node name="BoxPushable1" type="CharacterBody2D"] +collision_layer = 16 +collision_mask = 53 +script = ExtResource("1_tf1fy") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_legx4") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_pp2mc") diff --git a/gmtk_2024/objects/BreakableBlock.tscn b/gmtk_2024/objects/BreakableBlock.tscn new file mode 100644 index 0000000..6040a76 --- /dev/null +++ b/gmtk_2024/objects/BreakableBlock.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=3 uid="uid://dki3ft77fr3tc"] + +[ext_resource type="Script" path="res://scripts/crumble.gd" id="1_5jikw"] +[ext_resource type="Texture2D" uid="uid://buqgl7x10et1f" path="res://temp_assets/img.png" id="1_d52wv"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_246ea"] +size = Vector2(31, 31) + +[node name="BreakableBlock" type="CharacterBody2D"] +collision_mask = 22 +script = ExtResource("1_5jikw") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_d52wv") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(-0.5, -0.5) +shape = SubResource("RectangleShape2D_246ea") diff --git a/gmtk_2024/objects/CRT.tscn b/gmtk_2024/objects/CRT.tscn new file mode 100644 index 0000000..2f8896d --- /dev/null +++ b/gmtk_2024/objects/CRT.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=3 uid="uid://dii1q3f5dj72y"] + +[ext_resource type="Shader" path="res://shaders/crt.gdshader" id="1_wsc8u"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_c8ly2"] +shader = ExtResource("1_wsc8u") +shader_parameter/crt_curve = 0.015 +shader_parameter/crt_scan_line_color = 0.347 +shader_parameter/aperture_grille_rate = 1.0 +shader_parameter/rf_switch_esque_blur = 0.21 +shader_parameter/white_noise_rate = 0.184 + +[node name="CanvasLayer" type="CanvasLayer"] + +[node name="ColorRect" type="ColorRect" parent="."] +material = SubResource("ShaderMaterial_c8ly2") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 diff --git a/gmtk_2024/objects/Ene478E.tmp b/gmtk_2024/objects/Ene478E.tmp new file mode 100644 index 0000000..09449d6 --- /dev/null +++ b/gmtk_2024/objects/Ene478E.tmp @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://vtwswrkfkgas"] + +[ext_resource type="Script" path="res://scripts/enemy_movement_mover.gd" id="1_7kapi"] +[ext_resource type="Texture2D" uid="uid://buqgl7x10et1f" path="res://temp_assets/img.png" id="1_ci3x0"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_8cnt5"] +size = Vector2(24, 20) + +[node name="EnemyMover" type="CharacterBody2D"] +collision_layer = 2 +collision_mask = 23 +script = ExtResource("1_7kapi") +speed = 75 + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_ci3x0") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_8cnt5") diff --git a/gmtk_2024/objects/EnemyMover.tscn b/gmtk_2024/objects/EnemyMover.tscn new file mode 100644 index 0000000..99284d9 --- /dev/null +++ b/gmtk_2024/objects/EnemyMover.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://vtwswrkfkgas"] + +[ext_resource type="Script" path="res://scripts/enemy_movement_mover.gd" id="1_7kapi"] +[ext_resource type="Texture2D" uid="uid://buqgl7x10et1f" path="res://temp_assets/img.png" id="1_ci3x0"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_8cnt5"] +size = Vector2(24, 26) + +[node name="EnemyMover" type="CharacterBody2D"] +collision_layer = 2 +collision_mask = 23 +script = ExtResource("1_7kapi") +speed = 75 + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_ci3x0") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_8cnt5") diff --git a/gmtk_2024/objects/Goal.tscn b/gmtk_2024/objects/Goal.tscn new file mode 100644 index 0000000..182a4fa --- /dev/null +++ b/gmtk_2024/objects/Goal.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=7 format=3 uid="uid://d0gpnqknarkg7"] + +[ext_resource type="Script" path="res://scripts/goal.gd" id="1_xjaxa"] +[ext_resource type="Texture2D" uid="uid://fah747bo1ckk" path="res://textures/01-Portal-Sheet.png" id="2_hsts4"] + +[sub_resource type="Animation" id="Animation_v2oub"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame_coords") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [Vector2i(0, 0)] +} + +[sub_resource type="Animation" id="Animation_a6qt0"] +resource_name = "portal" +length = 0.55 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame_coords") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [Vector2i(0, 0), Vector2i(1, 0), Vector2i(2, 0), Vector2i(3, 0), Vector2i(4, 0), Vector2i(5, 0), Vector2i(6, 0), Vector2i(7, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_4pqp1"] +_data = { +"RESET": SubResource("Animation_v2oub"), +"portal": SubResource("Animation_a6qt0") +} + +[sub_resource type="CircleShape2D" id="CircleShape2D_fjcci"] +radius = 16.1245 + +[node name="Goal" type="Area2D"] +collision_layer = 0 +collision_mask = 4 +script = ExtResource("1_xjaxa") + +[node name="Sprite2D" type="Sprite2D" parent="."] +z_index = -1 +texture = ExtResource("2_hsts4") +hframes = 8 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_4pqp1") +} + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_fjcci") + +[connection signal="area_entered" from="." to="." method="_on_area_entered"] +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/gmtk_2024/objects/Laser.tscn b/gmtk_2024/objects/Laser.tscn new file mode 100644 index 0000000..7e11607 --- /dev/null +++ b/gmtk_2024/objects/Laser.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=5 format=3 uid="uid://c168bkledwyya"] + +[ext_resource type="Texture2D" uid="uid://c3m4os8kteaix" path="res://textures/level01-spritesheet.png" id="1_6whpg"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_dplbn"] +atlas = ExtResource("1_6whpg") +region = Rect2(192.002, 64.0069, 32.0036, 31.9977) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7sk3t"] +atlas = ExtResource("1_6whpg") +region = Rect2(128.019, 31.9952, 31.9608, 31.9949) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_jee2l"] +size = Vector2(6, 28.5) + +[node name="Laser" type="StaticBody2D"] +collision_mask = 5 + +[node name="Sprite2D2" type="Sprite2D" parent="."] +position = Vector2(1, 0) +texture = SubResource("AtlasTexture_dplbn") + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PackedVector2Array(-15, -15, -12, -11, 14, -11, 17, -15) + +[node name="StaticBody2D" type="StaticBody2D" parent="."] + +[node name="Sprite2D" type="Sprite2D" parent="StaticBody2D"] +texture = SubResource("AtlasTexture_7sk3t") +region_rect = Rect2(0, 0, 288, 96) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] +position = Vector2(1, 2) +shape = SubResource("RectangleShape2D_jee2l") diff --git a/gmtk_2024/objects/LevA5DE.tmp b/gmtk_2024/objects/LevA5DE.tmp new file mode 100644 index 0000000..222ca8b --- /dev/null +++ b/gmtk_2024/objects/LevA5DE.tmp @@ -0,0 +1,49 @@ +[gd_scene load_steps=5 format=3 uid="uid://n2culjgg5aji"] + +[ext_resource type="Theme" uid="uid://cohbys634cf18" path="res://menu/main_menu/MainMenuTheme.tres" id="1_tm23e"] +[ext_resource type="PackedScene" uid="uid://dii1q3f5dj72y" path="res://objects/CRT.tscn" id="2_d3r0j"] +[ext_resource type="Script" path="res://scripts/level_completed_control.gd" id="3_38v2l"] +[ext_resource type="FontFile" uid="uid://d3pbvdemdbxes" path="res://CommodoreSixtyFour.ttf" id="4_8fqei"] + +[node name="LevelComplete" type="MarginContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_tm23e") + +[node name="CanvasLayer" parent="." instance=ExtResource("2_d3r0j")] + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 2 +color = Color(0, 0, 0, 1) + +[node name="Control" type="Control" parent="."] +layout_mode = 2 +script = ExtResource("3_38v2l") + +[node name="VBoxContainer" type="VBoxContainer" parent="Control"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="Label" type="Label" parent="Control/VBoxContainer"] +layout_mode = 2 + +[node name="BackToMenu" type="HBoxContainer" parent="Control/VBoxContainer"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/BackToMenu"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("4_8fqei") +text = ">" + +[node name="back" type="Button" parent="Control/VBoxContainer/BackToMenu"] +layout_mode = 2 +text = "back to level menu" +flat = true + +[connection signal="pressed" from="Control/VBoxContainer/BackToMenu/back" to="Control" method="_return_to_main_menu"] diff --git a/gmtk_2024/objects/LevelComplete.tscn b/gmtk_2024/objects/LevelComplete.tscn new file mode 100644 index 0000000..222ca8b --- /dev/null +++ b/gmtk_2024/objects/LevelComplete.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=5 format=3 uid="uid://n2culjgg5aji"] + +[ext_resource type="Theme" uid="uid://cohbys634cf18" path="res://menu/main_menu/MainMenuTheme.tres" id="1_tm23e"] +[ext_resource type="PackedScene" uid="uid://dii1q3f5dj72y" path="res://objects/CRT.tscn" id="2_d3r0j"] +[ext_resource type="Script" path="res://scripts/level_completed_control.gd" id="3_38v2l"] +[ext_resource type="FontFile" uid="uid://d3pbvdemdbxes" path="res://CommodoreSixtyFour.ttf" id="4_8fqei"] + +[node name="LevelComplete" type="MarginContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_tm23e") + +[node name="CanvasLayer" parent="." instance=ExtResource("2_d3r0j")] + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 2 +color = Color(0, 0, 0, 1) + +[node name="Control" type="Control" parent="."] +layout_mode = 2 +script = ExtResource("3_38v2l") + +[node name="VBoxContainer" type="VBoxContainer" parent="Control"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="Label" type="Label" parent="Control/VBoxContainer"] +layout_mode = 2 + +[node name="BackToMenu" type="HBoxContainer" parent="Control/VBoxContainer"] +visible = false +layout_mode = 2 + +[node name="Label" type="Label" parent="Control/VBoxContainer/BackToMenu"] +custom_minimum_size = Vector2(8, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("4_8fqei") +text = ">" + +[node name="back" type="Button" parent="Control/VBoxContainer/BackToMenu"] +layout_mode = 2 +text = "back to level menu" +flat = true + +[connection signal="pressed" from="Control/VBoxContainer/BackToMenu/back" to="Control" method="_return_to_main_menu"] diff --git a/gmtk_2024/objects/MirrorOrb.tscn b/gmtk_2024/objects/MirrorOrb.tscn new file mode 100644 index 0000000..9088ace --- /dev/null +++ b/gmtk_2024/objects/MirrorOrb.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://cpa66thuxma15"] + +[ext_resource type="Texture2D" uid="uid://hsp64ixwg2bb" path="res://temp_assets/goal.png" id="1_xnjup"] +[ext_resource type="Texture2D" uid="uid://bs8mevd0fornj" path="res://temp_assets/goal_bg.png" id="2_iknpl"] + +[node name="MirrorOrb" type="Area2D"] + +[node name="Orb" type="Sprite2D" parent="."] +scale = Vector2(0.4, 0.4) +texture = ExtResource("1_xnjup") + +[node name="Aura" type="Sprite2D" parent="."] +modulate = Color(1, 1, 1, 0.227451) +z_index = -1 +texture = ExtResource("2_iknpl") diff --git a/gmtk_2024/objects/OneTimeBlock.tscn b/gmtk_2024/objects/OneTimeBlock.tscn new file mode 100644 index 0000000..8192c31 --- /dev/null +++ b/gmtk_2024/objects/OneTimeBlock.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=4 format=3 uid="uid://cys3y6mvx2r51"] + +[ext_resource type="PackedScene" uid="uid://d0q0sfati8wk0" path="res://objects/ResizableBlock.tscn" id="1_0n6nt"] +[ext_resource type="Texture2D" uid="uid://dkby5ivagt3td" path="res://textures/one-time-use-block-small.png" id="2_j5f5f"] +[ext_resource type="Texture2D" uid="uid://b7ixgwggloed4" path="res://textures/one-time-use-block-big.png" id="3_e323m"] + +[node name="AnimatableBody2D" instance=ExtResource("1_0n6nt")] +small_sprite = ExtResource("2_j5f5f") +large_sprite = ExtResource("3_e323m") +delete_self = true diff --git a/gmtk_2024/objects/Player.tscn b/gmtk_2024/objects/Player.tscn new file mode 100644 index 0000000..dfce31e --- /dev/null +++ b/gmtk_2024/objects/Player.tscn @@ -0,0 +1,53 @@ +[gd_scene load_steps=7 format=3 uid="uid://snxpqx0ony7s"] + +[ext_resource type="Script" path="res://scripts/player_movement.gd" id="1_a6lhy"] +[ext_resource type="Texture2D" uid="uid://qcx482jc7pqr" path="res://textures/player.png" id="2_sscjv"] +[ext_resource type="Texture2D" uid="uid://s7wqkcxerals" path="res://textures/Eye Lase.png" id="3_yg3ur"] +[ext_resource type="AudioStream" uid="uid://donbyet486b4" path="res://sound/Jump5.wav" id="4_jit8y"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_31jvr"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_vxfel"] +radius = 12.0 + +[node name="Player" type="CharacterBody2D" node_paths=PackedStringArray("sfx", "sfx_large")] +collision_layer = 4 +collision_mask = 51 +script = ExtResource("1_a6lhy") +sfx = NodePath("AudioStreamPlayer2D") +sfx_large = NodePath("AudioStreamPlayer2D2") +speed = 250 +jump_strength = 600 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_31jvr") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_sscjv") + +[node name="Hurtbox" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hurtbox"] +shape = SubResource("CircleShape2D_vxfel") + +[node name="data_link" type="Line2D" parent="."] +visible = false +texture_repeat = 2 +points = PackedVector2Array(0, 0, 0, 0) +default_color = Color(0.298039, 1, 0.141176, 1) +texture = ExtResource("3_yg3ur") +texture_mode = 1 + +[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("4_jit8y") +volume_db = -12.876 +pitch_scale = 0.92 + +[node name="AudioStreamPlayer2D2" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("4_jit8y") +volume_db = -12.876 +pitch_scale = 0.51 + +[connection signal="body_entered" from="Hurtbox" to="." method="_on_hurtbox_body_entered"] diff --git a/gmtk_2024/objects/Pre676A.tmp b/gmtk_2024/objects/Pre676A.tmp new file mode 100644 index 0000000..2581e0b --- /dev/null +++ b/gmtk_2024/objects/Pre676A.tmp @@ -0,0 +1,89 @@ +[gd_scene load_steps=9 format=3 uid="uid://c6g2f7tm7iasr"] + +[ext_resource type="Script" path="res://scripts/PressurePlate.gd" id="1_7ar3x"] +[ext_resource type="Texture2D" uid="uid://cwf57p0osmc0w" path="res://textures/PressurePlate.png" id="1_st48m"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_82l2r"] +size = Vector2(32, 3.5) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_c6ukx"] +size = Vector2(24, 4) + +[sub_resource type="Animation" id="Animation_fulu2"] +resource_name = "Disable" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} + +[sub_resource type="Animation" id="Animation_7ggr5"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} + +[sub_resource type="Animation" id="Animation_xxdm0"] +resource_name = "Enable" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_usrhb"] +_data = { +"Disable": SubResource("Animation_fulu2"), +"Enable": SubResource("Animation_xxdm0"), +"RESET": SubResource("Animation_7ggr5") +} + +[node name="StaticBody2D" type="StaticBody2D"] +script = ExtResource("1_7ar3x") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, 13.75) +shape = SubResource("RectangleShape2D_82l2r") + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(0, 10) +shape = SubResource("RectangleShape2D_c6ukx") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_st48m") +hframes = 2 +frame = 1 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_usrhb") +} +autoplay = "Disable" + +[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"] +[connection signal="body_exited" from="Area2D" to="." method="_on_area_2d_body_exited"] diff --git a/gmtk_2024/objects/PressurePlate.tscn b/gmtk_2024/objects/PressurePlate.tscn new file mode 100644 index 0000000..7ed0c36 --- /dev/null +++ b/gmtk_2024/objects/PressurePlate.tscn @@ -0,0 +1,89 @@ +[gd_scene load_steps=8 format=3 uid="uid://c6g2f7tm7iasr"] + +[ext_resource type="Script" path="res://scripts/PressurePlate.gd" id="1_7ar3x"] +[ext_resource type="Texture2D" uid="uid://bpfvkxqajd1en" path="res://textures/PressurePlate.png" id="1_st48m"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_c6ukx"] +size = Vector2(24, 2) + +[sub_resource type="Animation" id="Animation_fulu2"] +resource_name = "Disable" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} + +[sub_resource type="Animation" id="Animation_xxdm0"] +resource_name = "Enable" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="Animation" id="Animation_7ggr5"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_usrhb"] +_data = { +"Disable": SubResource("Animation_fulu2"), +"Enable": SubResource("Animation_xxdm0"), +"RESET": SubResource("Animation_7ggr5") +} + +[node name="PressurePlate" type="StaticBody2D"] +collision_layer = 32 +collision_mask = 37 +script = ExtResource("1_7ar3x") + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 32 +collision_mask = 21 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(0, 11) +shape = SubResource("RectangleShape2D_c6ukx") + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PackedVector2Array(-16, 16, -12, 12, 12, 12, 16, 16) + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_st48m") +hframes = 2 +frame = 1 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_usrhb") +} +autoplay = "Enable" + +[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"] +[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"] diff --git a/gmtk_2024/objects/ResizableBlock.tscn b/gmtk_2024/objects/ResizableBlock.tscn new file mode 100644 index 0000000..c80eacd --- /dev/null +++ b/gmtk_2024/objects/ResizableBlock.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://d0q0sfati8wk0"] + +[ext_resource type="Script" path="res://scripts/resizable_block.gd" id="1_ckiwc"] +[ext_resource type="Texture2D" uid="uid://bb8vdlgwpj8oc" path="res://textures/antivirus-block-big.png" id="2_i68dl"] + +[node name="AnimatableBody2D" type="AnimatableBody2D"] +collision_mask = 54 +input_pickable = true +script = ExtResource("1_ckiwc") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_i68dl") + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PackedVector2Array(-32, -20, -28, -20, -28, -24, -24, -24, -24, -28, -20, -28, -20, -32, 20, -32, 20, -28, 24, -28, 24, -24, 28, -24, 28, -20, 32, -20, 32, 20, 28, 20, 28, 24, 24, 24, 24, 28, 20, 28, 20, 32, -20, 32, -20, 28, -24, 28, -24, 24, -28, 24, -28, 20, -32, 20) diff --git a/gmtk_2024/objects/box_pushable_2.tscn b/gmtk_2024/objects/box_pushable_2.tscn new file mode 100644 index 0000000..da9d3fa --- /dev/null +++ b/gmtk_2024/objects/box_pushable_2.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3 uid="uid://biaxahxft1xo0"] + +[ext_resource type="PackedScene" uid="uid://d17jpcgayfg6i" path="res://objects/BoxPushable_1.tscn" id="1_pnjdf"] +[ext_resource type="Texture2D" uid="uid://bgn21wm3f32ch" path="res://textures/movable-block-big.png" id="2_kff60"] + +[node name="BoxPushable1" instance=ExtResource("1_pnjdf")] +scale = Vector2(2, 2) + +[node name="CollisionShape2D" parent="." index="0"] +position = Vector2(0, 0.5) + +[node name="Sprite2D" parent="." index="1"] +texture = ExtResource("2_kff60") diff --git a/gmtk_2024/plaB470.tmp b/gmtk_2024/plaB470.tmp new file mode 100644 index 0000000..ba43f31 --- /dev/null +++ b/gmtk_2024/plaB470.tmp @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://cfnmiqovwwhry"] + +[ext_resource type="Script" path="res://scripts/player_movement.gd" id="1_otvu6"] +[ext_resource type="Texture2D" uid="uid://b6gxkpy33b88g" path="res://temp_assets/player.png" id="2_d4ig1"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_jqi2f"] +radius = 17.0 +height = 42.0 + +[node name="Player" type="Node2D"] + +[node name="CharacterBody2D" type="CharacterBody2D" parent="."] +script = ExtResource("1_otvu6") +speed = 340 + +[node name="Sprite2D" type="Sprite2D" parent="CharacterBody2D"] +texture = ExtResource("2_d4ig1") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] +shape = SubResource("CapsuleShape2D_jqi2f") diff --git a/gmtk_2024/project.godot b/gmtk_2024/project.godot index 8267f65..7a8c4e3 100644 --- a/gmtk_2024/project.godot +++ b/gmtk_2024/project.godot @@ -10,11 +10,85 @@ config_version=5 [application] -config/name="GMTK_2024" +config/name="Infiltration.exe" +run/main_scene="res://menu/main_menu/MainMenu.tscn" config/features=PackedStringArray("4.3", "GL Compatibility") -config/icon="res://icon.svg" +config/icon="res://temp_assets/icon.svg" + +[display] + +window/size/viewport_width=640 +window/size/viewport_height=320 +window/size/mode=2 +window/stretch/mode="viewport" +mouse_cursor/custom_image="res://textures/cursor_normal.png" + +[input] + +player_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +player_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +player_jump={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +] +} +click={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +clickR={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +r={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +accept={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +pause={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} + +[layer_names] + +2d_physics/layer_1="Ground" +2d_physics/layer_2="Enemies" +2d_physics/layer_3="Player" +2d_physics/layer_4="Goal" +2d_physics/layer_5="Pushable" [rendering] +textures/canvas_textures/default_texture_filter=0 renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" +environment/defaults/default_clear_color=Color(0.785573, 0.700355, 0.83902, 1) +2d/snap/snap_2d_transforms_to_pixel=true diff --git a/gmtk_2024/project.godot.orig b/gmtk_2024/project.godot.orig new file mode 100644 index 0000000..c123d89 --- /dev/null +++ b/gmtk_2024/project.godot.orig @@ -0,0 +1,58 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="GMTK_2024" +<<<<<<< HEAD +run/main_scene="res://menu/main_menu/MainMenu.tscn" +======= +run/main_scene="res://levels/TestingField.tscn" +>>>>>>> dev +config/features=PackedStringArray("4.3", "GL Compatibility") +config/icon="res://temp_assets/icon.svg" + +[display] + +window/size/viewport_width=1280 +window/size/viewport_height=720 +window/size/mode=2 +window/stretch/mode="viewport" + +[input] + +player_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +player_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +player_jump={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +] +} +click={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} + +[rendering] + +textures/canvas_textures/default_texture_filter=0 +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" +environment/defaults/default_clear_color=Color(0.785573, 0.700355, 0.83902, 1) +2d/snap/snap_2d_transforms_to_pixel=true diff --git a/gmtk_2024/scripts/PressurePlate.gd b/gmtk_2024/scripts/PressurePlate.gd new file mode 100644 index 0000000..9f905e8 --- /dev/null +++ b/gmtk_2024/scripts/PressurePlate.gd @@ -0,0 +1,38 @@ +extends StaticBody2D + +@export var laser_path: NodePath = "../Laser" +@export var required_scale: Vector2 = Vector2(1.0, 1.0) +@export var player_required_scale: Vector2 = Vector2(2.0, 2.0) + +@onready var animation = $AnimationPlayer + +var laser: Node2D = null +var is_activated = false + +func _ready(): + laser = get_node(laser_path) + +func _on_body_entered(body: Node): + print("Wird erkannt") + print(body) + print(body.scale) + if (body is AnimatableBody2D and body.scale >= required_scale) or (body is CharacterBody2D and body.scale >= player_required_scale): + animation.play("Disable") + activate_plate() + +func _on_body_exited(body: Node): + if (body is AnimatableBody2D and body.scale >= required_scale) or (body is CharacterBody2D and body.scale >= player_required_scale): + animation.play("Enable") + deactivate_plate() + +func activate_plate(): + print("wird aktiviert") + if not is_activated: + is_activated = true + if laser and weakref(laser).get_ref(): + laser.queue_free() + # TODO: fix error when called again + +func deactivate_plate(): + if is_activated: + is_activated = false diff --git a/gmtk_2024/scripts/crumble.gd b/gmtk_2024/scripts/crumble.gd new file mode 100644 index 0000000..39a51aa --- /dev/null +++ b/gmtk_2024/scripts/crumble.gd @@ -0,0 +1,14 @@ +extends CharacterBody2D + + +func _physics_process(delta: float) -> void: + move_and_slide() + if(get_slide_collision_count() > 0): + for i in get_slide_collision_count(): + var box = get_slide_collision(i).get_collider() as Node2D + if box.scale.x == 2: + var timer = Timer.new() + self.add_child(timer) + timer.connect("timeout", queue_free) + timer.set_wait_time(1) + timer.start() diff --git a/gmtk_2024/scripts/enemy_movement_mover.gd b/gmtk_2024/scripts/enemy_movement_mover.gd new file mode 100644 index 0000000..2a2df9c --- /dev/null +++ b/gmtk_2024/scripts/enemy_movement_mover.gd @@ -0,0 +1,15 @@ +extends CharacterBody2D + +@export var speed = 200; +@export var gravity = 50; +@export var direction = 1; + +func _ready() -> void: + add_to_group("enemy") + +func _physics_process(delta): + if is_on_wall(): + direction = direction * -1 + velocity.x = direction * speed + velocity.y += gravity + move_and_slide() diff --git a/gmtk_2024/scripts/goal.gd b/gmtk_2024/scripts/goal.gd new file mode 100644 index 0000000..1a3ef57 --- /dev/null +++ b/gmtk_2024/scripts/goal.gd @@ -0,0 +1,17 @@ +extends Node + +@export var next : PackedScene +@export var completed = preload("res://objects/LevelComplete.tscn") + +@onready var animation = $AnimationPlayer + +@onready var level_select_scene = preload("res://menu/level_menu/level_select.tscn") + +func _process(delta: float) -> void: + animation.play("portal") + +func _on_body_entered(body: Node2D) -> void: + if next == level_select_scene: + get_tree().change_scene_to_packed(completed) + else: + get_tree().change_scene_to_packed(next) diff --git a/gmtk_2024/scripts/level_completed_control.gd b/gmtk_2024/scripts/level_completed_control.gd new file mode 100644 index 0000000..74afc12 --- /dev/null +++ b/gmtk_2024/scripts/level_completed_control.gd @@ -0,0 +1,97 @@ +extends Control + +var credits_text = """ +CONGRATULATIONS +THIS SECTOR IS NOW INFECTED +YOU NOW HAVE ACCESS TO THE NEXT SECTION + +""" + +var current_text = "" +var char_index = 0 +var typing_speed = 0.05 +var fast_typing_speed = 0.0001 +var last_click_time = 0.0 +var double_click_time = 0.3 +var is_typing = true +var current_button_index = 0 +var button + +func _ready(): + _initialize_menu() + _start_typing() + +func _initialize_menu(): + button = $VBoxContainer/BackToMenu + _update_button_visibility() + _blink_current_button() + +func _update_button_visibility(): + var hbox_container = button + var label_node = hbox_container.get_child(0) + if label_node != null: + label_node.visible + +func _process(_delta: float) -> void: + if not is_typing: + if Input.is_action_pressed("ui_accept"): + typing_speed = fast_typing_speed + +func _blink_current_button() -> void: + while true: + var hbox_container = button + var label_node = hbox_container.get_child(0) + if label_node != null: + label_node.visible = true + await get_tree().create_timer(0.5).timeout + if label_node != null: + label_node.visible = false + await get_tree().create_timer(0.5).timeout + +func _unhandled_input(event: InputEvent) -> void: + if is_typing: + if event is InputEventKey and event.is_pressed(): + if get_time_since_last_click() <= double_click_time: + _show_full_text() + else: + typing_speed = fast_typing_speed + elif event is InputEventKey and not event.is_pressed(): + typing_speed = 0.05 + else: + if event.is_action_pressed("ui_accept"): + button.get_child(1).emit_signal("pressed") + +func _start_typing() -> void: + current_text = "" + char_index = 0 + is_typing = true + _update_text() + +func _update_text() -> void: + if char_index < credits_text.length(): + current_text += credits_text[char_index] + $VBoxContainer/Label.text = current_text + char_index += 1 + await get_tree().create_timer(typing_speed).timeout + _update_text() + else: + is_typing = false + _show_menu_options() + +func _show_menu_options() -> void: + $VBoxContainer/BackToMenu.visible = true + +func _return_to_main_menu() -> void: + get_tree().change_scene_to_file("res://menu/level_menu/level_select.tscn") + +func _show_full_text() -> void: + current_text = credits_text + $VBoxContainer/Label.text = current_text + char_index = credits_text.length() + _show_menu_options() + +func get_time_since_last_click() -> float: + var current_time = Time.get_ticks_msec() / 1000.0 # Zeit in Sekunden + var time_since_last_click = current_time - last_click_time + last_click_time = current_time + return time_since_last_click diff --git a/gmtk_2024/scripts/level_menu_level_button.gd b/gmtk_2024/scripts/level_menu_level_button.gd new file mode 100644 index 0000000..45a99e6 --- /dev/null +++ b/gmtk_2024/scripts/level_menu_level_button.gd @@ -0,0 +1,26 @@ +@tool +extends TextureButton + +signal level_selected + +@export var level_num: int = 1 +@export var locked: bool = true: + set(value): + locked = value + level_locked() if locked else level_unlocked() + +func level_locked() -> void: + level_state(true) + +func level_unlocked() -> void: + level_state(false) + $Label.text = str(level_num) + +func level_state(value: bool) -> void: + disabled = value + $Label.visible = not value + + +func _on_pressed(): + + level_selected.emit(level_num) diff --git a/gmtk_2024/scripts/level_select.gd b/gmtk_2024/scripts/level_select.gd new file mode 100644 index 0000000..9ff2c85 --- /dev/null +++ b/gmtk_2024/scripts/level_select.gd @@ -0,0 +1,24 @@ +extends Control + +func _ready(): + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + setup_level_box() + connect_level_selected_to_level_box() + +func setup_level_box(): + for box in $Background/ClipControl/GridContainer.get_children(): + box.level_num = box.get_index() + 1 + #box.locked = true + $Background/ClipControl/GridContainer.get_child(0).locked = false + +func connect_level_selected_to_level_box(): + for box in $Background/ClipControl/GridContainer.get_children(): + box.connect("level_selected", change_to_scene) + +func change_to_scene(level_num: int): + var next_level: String = "res://levels/level_" + str(level_num) + ".tscn" + get_tree().change_scene_to_file(next_level) + + +func _on_quit_button_pressed(): + get_tree().change_scene_to_file("res://menu/main_menu/MainMenu.tscn") diff --git a/gmtk_2024/scripts/menu_credit_control.gd b/gmtk_2024/scripts/menu_credit_control.gd new file mode 100644 index 0000000..ceef505 --- /dev/null +++ b/gmtk_2024/scripts/menu_credit_control.gd @@ -0,0 +1,100 @@ +extends Control + +var credits_text = """ +CREDITS: +----------- +Programming: Jannis, Fabio +Pixel Art : Leon +Music: TBN + +""" + +var current_text = "" +var char_index = 0 +var typing_speed = 0.05 +var fast_typing_speed = 0.0001 +var last_click_time = 0.0 +var double_click_time = 0.3 +var is_typing = true +var current_button_index = 0 +var button + +func _ready(): + _initialize_menu() + _start_typing() + +func _initialize_menu(): + button = $VBoxContainer/BackToMenu + _update_button_visibility() + _blink_current_button() + +func _update_button_visibility(): + var hbox_container = button + var label_node = hbox_container.get_child(0) + if label_node != null: + label_node.visible + +func _process(_delta: float) -> void: + if not is_typing: + if Input.is_action_pressed("ui_accept"): + typing_speed = fast_typing_speed + +func _blink_current_button() -> void: + while true: + var hbox_container = button + var label_node = hbox_container.get_child(0) + if label_node != null: + label_node.visible = true + await get_tree().create_timer(0.5).timeout + if label_node != null: + label_node.visible = false + await get_tree().create_timer(0.5).timeout + +func _unhandled_input(event: InputEvent) -> void: + if is_typing: + if event is InputEventKey and event.is_pressed(): + if get_time_since_last_click() <= double_click_time: + _show_full_text() + else: + typing_speed = fast_typing_speed + elif event is InputEventKey and not event.is_pressed(): + typing_speed = 0.05 + else: + if event.is_action_pressed("ui_accept"): + button.get_child(1).emit_signal("pressed") + +func _start_typing() -> void: + current_text = "" + char_index = 0 + is_typing = true + _update_text() + +func _update_text() -> void: + if char_index < credits_text.length(): + current_text += credits_text[char_index] + $VBoxContainer/Label.text = current_text + char_index += 1 + await get_tree().create_timer(typing_speed).timeout + _update_text() + else: + is_typing = false + _show_menu_options() + +func _show_menu_options() -> void: + $VBoxContainer/BackToMenu.visible = true + +func _return_to_main_menu() -> void: + get_tree().change_scene_to_file("res://menu/main_menu/MainMenu.tscn") + +func _show_full_text() -> void: + current_text = credits_text + $VBoxContainer/Label.text = current_text + char_index = credits_text.length() + is_typing = false + _show_menu_options() + +func get_time_since_last_click() -> float: + var current_time = Time.get_ticks_msec() / 1000.0 # Zeit in Sekunden + var time_since_last_click = current_time - last_click_time + last_click_time = current_time + return time_since_last_click diff --git a/gmtk_2024/scripts/menu_main_control.gd b/gmtk_2024/scripts/menu_main_control.gd new file mode 100644 index 0000000..88df569 --- /dev/null +++ b/gmtk_2024/scripts/menu_main_control.gd @@ -0,0 +1,131 @@ +extends Control + +var display_text = """ +STARTING Infiltrate.exe ... +MADE FOR GMTK GAME JAM 2024 +--------------------------------------- + +>> SECURITY PROTOCOLS: ACTIVE +>> SCANNING FOR THREATS... + +>> WARNING: UNAUTHORIZED ACCESS DETECTED +>> INITIALIZING COUNTERMEASURES... + +PRESS START TO GET ACCESS. + +""" + +var current_text = "" +var char_index = 0 +var typing_speed = 0.05 +var fast_typing_speed = 0.0001 +var last_click_time = 0.0 +var double_click_time = 0.3 +var is_typing = true +var current_button_index = 0 +var buttons = [] + +func _ready(): + for hbox in $VBoxContainer/Buttons.get_children(): + hbox.visible = false + + Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) + _initialize_menu() + _start_typing() + +func _initialize_menu(): + buttons = $VBoxContainer/Buttons.get_children() + _update_button_visibility() + _blink_current_button() + +func _update_button_visibility(): + for i in range(len(buttons)): + var hbox_container = buttons[i] + var label_node = hbox_container.get_child(0) + if label_node != null: + label_node.visible = (i == current_button_index) + +func _blink_current_button() -> void: + while true: + var hbox_container = buttons[current_button_index] + var label_node = hbox_container.get_child(0) + if label_node != null: + label_node.visible = true + await get_tree().create_timer(0.5).timeout + if label_node != null: + label_node.visible = false + await get_tree().create_timer(0.5).timeout + + +func _unhandled_input(event: InputEvent) -> void: + if is_typing: + if event is InputEventKey and event.is_pressed(): + if get_time_since_last_click() <= double_click_time: + _show_full_text() + else: + typing_speed = fast_typing_speed + elif event is InputEventKey and not event.is_pressed(): + typing_speed = 0.05 + else: + if event.is_action_pressed("ui_down") or event.is_action_pressed("down"): + current_button_index = (current_button_index + 1) % buttons.size() + _update_button_visibility() + elif event.is_action_pressed("ui_up") or event.is_action_pressed("up"): + current_button_index = (current_button_index - 1 + buttons.size()) % buttons.size() + _update_button_visibility() + elif event.is_action_pressed("ui_accept"): + buttons[current_button_index].get_child(1).emit_signal("pressed") + + +func _process(_delta: float) -> void: + if not is_typing: + if Input.is_action_pressed("ui_accept"): + typing_speed = fast_typing_speed + +func _start_typing() -> void: + current_text = "" + char_index = 0 + is_typing = true + _update_text() + +func _update_text() -> void: + if char_index < display_text.length(): + current_text += display_text[char_index] + $VBoxContainer/VBoxContainer2/Label.text = current_text + char_index += 1 + await get_tree().create_timer(typing_speed).timeout + _update_text() + else: + is_typing = false + _show_menu_options() + +func _show_menu_options() -> void: + for hbox in $VBoxContainer/Buttons.get_children(): + hbox.visible = true + +func _show_full_text() -> void: + current_text = display_text + $VBoxContainer/VBoxContainer2/Label.text = current_text + char_index = display_text.length() + is_typing = false + _show_menu_options() + +func get_time_since_last_click() -> float: + var current_time = Time.get_ticks_msec() / 1000.0 # Zeit in Sekunden + var time_since_last_click = current_time - last_click_time + last_click_time = current_time + return time_since_last_click + +func _on_start_button_pressed() -> void: + get_tree().change_scene_to_file("res://levels/level_1.tscn") + +func _on_level_select_pressed(): + get_tree().change_scene_to_file("res://menu/level_menu/level_select.tscn") + +func _on_credits_button_pressed() -> void: + get_tree().change_scene_to_file("res://menu/main_menu/CreditsScene.tscn") + +func _on_quit_button_pressed() -> void: + $VBoxContainer/VBoxContainer2/Label.text += "Logging out!" + await get_tree().create_timer(0.5).timeout + get_tree().quit() diff --git a/gmtk_2024/scripts/pause_menu_control.gd b/gmtk_2024/scripts/pause_menu_control.gd new file mode 100644 index 0000000..b1df443 --- /dev/null +++ b/gmtk_2024/scripts/pause_menu_control.gd @@ -0,0 +1,127 @@ +extends Control + +var display_text = """ +PAUSING OPERATION ... +--------------------------------------- +""" + +signal continue_game +signal restart_game +signal back_to_main_menu + +var current_text = "" +var char_index = 0 +var typing_speed = 0.05 +var fast_typing_speed = 0.0001 +var last_click_time = 0.0 +var double_click_time = 0.3 +var is_typing = true +var current_button_index = 0 +var buttons = [] +var current_scene = null +var pause_menu_node = null + +func _ready(): + current_scene = get_tree().current_scene + + pause_menu_node = get_parent() + + for hbox in $VBoxContainer/Buttons.get_children(): + hbox.visible = false + + Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) + _initialize_menu() + _start_typing() + +func _initialize_menu(): + buttons = $VBoxContainer/Buttons.get_children() + _update_button_visibility() + +func _update_button_visibility(): + for i in range(len(buttons)): + var hbox_container = buttons[i] + var label_node = hbox_container.get_child(0) + if label_node != null: + label_node.visible = (i == current_button_index) + +func _unhandled_input(event: InputEvent) -> void: + if is_typing: + if event is InputEventKey and event.is_pressed(): + if get_time_since_last_click() <= double_click_time: + _show_full_text() + else: + typing_speed = fast_typing_speed + elif event is InputEventKey and not event.is_pressed(): + typing_speed = 0.05 + #else: + #if event.is_action_pressed("pause"): + #toggle_pause_menu() + + if event.is_action_pressed("ui_down"): + navigate_menu(1) + elif event.is_action_pressed("ui_up"): + navigate_menu(-1) + + if event.is_action_pressed("ui_accept"): + buttons[current_button_index].get_child(1).emit_signal("pressed") + +func _process(_delta: float) -> void: + if not is_typing and Input.is_action_pressed("ui_accept"): + typing_speed = fast_typing_speed + +func _start_typing() -> void: + current_text = "" + char_index = 0 + is_typing = true + _update_text() + +func _update_text() -> void: + if char_index < display_text.length(): + current_text += display_text[char_index] + $VBoxContainer/VBoxContainer2/Label.text = current_text + char_index += 1 + await get_tree().create_timer(typing_speed).timeout + _update_text() + else: + is_typing = false + _show_menu_options() + +func _show_menu_options() -> void: + for hbox in $VBoxContainer/Buttons.get_children(): + hbox.visible = true + grab_focus() + +func _show_full_text() -> void: + current_text = display_text + $VBoxContainer/VBoxContainer2/Label.text = current_text + char_index = display_text.length() + is_typing = false + _show_menu_options() + +func get_time_since_last_click() -> float: + var current_time = Time.get_ticks_msec() / 1000.0 + var time_since_last_click = current_time - last_click_time + last_click_time = current_time + return time_since_last_click + +func toggle_pause_menu(): + if pause_menu_node.visible: + _on_continue_button_pressed() + else: + pause_menu_node.visible = true + get_tree().paused = true + grab_focus() + +func _on_continue_button_pressed(): + pause_menu_node.visible = false + get_tree().paused = false + +func _on_restart_button_pressed(): + emit_signal("restart_game") + +func _on_back_to_main_menu_button_pressed(): + emit_signal("back_to_main_menu") + +func navigate_menu(direction: int) -> void: + current_button_index = (current_button_index + direction + buttons.size()) % buttons.size() + _update_button_visibility() diff --git a/gmtk_2024/scripts/player_movement.gd b/gmtk_2024/scripts/player_movement.gd new file mode 100644 index 0000000..dcfa3e8 --- /dev/null +++ b/gmtk_2024/scripts/player_movement.gd @@ -0,0 +1,171 @@ +extends CharacterBody2D + +@export var sfx : AudioStreamPlayer2D +@export var sfx_large : AudioStreamPlayer2D + +@export var speed = 340 +@export var gravity = 50 +var jump_count = 1 +@export var jump_strength = 100 +@export var jump_strength_large = 400 +var is_touching_floor : bool = true +var jump_buffer_timer : float +var coyote_timer : float = 0.2 +var input_direction = 0 +@export var max_link_distance: float = 70.0 +var data_link: Line2D +var target_scale + + +@export var scale_duration: float = 0.5 +var current_selected = "none" +var target_scale_player: Vector2 = Vector2(1, 1) + +var cursor_scale_up = preload("res://textures/cursor_scale_up.png") +var cursor_scale_down = preload("res://textures/cursor_scale_down.png") + +func _ready(): + data_link = $data_link + +func _unhandled_input(event: InputEvent) -> void: + if event.is_action_pressed("click"): + var nearest_block = find_nearest_block() + if nearest_block: + if nearest_block.scale == Vector2(0.5, 0.5) and self.scale == Vector2(2.0, 2.0): + nearest_block.scale_up() + scale_down_player() + elif nearest_block.scale == Vector2(1.0, 1.0) and self.scale == Vector2(1.0, 1.0): + nearest_block.scale_down() + scale_up_player() + else: + var nearest_enemy = find_nearest_enemy() + if nearest_enemy: + if nearest_enemy.scale == Vector2(1, 1) and self.scale == Vector2(2.0, 2.0): + nearest_enemy.scale = Vector2(2,2) + scale_down_player() + elif nearest_enemy.scale == Vector2(2, 2) and self.scale == Vector2(1.0, 1.0): + nearest_enemy.scale = Vector2(1,1) + scale_up_player() + + +func get_input(delta): + var left = Input.is_action_pressed("player_left") + var right = Input.is_action_pressed("player_right") + + if Input.is_action_just_pressed("r"): + get_tree().reload_current_scene() + + if left and right: + input_direction = 0 + elif left: + input_direction = -1 + elif right: + input_direction = 1 + else: + input_direction = 0 + + velocity.x = input_direction * speed + + if is_on_floor(): + is_touching_floor = true + jump_count = 1 + coyote_timer = 0.2 + if jump_buffer_timer > 0: + Jump() + + if not is_on_floor(): + if jump_buffer_timer > 0: + jump_buffer_timer -= delta + if coyote_timer > 0.0: + coyote_timer -= delta + else: + jump_count = 0 + + if Input.is_action_just_pressed("player_jump"): + if jump_count > 0: + Jump() + else: + jump_buffer_timer = 0.2 + elif Input.is_action_pressed("player_jump"): + velocity.y += -1 * 25 + +func _physics_process(delta): + get_input(delta) + velocity.y += gravity + move_and_slide() + if(get_slide_collision_count() > 0): + for i in get_slide_collision_count(): + var box = get_slide_collision(i).get_collider() as Box + if scale.x == 2: + if box and velocity.y >= 0: + box.velocity.x = velocity.x*1.2 + else: + if box and velocity.y >= 0 and box.scale.x < 2: + box.velocity.x = velocity.x*0.8 + update_data_link() + update_cursor() + +func Jump(): + if scale.x == 1: + velocity.y = -1 * jump_strength + sfx.play() + else : + velocity.y = -1 * jump_strength_large + sfx_large.play() + jump_count = 0 + is_touching_floor = false + +func _on_hurtbox_body_entered(body: Node2D) -> void: + get_tree().reload_current_scene() + +func update_data_link(): + var nearest_block = find_nearest_block() + if nearest_block: + data_link.visible = true + data_link.set_point_position(0, Vector2.ZERO) + data_link.set_point_position(1, get_transform().affine_inverse() * nearest_block.position) + else: + data_link.visible = false + +func update_cursor(): + var nearest_block = find_nearest_block() + if nearest_block: + if nearest_block.scale == Vector2(0.5, 0.5) and self.scale == Vector2(2.0, 2.0): + Input.set_custom_mouse_cursor(cursor_scale_up) + elif nearest_block.scale == Vector2(1.0, 1.0) and self.scale == Vector2(1.0, 1.0): + Input.set_custom_mouse_cursor(cursor_scale_down) + +func find_nearest_block() -> Node2D: + if not get_tree(): + return null + + var closest_distance = max_link_distance + var closest_block: Node2D = null + for block in get_tree().get_nodes_in_group("scalable_blocks"): + var distance = global_position.distance_to(block.global_position) + if distance <= closest_distance: + closest_distance = distance + closest_block = block + return closest_block + +func find_nearest_enemy() -> Node2D: + var closest_distance = max_link_distance + var closest_block: Node2D = null + for block in get_tree().get_nodes_in_group("enemy"): + var distance = global_position.distance_to(block.global_position) + if distance <= closest_distance: + closest_distance = distance + closest_block = block + return closest_block + +func start_scaling(target_node: Node2D, scale_value: Vector2): + var tween = create_tween() + tween.tween_property(target_node, "scale", scale_value, scale_duration) + +func scale_up_player(): + target_scale_player = Vector2(2.0, 2.0) + start_scaling(self, target_scale_player) + +func scale_down_player(): + target_scale_player = Vector2(1.0, 1.0) + start_scaling(self, target_scale_player) diff --git a/gmtk_2024/scripts/pushable.gd b/gmtk_2024/scripts/pushable.gd new file mode 100644 index 0000000..6725137 --- /dev/null +++ b/gmtk_2024/scripts/pushable.gd @@ -0,0 +1,7 @@ +extends CharacterBody2D +class_name Box; + +func _physics_process(delta: float) -> void: + velocity.y += 50 + velocity.x = velocity.x * 0.8 + move_and_slide() diff --git a/gmtk_2024/scripts/resizable_block.gd b/gmtk_2024/scripts/resizable_block.gd new file mode 100644 index 0000000..d421d3e --- /dev/null +++ b/gmtk_2024/scripts/resizable_block.gd @@ -0,0 +1,38 @@ +extends AnimatableBody2D + +@export var scale_up_target: Vector2 = Vector2(1.0, 1.0) +@export var scale_down_target: Vector2 = Vector2(0.5, 0.5) +@export var scale_duration: float = 0.5 +@export var ui_actions: Node +@export var small_sprite = preload("res://textures/antivirus-block-small.png") +@export var large_sprite = preload("res://textures/antivirus-block-big.png") +@export var delete_self = false + +func _ready(): + add_to_group("scalable_blocks") + +func _process(delta): + change_sprite_based_on_scale() + +func scale_up(): + var tween = create_tween() + tween.tween_property(self, "scale", scale_up_target, scale_duration) + change_sprite_based_on_scale() + if delete_self: + queue_free() + + +func scale_down(): + var tween = create_tween() + tween.tween_property(self, "scale", scale_down_target, scale_duration) + change_sprite_based_on_scale() + if delete_self: + queue_free() + +func change_sprite_based_on_scale(): + var sprite = $Sprite2D + + if scale == Vector2(0.5, 0.5): + sprite.texture = small_sprite + elif scale == Vector2(1.0, 1.0): + sprite.texture = large_sprite diff --git a/gmtk_2024/shaders/File-Icon-Sheet.png b/gmtk_2024/shaders/File-Icon-Sheet.png new file mode 100644 index 0000000..6db41bd Binary files /dev/null and b/gmtk_2024/shaders/File-Icon-Sheet.png differ diff --git a/gmtk_2024/shaders/crt.gdshader b/gmtk_2024/shaders/crt.gdshader new file mode 100644 index 0000000..6cfdc28 --- /dev/null +++ b/gmtk_2024/shaders/crt.gdshader @@ -0,0 +1,87 @@ +/* + CRT shader for Godot Engine by Yui Kinomoto @arlez80 +*/ +shader_type canvas_item; + +// 画面 +uniform sampler2D screen_texture : hint_screen_texture; + +// ブラウン管のガラスの曲がり具合(フラットなやつは0.0でいいかな) +uniform float crt_curve : hint_range( 0.0, 1.0 ) = 0.02; +// 走査線の濃さ +uniform float crt_scan_line_color : hint_range( 0.0, 1.0 ) = 0.347; +// 光量 +uniform float aperture_grille_rate : hint_range( 0.0, 1.0 ) = 0.4; +// RFスイッチ的ブラー +uniform float rf_switch_esque_blur : hint_range( 0.0, 1.0 ) = 1; +// 白色ノイズ +uniform float white_noise_rate : hint_range( 0.0, 1.0 ) = 0.0; + +float random( vec2 pos ) +{ + return fract(sin(dot(pos, vec2(12.9898,78.233))) * 43758.5453); +} + +void fragment( ) +{ + // ガラスの曲がり具合 + vec2 crt_curve_shift = ( vec2( 1.0, 1.0 ) - sin( UV.yx * PI ) ) * crt_curve; + vec2 crt_curve_scale = vec2( 1.0, 1.0 ) + crt_curve_shift * 2.0; + vec2 texture_fixed_uv = UV * crt_curve_scale - crt_curve_shift; + vec2 fixed_uv = SCREEN_UV * crt_curve_scale - crt_curve_shift; + // 範囲外を消す + float enable_color = float( 0.0 <= texture_fixed_uv.x && texture_fixed_uv.x <= 1.0 && 0.0 <= texture_fixed_uv.y && texture_fixed_uv.y <= 1.0 ); + + // ガラスの曲がり具合から元色を取得 + RFスイッチ的ブラー + COLOR.rgb = ( + ( + texture( screen_texture, fixed_uv ).rgb + * ( 1.0 - rf_switch_esque_blur * 0.5 ) + ) + + ( + ( + texture( screen_texture, fixed_uv + vec2( -SCREEN_PIXEL_SIZE.x * 3.1, 0.0 ) ).rgb + + texture( screen_texture, fixed_uv + vec2( SCREEN_PIXEL_SIZE.x * 3.1, 0.0 ) ).rgb + ) + * ( rf_switch_esque_blur * 0.25 ) // (RFノイズ)0.5 * (テクスチャから読んだ2箇所を半分にしたい)0.5 + ) + ) * enable_color; + COLOR.a = 1.0; + + // ------------------------------------------------ + // 以下はアパーチャグリル上の1ピクセルごとの処理 + vec2 aperture_grille_pixel = vec2( floor( ( fixed_uv.x / SCREEN_PIXEL_SIZE.x ) / 3.0 ) * 3.0, fixed_uv.y ); + + // 白色ノイズ + float white_noise = random( aperture_grille_pixel + vec2( sin( TIME * 0.543254 ), cos( TIME * 0.254323563 ) ) ); + COLOR.rgb = mix( + COLOR.rgb + , vec3( white_noise, white_noise, white_noise ) + , white_noise_rate * enable_color + ); + + // アパーチャグリル再現 + float aperture_grille_point = mod( ( ( SCREEN_UV.x * crt_curve_scale.x ) - crt_curve_shift.x ) / SCREEN_PIXEL_SIZE.x, 3.0 ); + float aperture_grille_r_rate = clamp( 1.0 - aperture_grille_point, 0.0, 1.0 ) + clamp( aperture_grille_point - 2.0, 0.0, 1.0 ); + float aperture_grille_g_rate = clamp( 1.0 - abs( 1.0 - aperture_grille_point ), 0.0, 1.0 ); + float aperture_grille_b_rate = 1.0 - aperture_grille_r_rate - aperture_grille_g_rate; + COLOR = clamp( + COLOR * vec4( + normalize( vec3( + clamp( aperture_grille_r_rate, aperture_grille_rate, 1.0 ) + , clamp( aperture_grille_g_rate, aperture_grille_rate, 1.0 ) + , clamp( aperture_grille_b_rate, aperture_grille_rate, 1.0 ) + ) ) + , 1.0 + ) + , vec4( 0.0, 0.0, 0.0, 0.0 ) + , vec4( 1.0, 1.0, 1.0, 1.0 ) + ); + + // 走査線 + COLOR = mix( + COLOR + , vec4( 0.0, 0.0, 0.0, 1.0 ) + , float( 0 == int( fixed_uv.y / SCREEN_PIXEL_SIZE.y ) % 2 ) * crt_scan_line_color + ); +} diff --git a/gmtk_2024/shaders/scrolling.gdshader b/gmtk_2024/shaders/scrolling.gdshader new file mode 100644 index 0000000..204ae98 --- /dev/null +++ b/gmtk_2024/shaders/scrolling.gdshader @@ -0,0 +1,9 @@ +shader_type canvas_item; +uniform float scroll_speed; + +void fragment(){ + vec2 shifteduv = UV; + shifteduv .y -= TIME * scroll_speed; + vec4 color = texture(TEXTURE, shifteduv); + COLOR = color; +} \ No newline at end of file diff --git a/gmtk_2024/sound/Jump5.wav b/gmtk_2024/sound/Jump5.wav new file mode 100644 index 0000000..63cfd90 Binary files /dev/null and b/gmtk_2024/sound/Jump5.wav differ diff --git a/gmtk_2024/temp_assets/goal.png b/gmtk_2024/temp_assets/goal.png new file mode 100644 index 0000000..da245b6 Binary files /dev/null and b/gmtk_2024/temp_assets/goal.png differ diff --git a/gmtk_2024/temp_assets/goal_bg.png b/gmtk_2024/temp_assets/goal_bg.png new file mode 100644 index 0000000..f122b3e Binary files /dev/null and b/gmtk_2024/temp_assets/goal_bg.png differ diff --git a/gmtk_2024/icon.svg b/gmtk_2024/temp_assets/icon.svg similarity index 100% rename from gmtk_2024/icon.svg rename to gmtk_2024/temp_assets/icon.svg diff --git a/gmtk_2024/icon.svg.import b/gmtk_2024/temp_assets/icon.svg.import similarity index 76% rename from gmtk_2024/icon.svg.import rename to gmtk_2024/temp_assets/icon.svg.import index c5b8434..6cdaeb0 100644 --- a/gmtk_2024/icon.svg.import +++ b/gmtk_2024/temp_assets/icon.svg.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://3t2am0l5qvpq" -path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +path="res://.godot/imported/icon.svg-54b04439b4d8634f76176c472591e9b4.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://icon.svg" -dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] +source_file="res://temp_assets/icon.svg" +dest_files=["res://.godot/imported/icon.svg-54b04439b4d8634f76176c472591e9b4.ctex"] [params] diff --git a/gmtk_2024/temp_assets/img.png b/gmtk_2024/temp_assets/img.png new file mode 100644 index 0000000..ff01cbe Binary files /dev/null and b/gmtk_2024/temp_assets/img.png differ diff --git a/gmtk_2024/temp_assets/img.png.import b/gmtk_2024/temp_assets/img.png.import new file mode 100644 index 0000000..e34734d --- /dev/null +++ b/gmtk_2024/temp_assets/img.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://buqgl7x10et1f" +path="res://.godot/imported/img.png-dc45bd2bd72f900a7a2ec2ffa7c47124.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://temp_assets/img.png" +dest_files=["res://.godot/imported/img.png-dc45bd2bd72f900a7a2ec2ffa7c47124.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/temp_assets/mirror.png b/gmtk_2024/temp_assets/mirror.png new file mode 100644 index 0000000..a800f4c Binary files /dev/null and b/gmtk_2024/temp_assets/mirror.png differ diff --git a/gmtk_2024/temp_assets/mirror.png.import b/gmtk_2024/temp_assets/mirror.png.import new file mode 100644 index 0000000..b6563d7 --- /dev/null +++ b/gmtk_2024/temp_assets/mirror.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2rfdls8oduj1" +path="res://.godot/imported/mirror.png-8323ac08430b69a1455e8f58bedfc150.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://temp_assets/mirror.png" +dest_files=["res://.godot/imported/mirror.png-8323ac08430b69a1455e8f58bedfc150.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/temp_assets/mirror_hovered.png b/gmtk_2024/temp_assets/mirror_hovered.png new file mode 100644 index 0000000..462e1a6 Binary files /dev/null and b/gmtk_2024/temp_assets/mirror_hovered.png differ diff --git a/gmtk_2024/temp_assets/mirror_hovered.png.import b/gmtk_2024/temp_assets/mirror_hovered.png.import new file mode 100644 index 0000000..264c648 --- /dev/null +++ b/gmtk_2024/temp_assets/mirror_hovered.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfpwj3kaxe1ka" +path="res://.godot/imported/mirror_hovered.png-fa2419b22d10d99c5187ca2e8ecc3d42.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://temp_assets/mirror_hovered.png" +dest_files=["res://.godot/imported/mirror_hovered.png-fa2419b22d10d99c5187ca2e8ecc3d42.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/temp_assets/scale_down_hovered.png b/gmtk_2024/temp_assets/scale_down_hovered.png new file mode 100644 index 0000000..36e44b8 Binary files /dev/null and b/gmtk_2024/temp_assets/scale_down_hovered.png differ diff --git a/gmtk_2024/temp_assets/scale_down_hovered.png.import b/gmtk_2024/temp_assets/scale_down_hovered.png.import new file mode 100644 index 0000000..1741b53 --- /dev/null +++ b/gmtk_2024/temp_assets/scale_down_hovered.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c02aqv5sgwvgn" +path="res://.godot/imported/scale_down_hovered.png-0778febf7416ccd7c8ca97bc8f162cb4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://temp_assets/scale_down_hovered.png" +dest_files=["res://.godot/imported/scale_down_hovered.png-0778febf7416ccd7c8ca97bc8f162cb4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/temp_assets/scale_up.png b/gmtk_2024/temp_assets/scale_up.png new file mode 100644 index 0000000..cfe3dcf Binary files /dev/null and b/gmtk_2024/temp_assets/scale_up.png differ diff --git a/gmtk_2024/temp_assets/scale_up.png.import b/gmtk_2024/temp_assets/scale_up.png.import new file mode 100644 index 0000000..b0e18dc --- /dev/null +++ b/gmtk_2024/temp_assets/scale_up.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cw3onignoce3e" +path="res://.godot/imported/scale_up.png-c50833ff329efc91c6234f8910a0feaa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://temp_assets/scale_up.png" +dest_files=["res://.godot/imported/scale_up.png-c50833ff329efc91c6234f8910a0feaa.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/temp_assets/scale_up_hovered.png b/gmtk_2024/temp_assets/scale_up_hovered.png new file mode 100644 index 0000000..37d83a0 Binary files /dev/null and b/gmtk_2024/temp_assets/scale_up_hovered.png differ diff --git a/gmtk_2024/temp_assets/scale_up_hovered.png.import b/gmtk_2024/temp_assets/scale_up_hovered.png.import new file mode 100644 index 0000000..6c03250 --- /dev/null +++ b/gmtk_2024/temp_assets/scale_up_hovered.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ckr5hxaqp6s5x" +path="res://.godot/imported/scale_up_hovered.png-090bafae05a1ad3ed19d5bd535718527.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://temp_assets/scale_up_hovered.png" +dest_files=["res://.godot/imported/scale_up_hovered.png-090bafae05a1ad3ed19d5bd535718527.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/temp_assets/scaled_down.png b/gmtk_2024/temp_assets/scaled_down.png new file mode 100644 index 0000000..75a54e2 Binary files /dev/null and b/gmtk_2024/temp_assets/scaled_down.png differ diff --git a/gmtk_2024/temp_assets/scaled_down.png.import b/gmtk_2024/temp_assets/scaled_down.png.import new file mode 100644 index 0000000..b3485ec --- /dev/null +++ b/gmtk_2024/temp_assets/scaled_down.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btmck3gpinxo1" +path="res://.godot/imported/scaled_down.png-212f7a95b9c138667b8d044aa8656802.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://temp_assets/scaled_down.png" +dest_files=["res://.godot/imported/scaled_down.png-212f7a95b9c138667b8d044aa8656802.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/textures/01-Portal-Sheet.png b/gmtk_2024/textures/01-Portal-Sheet.png new file mode 100644 index 0000000..9b377ce Binary files /dev/null and b/gmtk_2024/textures/01-Portal-Sheet.png differ diff --git a/gmtk_2024/textures/BrackableBlock-Sheet.png b/gmtk_2024/textures/BrackableBlock-Sheet.png new file mode 100644 index 0000000..10ee13e Binary files /dev/null and b/gmtk_2024/textures/BrackableBlock-Sheet.png differ diff --git a/gmtk_2024/textures/Eye Lase.png b/gmtk_2024/textures/Eye Lase.png new file mode 100644 index 0000000..21785a2 Binary files /dev/null and b/gmtk_2024/textures/Eye Lase.png differ diff --git a/gmtk_2024/textures/File-Icon-Closed.png b/gmtk_2024/textures/File-Icon-Closed.png new file mode 100644 index 0000000..04f4227 Binary files /dev/null and b/gmtk_2024/textures/File-Icon-Closed.png differ diff --git a/gmtk_2024/textures/File-Icon-Sheet.png b/gmtk_2024/textures/File-Icon-Sheet.png new file mode 100644 index 0000000..7ed6cce Binary files /dev/null and b/gmtk_2024/textures/File-Icon-Sheet.png differ diff --git a/gmtk_2024/textures/File-Icon.png b/gmtk_2024/textures/File-Icon.png new file mode 100644 index 0000000..d23a9a8 Binary files /dev/null and b/gmtk_2024/textures/File-Icon.png differ diff --git a/gmtk_2024/textures/Lev1D38.tmp b/gmtk_2024/textures/Lev1D38.tmp new file mode 100644 index 0000000..a1dc3c9 Binary files /dev/null and b/gmtk_2024/textures/Lev1D38.tmp differ diff --git a/gmtk_2024/textures/Level 01.gif b/gmtk_2024/textures/Level 01.gif new file mode 100644 index 0000000..a1dc3c9 Binary files /dev/null and b/gmtk_2024/textures/Level 01.gif differ diff --git a/gmtk_2024/textures/Level 01.png b/gmtk_2024/textures/Level 01.png new file mode 100644 index 0000000..658eeb7 Binary files /dev/null and b/gmtk_2024/textures/Level 01.png differ diff --git a/gmtk_2024/textures/PressurePlate.png b/gmtk_2024/textures/PressurePlate.png new file mode 100644 index 0000000..cb13eb1 Binary files /dev/null and b/gmtk_2024/textures/PressurePlate.png differ diff --git a/gmtk_2024/textures/Virus-Player-Sheet.png b/gmtk_2024/textures/Virus-Player-Sheet.png new file mode 100644 index 0000000..a783ae6 Binary files /dev/null and b/gmtk_2024/textures/Virus-Player-Sheet.png differ diff --git a/gmtk_2024/textures/Virus-Player-Sheet.png.import b/gmtk_2024/textures/Virus-Player-Sheet.png.import new file mode 100644 index 0000000..32c46bf --- /dev/null +++ b/gmtk_2024/textures/Virus-Player-Sheet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnj38vubchr2w" +path="res://.godot/imported/Virus-Player-Sheet.png-07f10ef36716fa6b784552079fc14813.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/Virus-Player-Sheet.png" +dest_files=["res://.godot/imported/Virus-Player-Sheet.png-07f10ef36716fa6b784552079fc14813.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/textures/antivirus-block-big.png b/gmtk_2024/textures/antivirus-block-big.png new file mode 100644 index 0000000..f20b2d5 Binary files /dev/null and b/gmtk_2024/textures/antivirus-block-big.png differ diff --git a/gmtk_2024/textures/antivirus-block-small.png b/gmtk_2024/textures/antivirus-block-small.png new file mode 100644 index 0000000..449bfd1 Binary files /dev/null and b/gmtk_2024/textures/antivirus-block-small.png differ diff --git a/gmtk_2024/textures/button-pressed.png b/gmtk_2024/textures/button-pressed.png new file mode 100644 index 0000000..433dfe3 Binary files /dev/null and b/gmtk_2024/textures/button-pressed.png differ diff --git a/gmtk_2024/textures/button-unpressed.png b/gmtk_2024/textures/button-unpressed.png new file mode 100644 index 0000000..7e062a8 Binary files /dev/null and b/gmtk_2024/textures/button-unpressed.png differ diff --git a/gmtk_2024/textures/cursor_normal.png b/gmtk_2024/textures/cursor_normal.png new file mode 100644 index 0000000..7af18c2 Binary files /dev/null and b/gmtk_2024/textures/cursor_normal.png differ diff --git a/gmtk_2024/textures/cursor_scale_down.png b/gmtk_2024/textures/cursor_scale_down.png new file mode 100644 index 0000000..2541297 Binary files /dev/null and b/gmtk_2024/textures/cursor_scale_down.png differ diff --git a/gmtk_2024/textures/cursor_scale_up.png b/gmtk_2024/textures/cursor_scale_up.png new file mode 100644 index 0000000..c3d888c Binary files /dev/null and b/gmtk_2024/textures/cursor_scale_up.png differ diff --git a/gmtk_2024/textures/file_editor.png b/gmtk_2024/textures/file_editor.png new file mode 100644 index 0000000..7791bee Binary files /dev/null and b/gmtk_2024/textures/file_editor.png differ diff --git a/gmtk_2024/textures/file_editor.png.import b/gmtk_2024/textures/file_editor.png.import new file mode 100644 index 0000000..428b040 --- /dev/null +++ b/gmtk_2024/textures/file_editor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dr4ayedb5xb2k" +path="res://.godot/imported/file_editor.png-df29bf0603480d0e2a8749cfcfa90ea1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/file_editor.png" +dest_files=["res://.godot/imported/file_editor.png-df29bf0603480d0e2a8749cfcfa90ea1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/textures/level01-spritesheet.png b/gmtk_2024/textures/level01-spritesheet.png new file mode 100644 index 0000000..307a983 Binary files /dev/null and b/gmtk_2024/textures/level01-spritesheet.png differ diff --git a/gmtk_2024/textures/level01-spritesheet.png.import b/gmtk_2024/textures/level01-spritesheet.png.import new file mode 100644 index 0000000..2f5f288 --- /dev/null +++ b/gmtk_2024/textures/level01-spritesheet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3m4os8kteaix" +path="res://.godot/imported/level01-spritesheet.png-1916fd85baf9b82e97ba6ec03a3146d9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/level01-spritesheet.png" +dest_files=["res://.godot/imported/level01-spritesheet.png-1916fd85baf9b82e97ba6ec03a3146d9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/textures/movable-block-big.png b/gmtk_2024/textures/movable-block-big.png new file mode 100644 index 0000000..cef9659 Binary files /dev/null and b/gmtk_2024/textures/movable-block-big.png differ diff --git a/gmtk_2024/textures/movable-block-big.png~ b/gmtk_2024/textures/movable-block-big.png~ new file mode 100644 index 0000000..adeb535 Binary files /dev/null and b/gmtk_2024/textures/movable-block-big.png~ differ diff --git a/gmtk_2024/textures/movable-block-small.png b/gmtk_2024/textures/movable-block-small.png new file mode 100644 index 0000000..38fcd0b Binary files /dev/null and b/gmtk_2024/textures/movable-block-small.png differ diff --git a/gmtk_2024/textures/movable-block-small.png~ b/gmtk_2024/textures/movable-block-small.png~ new file mode 100644 index 0000000..01b5558 Binary files /dev/null and b/gmtk_2024/textures/movable-block-small.png~ differ diff --git a/gmtk_2024/textures/one-time-use-block-big.png b/gmtk_2024/textures/one-time-use-block-big.png new file mode 100644 index 0000000..1058583 Binary files /dev/null and b/gmtk_2024/textures/one-time-use-block-big.png differ diff --git a/gmtk_2024/textures/one-time-use-block-small.png b/gmtk_2024/textures/one-time-use-block-small.png new file mode 100644 index 0000000..c0b9064 Binary files /dev/null and b/gmtk_2024/textures/one-time-use-block-small.png differ diff --git a/gmtk_2024/textures/player.png b/gmtk_2024/textures/player.png new file mode 100644 index 0000000..4fd1da6 Binary files /dev/null and b/gmtk_2024/textures/player.png differ diff --git a/gmtk_2024/textures/player.png.import b/gmtk_2024/textures/player.png.import new file mode 100644 index 0000000..ba2a02e --- /dev/null +++ b/gmtk_2024/textures/player.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qcx482jc7pqr" +path="res://.godot/imported/player.png-ce289a19efa81f268b1bb13630e9f80b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/player.png" +dest_files=["res://.godot/imported/player.png-ce289a19efa81f268b1bb13630e9f80b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gmtk_2024/textures/three-time-use-block-big.png b/gmtk_2024/textures/three-time-use-block-big.png new file mode 100644 index 0000000..bb232d9 Binary files /dev/null and b/gmtk_2024/textures/three-time-use-block-big.png differ diff --git a/gmtk_2024/textures/three-time-use-block-small.png b/gmtk_2024/textures/three-time-use-block-small.png new file mode 100644 index 0000000..3324d06 Binary files /dev/null and b/gmtk_2024/textures/three-time-use-block-small.png differ diff --git a/gmtk_2024/textures/two-time-use-block-big.png b/gmtk_2024/textures/two-time-use-block-big.png new file mode 100644 index 0000000..b071e8e Binary files /dev/null and b/gmtk_2024/textures/two-time-use-block-big.png differ diff --git a/gmtk_2024/textures/two-time-use-block-small.png b/gmtk_2024/textures/two-time-use-block-small.png new file mode 100644 index 0000000..58b370b Binary files /dev/null and b/gmtk_2024/textures/two-time-use-block-small.png differ