Merge pull request 'dev' (#57) from dev into main
Reviewed-on: https://code.booklordofthe.dev///Booklordofthedings/GMTK-2024/pulls/57
BIN
.DS_Store
vendored
Normal file
3
.gitignore
vendored
|
@ -12,4 +12,5 @@ export_presets.cfg
|
|||
# Mono-specific ignores
|
||||
.mono/
|
||||
data_*/
|
||||
mono_crash.*.json
|
||||
mono_crash.*.json
|
||||
*.import
|
||||
|
|
BIN
assets/icons.kra
Normal file
BIN
assets/icons.kra~
Normal file
BIN
gmtk_2024/CommodoreSixtyFour.ttf
Normal file
34
gmtk_2024/CommodoreSixtyFour.ttf.import
Normal file
|
@ -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={}
|
21
gmtk_2024/canvas_layer.tscn
Normal file
|
@ -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
|
194
gmtk_2024/levels/LevelBase.tscn
Normal file
|
@ -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
|
192
gmtk_2024/levels/Level_1_Rooms/level_1_2.tscn
Normal file
|
@ -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
|
25
gmtk_2024/levels/Level_2_Rooms/level_2_room_2.tscn
Normal file
|
@ -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)
|
37
gmtk_2024/levels/Level_2_Rooms/level_2_room_3.tscn
Normal file
|
@ -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)
|
26
gmtk_2024/levels/Level_3_Rooms/level_3_room_2.tscn
Normal file
|
@ -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")
|
22
gmtk_2024/levels/Level_3_Rooms/level_3_room_3.tscn
Normal file
|
@ -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)
|
38
gmtk_2024/levels/level_1.tscn
Normal file
|
@ -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)
|
25
gmtk_2024/levels/level_2.tscn
Normal file
|
@ -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")
|
30
gmtk_2024/levels/level_3.tscn
Normal file
|
@ -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)
|
174
gmtk_2024/levels/level_test.tscn
Normal file
87
gmtk_2024/menu/PauseMenu.tscn
Normal file
|
@ -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"]
|
49
gmtk_2024/menu/level_menu/level_button.tscn
Normal file
|
@ -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"]
|
93
gmtk_2024/menu/level_menu/level_select.tscn
Normal file
|
@ -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"]
|
49
gmtk_2024/menu/main_menu/Cre73AB.tmp
Normal file
|
@ -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"]
|
49
gmtk_2024/menu/main_menu/CreditsScene.tscn
Normal file
|
@ -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"]
|
103
gmtk_2024/menu/main_menu/MainMenu.tscn
Normal file
|
@ -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"]
|
19
gmtk_2024/menu/main_menu/MainMenuTheme.tres
Normal file
|
@ -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")
|
18
gmtk_2024/menu/main_menu/conFBFE.tmp
Normal file
|
@ -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")]
|
18
gmtk_2024/objects/BoxPushable_1.tscn
Normal file
|
@ -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")
|
18
gmtk_2024/objects/BreakableBlock.tscn
Normal file
|
@ -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")
|
22
gmtk_2024/objects/CRT.tscn
Normal file
|
@ -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
|
19
gmtk_2024/objects/Ene478E.tmp
Normal file
|
@ -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")
|
19
gmtk_2024/objects/EnemyMover.tscn
Normal file
|
@ -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")
|
66
gmtk_2024/objects/Goal.tscn
Normal file
|
@ -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"]
|
34
gmtk_2024/objects/Laser.tscn
Normal file
|
@ -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")
|
49
gmtk_2024/objects/LevA5DE.tmp
Normal file
|
@ -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"]
|
49
gmtk_2024/objects/LevelComplete.tscn
Normal file
|
@ -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"]
|
15
gmtk_2024/objects/MirrorOrb.tscn
Normal file
|
@ -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")
|
10
gmtk_2024/objects/OneTimeBlock.tscn
Normal file
|
@ -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
|
53
gmtk_2024/objects/Player.tscn
Normal file
|
@ -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"]
|
89
gmtk_2024/objects/Pre676A.tmp
Normal file
|
@ -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"]
|
89
gmtk_2024/objects/PressurePlate.tscn
Normal file
|
@ -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"]
|
15
gmtk_2024/objects/ResizableBlock.tscn
Normal file
|
@ -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)
|
13
gmtk_2024/objects/box_pushable_2.tscn
Normal file
|
@ -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")
|
20
gmtk_2024/plaB470.tmp
Normal file
|
@ -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")
|
|
@ -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
|
||||
|
|
58
gmtk_2024/project.godot.orig
Normal file
|
@ -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
|
38
gmtk_2024/scripts/PressurePlate.gd
Normal file
|
@ -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
|
14
gmtk_2024/scripts/crumble.gd
Normal file
|
@ -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()
|
15
gmtk_2024/scripts/enemy_movement_mover.gd
Normal file
|
@ -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()
|
17
gmtk_2024/scripts/goal.gd
Normal file
|
@ -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)
|
97
gmtk_2024/scripts/level_completed_control.gd
Normal file
|
@ -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
|
26
gmtk_2024/scripts/level_menu_level_button.gd
Normal file
|
@ -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)
|
24
gmtk_2024/scripts/level_select.gd
Normal file
|
@ -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")
|
100
gmtk_2024/scripts/menu_credit_control.gd
Normal file
|
@ -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
|
131
gmtk_2024/scripts/menu_main_control.gd
Normal file
|
@ -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()
|
127
gmtk_2024/scripts/pause_menu_control.gd
Normal file
|
@ -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()
|
171
gmtk_2024/scripts/player_movement.gd
Normal file
|
@ -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)
|
7
gmtk_2024/scripts/pushable.gd
Normal file
|
@ -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()
|
38
gmtk_2024/scripts/resizable_block.gd
Normal file
|
@ -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
|
BIN
gmtk_2024/shaders/File-Icon-Sheet.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
87
gmtk_2024/shaders/crt.gdshader
Normal file
|
@ -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
|
||||
);
|
||||
}
|
9
gmtk_2024/shaders/scrolling.gdshader
Normal file
|
@ -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;
|
||||
}
|
BIN
gmtk_2024/sound/Jump5.wav
Normal file
BIN
gmtk_2024/temp_assets/goal.png
Normal file
After Width: | Height: | Size: 3 KiB |
BIN
gmtk_2024/temp_assets/goal_bg.png
Normal file
After Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 994 B After Width: | Height: | Size: 994 B |
|
@ -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]
|
||||
|
BIN
gmtk_2024/temp_assets/img.png
Normal file
After Width: | Height: | Size: 173 B |
34
gmtk_2024/temp_assets/img.png.import
Normal file
|
@ -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
|
BIN
gmtk_2024/temp_assets/mirror.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
34
gmtk_2024/temp_assets/mirror.png.import
Normal file
|
@ -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
|
BIN
gmtk_2024/temp_assets/mirror_hovered.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
34
gmtk_2024/temp_assets/mirror_hovered.png.import
Normal file
|
@ -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
|
BIN
gmtk_2024/temp_assets/scale_down_hovered.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
34
gmtk_2024/temp_assets/scale_down_hovered.png.import
Normal file
|
@ -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
|
BIN
gmtk_2024/temp_assets/scale_up.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
34
gmtk_2024/temp_assets/scale_up.png.import
Normal file
|
@ -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
|
BIN
gmtk_2024/temp_assets/scale_up_hovered.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
34
gmtk_2024/temp_assets/scale_up_hovered.png.import
Normal file
|
@ -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
|
BIN
gmtk_2024/temp_assets/scaled_down.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
34
gmtk_2024/temp_assets/scaled_down.png.import
Normal file
|
@ -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
|
BIN
gmtk_2024/textures/01-Portal-Sheet.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
gmtk_2024/textures/BrackableBlock-Sheet.png
Normal file
After Width: | Height: | Size: 932 B |
BIN
gmtk_2024/textures/Eye Lase.png
Normal file
After Width: | Height: | Size: 122 B |
BIN
gmtk_2024/textures/File-Icon-Closed.png
Normal file
After Width: | Height: | Size: 565 B |
BIN
gmtk_2024/textures/File-Icon-Sheet.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
gmtk_2024/textures/File-Icon.png
Normal file
After Width: | Height: | Size: 467 B |
BIN
gmtk_2024/textures/Lev1D38.tmp
Normal file
After Width: | Height: | Size: 685 KiB |
BIN
gmtk_2024/textures/Level 01.gif
Normal file
After Width: | Height: | Size: 685 KiB |
BIN
gmtk_2024/textures/Level 01.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
gmtk_2024/textures/PressurePlate.png
Normal file
After Width: | Height: | Size: 301 B |
BIN
gmtk_2024/textures/Virus-Player-Sheet.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
34
gmtk_2024/textures/Virus-Player-Sheet.png.import
Normal file
|
@ -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
|
BIN
gmtk_2024/textures/antivirus-block-big.png
Normal file
After Width: | Height: | Size: 411 B |
BIN
gmtk_2024/textures/antivirus-block-small.png
Normal file
After Width: | Height: | Size: 405 B |
BIN
gmtk_2024/textures/button-pressed.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
gmtk_2024/textures/button-unpressed.png
Normal file
After Width: | Height: | Size: 299 B |
BIN
gmtk_2024/textures/cursor_normal.png
Normal file
After Width: | Height: | Size: 242 B |
BIN
gmtk_2024/textures/cursor_scale_down.png
Normal file
After Width: | Height: | Size: 280 B |
BIN
gmtk_2024/textures/cursor_scale_up.png
Normal file
After Width: | Height: | Size: 291 B |
BIN
gmtk_2024/textures/file_editor.png
Normal file
After Width: | Height: | Size: 13 KiB |
34
gmtk_2024/textures/file_editor.png.import
Normal file
|
@ -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
|