1
0

final commit

This commit is contained in:
2026-07-26 18:54:03 +02:00
parent 4438d9d886
commit c818fba5e9
45 changed files with 1791 additions and 67 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0bjiw8ginkre"
path="res://.godot/imported/brief1.png-be9df2717b0013c7e6171cd19cf58904.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/brief/brief1.png"
dest_files=["res://.godot/imported/brief1.png-be9df2717b0013c7e6171cd19cf58904.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://berrjgsj72xx3"
path="res://.godot/imported/brief2.png-3e182da98e45f0bb7821bc9cf292ccef.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/brief/brief2.png"
dest_files=["res://.godot/imported/brief2.png-3e182da98e45f0bb7821bc9cf292ccef.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://css7hk4mnxkv7"
path="res://.godot/imported/brief3.png-a9240b9484cade6c76fc412f23ffcd97.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/brief/brief3.png"
dest_files=["res://.godot/imported/brief3.png-a9240b9484cade6c76fc412f23ffcd97.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvt5ykdeo4ado"
path="res://.godot/imported/brief4.png-f988d801e4534f251177346aba9e84af.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/brief/brief4.png"
dest_files=["res://.godot/imported/brief4.png-f988d801e4534f251177346aba9e84af.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnlw2xffd05ty"
path="res://.godot/imported/heythatsme.png-0bea74de7e1ec1c0b0a274b703fc917f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/heythatsme.png"
dest_files=["res://.godot/imported/heythatsme.png-0bea74de7e1ec1c0b0a274b703fc917f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d2on83l113tdy"
path="res://.godot/imported/themilojko.png-4968bac7c783c95a044473860056a9d8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/themilojko.png"
dest_files=["res://.godot/imported/themilojko.png-4968bac7c783c95a044473860056a9d8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bm47o35ooevh"
path="res://.godot/imported/tilebg.png-6e939ad754ff12401b5ee93af3c6415e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/tilebg.png"
dest_files=["res://.godot/imported/tilebg.png-6e939ad754ff12401b5ee93af3c6415e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://kcvgew3l6huv"
path="res://.godot/imported/stopwatch.png-2a23707986e1960592390d2a430f0a6a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/stopwatch.png"
dest_files=["res://.godot/imported/stopwatch.png-2a23707986e1960592390d2a430f0a6a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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
+41
View File
@@ -0,0 +1,41 @@
[gd_scene format=3 uid="uid://22g17a7hdwdi"]
[ext_resource type="Script" uid="uid://ca8an62xpl0e4" path="res://assets/scripts/disposableParticles.gd" id="1_452fg"]
[ext_resource type="Script" uid="uid://dt85erj8ktqmq" path="res://assets/scripts/kaboom.gd" id="2_75x3p"]
[sub_resource type="Curve" id="Curve_x06pf"]
_data = [Vector2(0.39071038, 1), 0.0, 0.0, 0, 0, Vector2(0.4043716, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.012084603), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="Gradient" id="Gradient_x06pf"]
offsets = PackedFloat32Array(0.016025642, 0.42628205, 0.75641024, 1)
colors = PackedColorArray(1, 0.48800004, 0.04000002, 1, 0.9756667, 1, 0.26999998, 1, 0.63, 0.14490001, 0.14490001, 1, 0, 0, 0, 1)
[sub_resource type="CircleShape2D" id="CircleShape2D_8sg6u"]
radius = 213.00938
[node name="Explosion" type="CPUParticles2D" unique_id=839131906]
z_index = -1
amount = 50
lifetime = 10.0
explosiveness = 1.0
spread = 180.0
gravity = Vector2(0, 0)
initial_velocity_min = 300.0
initial_velocity_max = 500.0
linear_accel_min = -500.0
linear_accel_max = -500.0
scale_amount_min = 24.0
scale_amount_max = 48.0
scale_amount_curve = SubResource("Curve_x06pf")
color_ramp = SubResource("Gradient_x06pf")
script = ExtResource("1_452fg")
[node name="kaboom" type="Area2D" parent="." unique_id=1425329322]
collision_layer = 2
collision_mask = 2
script = ExtResource("2_75x3p")
metadata/kaboom = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="kaboom" unique_id=624235433]
shape = SubResource("CircleShape2D_8sg6u")
+417 -23
View File
@@ -1,8 +1,26 @@
[gd_scene format=3 uid="uid://ff2uc6ruj6q8"] [gd_scene format=3 uid="uid://ff2uc6ruj6q8"]
[ext_resource type="Texture2D" uid="uid://d1f75fetro2se" path="res://assets/images/mainmenubg.png" id="1_8at84"]
[ext_resource type="Script" uid="uid://jgx43t3crrqe" path="res://assets/scripts/main_menu.gd" id="1_n76nl"] [ext_resource type="Script" uid="uid://jgx43t3crrqe" path="res://assets/scripts/main_menu.gd" id="1_n76nl"]
[ext_resource type="FontFile" uid="uid://ha2vel05pr1v" path="res://assets/fonts/AnonymousPro-Bold.ttf" id="2_2cgkr"] [ext_resource type="FontFile" uid="uid://ha2vel05pr1v" path="res://assets/fonts/AnonymousPro-Bold.ttf" id="2_2cgkr"]
[ext_resource type="Texture2D" uid="uid://bm47o35ooevh" path="res://assets/images/tilebg.png" id="2_n76nl"]
[ext_resource type="AudioStream" uid="uid://cnx8twenag0nx" path="res://assets/sounds/click.wav" id="4_cmwfe"]
[ext_resource type="AudioStream" uid="uid://c3gxbppnkybp6" path="res://assets/sounds/select.wav" id="5_0cygf"]
[ext_resource type="Shader" uid="uid://b5ke0njvd8rj7" path="res://assets/shaders/blur.gdshader" id="6_0cygf"]
[ext_resource type="Texture2D" uid="uid://dnlw2xffd05ty" path="res://assets/images/heythatsme.png" id="7_fk7uv"]
[ext_resource type="Texture2D" uid="uid://d2on83l113tdy" path="res://assets/images/themilojko.png" id="8_gmlb3"]
[ext_resource type="Texture2D" uid="uid://0bjiw8ginkre" path="res://assets/images/brief/brief1.png" id="9_f1sm1"]
[ext_resource type="Texture2D" uid="uid://cs35h4es4e6p" path="res://assets/images/gun1.png" id="10_gcs4w"]
[ext_resource type="Texture2D" uid="uid://berrjgsj72xx3" path="res://assets/images/brief/brief2.png" id="11_t87kn"]
[ext_resource type="Texture2D" uid="uid://css7hk4mnxkv7" path="res://assets/images/brief/brief3.png" id="12_dbk30"]
[ext_resource type="Texture2D" uid="uid://cvt5ykdeo4ado" path="res://assets/images/brief/brief4.png" id="13_wavvg"]
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_ulh05"]
light_mode = 1
[sub_resource type="LabelSettings" id="LabelSettings_cmwfe"]
font = ExtResource("2_2cgkr")
font_size = 64
font_color = Color(1, 0.23000002, 0.23000002, 0.1254902)
[sub_resource type="LabelSettings" id="LabelSettings_n76nl"] [sub_resource type="LabelSettings" id="LabelSettings_n76nl"]
font = ExtResource("2_2cgkr") font = ExtResource("2_2cgkr")
@@ -17,6 +35,33 @@ font_color = Color(1, 0.23137255, 0.23137255, 1)
font = ExtResource("2_2cgkr") font = ExtResource("2_2cgkr")
font_size = 32 font_size = 32
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8sg6u"]
shader = ExtResource("6_0cygf")
shader_parameter/lod = 3.0000001425
shader_parameter/color_tint = Color(0, 0, 0, 0.5019608)
[sub_resource type="LabelSettings" id="LabelSettings_8sg6u"]
font = ExtResource("2_2cgkr")
font_size = 56
font_color = Color(1, 0.24705882, 0.24705882, 1)
[sub_resource type="LabelSettings" id="LabelSettings_0cygf"]
font = ExtResource("2_2cgkr")
font_size = 28
[sub_resource type="LabelSettings" id="LabelSettings_f1sm1"]
font = ExtResource("2_2cgkr")
font_size = 20
font_color = Color(1, 1, 1, 0.5019608)
[sub_resource type="LabelSettings" id="LabelSettings_gmlb3"]
font = ExtResource("2_2cgkr")
font_size = 30
font_color = Color(0.9471801, 0.57589805, 1.540184e-06, 1)
[sub_resource type="LabelSettings" id="LabelSettings_gcs4w"]
font_size = 14
[node name="MainMenu" type="Control" unique_id=580589415] [node name="MainMenu" type="Control" unique_id=580589415]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
@@ -38,17 +83,55 @@ offset_bottom = 57.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
pivot_offset_ratio = Vector2(0.5, 0.5) pivot_offset_ratio = Vector2(0.5, 0.5)
texture = ExtResource("1_8at84") texture = ExtResource("2_n76nl")
stretch_mode = 1
[node name="ColorRect" type="ColorRect" parent="." unique_id=1289750966]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -24.0
offset_top = -24.0
offset_right = 24.0
offset_bottom = 24.0
grow_horizontal = 2
grow_vertical = 2
color = Color(1, 0, 0, 1)
[node name="sprite" type="Sprite2D" parent="ColorRect" unique_id=1118350154]
material = SubResource("CanvasItemMaterial_ulh05")
position = Vector2(24, 24)
scale = Vector2(2, 2)
texture = ExtResource("10_gcs4w")
region_enabled = true
region_rect = Rect2(64, 80, 32, 16)
[node name="title3" type="Label" parent="." unique_id=495025501]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -300.0
offset_top = 136.0
offset_right = 294.0
offset_bottom = 201.0
grow_horizontal = 2
text = "countdown mayhem_"
label_settings = SubResource("LabelSettings_cmwfe")
horizontal_alignment = 1
[node name="title2" type="Label" parent="." unique_id=613048176] [node name="title2" type="Label" parent="." unique_id=613048176]
layout_mode = 1 layout_mode = 1
anchors_preset = 5 anchors_preset = 5
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
offset_left = 277.5 offset_left = 258.5
offset_top = 118.0 offset_top = 136.0
offset_right = 312.5 offset_right = 293.5
offset_bottom = 183.0 offset_bottom = 201.0
grow_horizontal = 2 grow_horizontal = 2
text = "_" text = "_"
label_settings = SubResource("LabelSettings_n76nl") label_settings = SubResource("LabelSettings_n76nl")
@@ -59,15 +142,55 @@ layout_mode = 1
anchors_preset = 5 anchors_preset = 5
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
offset_left = -282.5 offset_left = -300.5
offset_top = 120.0 offset_top = 136.0
offset_right = 276.5 offset_right = 258.5
offset_bottom = 185.0 offset_bottom = 201.0
grow_horizontal = 2 grow_horizontal = 2
text = "countdown mayhem" text = "countdown mayhem"
label_settings = SubResource("LabelSettings_xyegg") label_settings = SubResource("LabelSettings_xyegg")
horizontal_alignment = 1 horizontal_alignment = 1
[node name="playButton" type="Label" parent="." unique_id=2094623257]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -99.0
offset_top = -97.0
offset_right = -29.0
offset_bottom = -64.0
grow_horizontal = 2
grow_vertical = 0
pivot_offset_ratio = Vector2(0.5, 0.5)
mouse_filter = 0
text = "play"
label_settings = SubResource("LabelSettings_4agkw")
horizontal_alignment = 1
vertical_alignment = 1
[node name="aboutButton" type="Label" parent="." unique_id=317431764]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = 20.5
offset_top = -97.0
offset_right = 107.5
offset_bottom = -64.0
grow_horizontal = 2
grow_vertical = 0
pivot_offset_ratio = Vector2(0.5, 0.5)
mouse_filter = 0
text = "about"
label_settings = SubResource("LabelSettings_4agkw")
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=1343435685] [node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=1343435685]
layout_mode = 1 layout_mode = 1
anchors_preset = 7 anchors_preset = 7
@@ -83,18 +206,289 @@ grow_horizontal = 2
grow_vertical = 0 grow_vertical = 0
theme_override_constants/separation = 100 theme_override_constants/separation = 100
[node name="playButton" type="Label" parent="HBoxContainer" unique_id=2094623257] [node name="clilcksfx" type="AudioStreamPlayer2D" parent="." unique_id=1008041222]
layout_mode = 2 stream = ExtResource("4_cmwfe")
text = "play"
label_settings = SubResource("LabelSettings_4agkw")
horizontal_alignment = 1
vertical_alignment = 1
[node name="aboutButton" type="Label" parent="HBoxContainer" unique_id=317431764] [node name="selectsfx" type="AudioStreamPlayer2D" parent="." unique_id=139827277]
layout_mode = 2 stream = ExtResource("5_0cygf")
text = "about"
label_settings = SubResource("LabelSettings_4agkw")
horizontal_alignment = 1
vertical_alignment = 1
[connection signal="mouse_entered" from="HBoxContainer/playButton" to="." method="_on_play_button_mouse_entered"] [node name="shader" type="ColorRect" parent="." unique_id=1249808979]
material = SubResource("ShaderMaterial_8sg6u")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="aboutPage" type="Control" parent="." unique_id=545745061]
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="aboutPage" unique_id=879411857]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -153.0
offset_top = 141.0
offset_right = 153.0
offset_bottom = 198.0
grow_horizontal = 2
text = "about page"
label_settings = SubResource("LabelSettings_8sg6u")
[node name="Label2" type="Label" parent="aboutPage" unique_id=59567339]
custom_minimum_size = Vector2(866, 253)
custom_maximum_size = Vector2(866, 253)
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -433.0
offset_top = 237.0
offset_right = 433.0
offset_bottom = 490.0
grow_horizontal = 2
text = "thanks for playing!
it has been a pleasure making this game and i hope i made something at least somewhat fun :)
no assets or code has been directly made by any LLM/AI model."
label_settings = SubResource("LabelSettings_0cygf")
horizontal_alignment = 1
autowrap_mode = 3
[node name="TextureRect" type="TextureRect" parent="aboutPage" unique_id=325492280]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -191.5
offset_top = 528.0
offset_right = -63.5
offset_bottom = 656.0
grow_horizontal = 2
texture = ExtResource("7_fk7uv")
[node name="TextureRect2" type="TextureRect" parent="aboutPage" unique_id=1405964109]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_top = 528.0
offset_right = 256.0
offset_bottom = 784.0
grow_horizontal = 2
scale = Vector2(0.5, 0.5)
pivot_offset_ratio = Vector2(0.5, 0)
texture = ExtResource("8_gmlb3")
[node name="Label5" type="Label" parent="aboutPage" unique_id=1012251158]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -137.0
offset_top = -37.0
offset_right = 137.0
offset_bottom = -16.0
grow_horizontal = 2
grow_vertical = 0
text = "click anywhere to go back"
label_settings = SubResource("LabelSettings_f1sm1")
horizontal_alignment = 1
[node name="Label3" type="Label" parent="aboutPage" unique_id=855079292]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -213.0
offset_top = 668.0
offset_right = -49.0
offset_bottom = 699.0
grow_horizontal = 2
text = "vekidev
(developer)"
label_settings = SubResource("LabelSettings_gmlb3")
horizontal_alignment = 1
[node name="Label4" type="Label" parent="aboutPage" unique_id=1694835121]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = 39.0
offset_top = 668.0
offset_right = 219.0
offset_bottom = 733.0
grow_horizontal = 2
text = "AleksSR
(playtester)"
label_settings = SubResource("LabelSettings_gmlb3")
horizontal_alignment = 1
[node name="briefPage" type="Control" parent="." unique_id=2114111699]
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="briefPage" unique_id=897035668]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -153.0
offset_top = 37.0
offset_right = 153.0
offset_bottom = 94.0
grow_horizontal = 2
text = "brief info"
label_settings = SubResource("LabelSettings_8sg6u")
[node name="cover1" type="TextureRect" parent="briefPage" unique_id=2144631177]
layout_mode = 0
offset_left = 64.00004
offset_top = 136.0
offset_right = 564.00006
offset_bottom = 436.0
scale = Vector2(0.8, 0.8)
texture = ExtResource("9_f1sm1")
[node name="text1" type="Label" parent="briefPage" unique_id=985115148]
custom_minimum_size = Vector2(400, 24)
custom_maximum_size = Vector2(400, 56)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -536.0
offset_top = -12.0
offset_right = -136.0
offset_bottom = 12.0
grow_horizontal = 2
grow_vertical = 2
text = "enemies speed up time when they hit you. when you kill an enemy, your health countdown gets rollbacked."
label_settings = SubResource("LabelSettings_gcs4w")
horizontal_alignment = 1
autowrap_mode = 3
[node name="Label5" type="Label" parent="briefPage" unique_id=335043325]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -137.0
offset_top = -37.0
offset_right = 137.0
offset_bottom = -16.0
grow_horizontal = 2
grow_vertical = 0
text = "click anywhere to continue"
label_settings = SubResource("LabelSettings_f1sm1")
horizontal_alignment = 1
[node name="cover2" type="TextureRect" parent="briefPage" unique_id=2035607867]
layout_mode = 0
offset_left = 728.00006
offset_top = 136.0
offset_right = 1228.0
offset_bottom = 436.0
scale = Vector2(0.8, 0.8)
texture = ExtResource("11_t87kn")
[node name="text2" type="Label" parent="briefPage" unique_id=2022091928]
custom_minimum_size = Vector2(400, 24)
custom_maximum_size = Vector2(400, 76)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 128.0
offset_top = -21.5
offset_right = 528.0
offset_bottom = 53.5
grow_horizontal = 2
grow_vertical = 2
text = "every wave you get a new upgrade. every upgrade explodes after its countdown ends. (golden upgrades are permanent)"
label_settings = SubResource("LabelSettings_gcs4w")
horizontal_alignment = 1
autowrap_mode = 3
[node name="cover3" type="TextureRect" parent="briefPage" unique_id=1727248208]
layout_mode = 0
offset_left = 64.00012
offset_top = 448.0
offset_right = 564.0001
offset_bottom = 748.0
scale = Vector2(0.8, 0.8)
texture = ExtResource("12_dbk30")
[node name="text3" type="Label" parent="briefPage" unique_id=46298891]
custom_minimum_size = Vector2(400, 24)
custom_maximum_size = Vector2(400, 56)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -536.0
offset_top = 287.5
offset_right = -136.0
offset_bottom = 336.5
grow_horizontal = 2
grow_vertical = 2
text = "move with WSAD, shoot with LEFT MOUSE CLICK, dash with SPACE"
label_settings = SubResource("LabelSettings_gcs4w")
horizontal_alignment = 1
autowrap_mode = 3
[node name="cover4" type="TextureRect" parent="briefPage" unique_id=1333388801]
layout_mode = 0
offset_left = 728.00006
offset_top = 448.00003
offset_right = 1228.0
offset_bottom = 748.0
scale = Vector2(0.8, 0.8)
texture = ExtResource("13_wavvg")
[node name="text4" type="Label" parent="briefPage" unique_id=960783645]
custom_minimum_size = Vector2(400, 24)
custom_maximum_size = Vector2(400, 56)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 128.0
offset_top = 287.5
offset_right = 528.0
offset_bottom = 336.5
grow_horizontal = 2
grow_vertical = 2
text = "enemies get exponentially harder every round. your main objective is to go as far as you can."
label_settings = SubResource("LabelSettings_gcs4w")
horizontal_alignment = 1
autowrap_mode = 3
[connection signal="mouse_entered" from="playButton" to="." method="_on_play_button_mouse_entered"]
+1 -1
View File
@@ -115,7 +115,7 @@ material = SubResource("CanvasItemMaterial_14505")
scale = Vector2(2, 2) scale = Vector2(2, 2)
texture = ExtResource("2_s027a") texture = ExtResource("2_s027a")
region_enabled = true region_enabled = true
region_rect = Rect2(0, 112, 16, 16) region_rect = Rect2(64, 80, 32, 16)
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=993544515] [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=993544515]
libraries/ = SubResource("AnimationLibrary_4wcc8") libraries/ = SubResource("AnimationLibrary_4wcc8")
+1 -1
View File
@@ -4,8 +4,8 @@
[ext_resource type="Script" uid="uid://dnxmn06yejksk" path="res://assets/scripts/player_bullet.gd" id="2_qweep"] [ext_resource type="Script" uid="uid://dnxmn06yejksk" path="res://assets/scripts/player_bullet.gd" id="2_qweep"]
[node name="EnemyBullet" unique_id=822797430 instance=ExtResource("1_3t5k8")] [node name="EnemyBullet" unique_id=822797430 instance=ExtResource("1_3t5k8")]
z_index = 1
script = ExtResource("2_qweep") script = ExtResource("2_qweep")
metadata/dontKillUrselfPlease = true
[node name="MeshInstance2D" parent="." index="0" unique_id=903508644] [node name="MeshInstance2D" parent="." index="0" unique_id=903508644]
modulate = Color(1, 0, 0, 1) modulate = Color(1, 0, 0, 1)
+230
View File
@@ -0,0 +1,230 @@
[gd_scene format=3 uid="uid://b8gstr4nrohwu"]
[ext_resource type="Script" uid="uid://b4mt2p1i8cdix" path="res://assets/scripts/walkingbomb.gd" id="1_us3df"]
[ext_resource type="Script" uid="uid://ca8an62xpl0e4" path="res://assets/scripts/disposableParticles.gd" id="2_2knv6"]
[ext_resource type="AudioStream" uid="uid://5b7eonllfufp" path="res://assets/sounds/hitHurt.wav" id="3_gecmd"]
[ext_resource type="AudioStream" uid="uid://cb4tk7lhsuwoj" path="res://assets/sounds/kaboom.wav" id="4_us3df"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xyegg"]
size = Vector2(30, 30)
[sub_resource type="Animation" id="Animation_kvq5h"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Polygon2D:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Polygon2D:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.5707964]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Polygon2D:color")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.16083348, 0.050000012, 1, 1)]
}
[sub_resource type="Animation" id="Animation_ag6wx"]
resource_name = "flash"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = false
tracks/0/path = NodePath("Polygon2D:color")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.06666667, 0.16666667, 0.3),
"transitions": PackedFloat32Array(3.605001, 3.732124, 1),
"update": 0,
"values": [Color(0.6166668, 0, 1, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Polygon2D:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.13333334, 0.5),
"transitions": PackedFloat32Array(4.1410594, 0.34151012, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(0.3, 0.3), Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_kbpvo"]
resource_name = "shoot"
length = 0.4
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Polygon2D:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.4),
"transitions": PackedFloat32Array(0.13869622, 2, 0.73204285),
"update": 0,
"values": [Vector2(1, 1), Vector2(1.2, 0.5), Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_fg8cn"]
resource_name = "spawn"
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Polygon2D:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.33333334, 0.8),
"transitions": PackedFloat32Array(0.36602157, 1.0352651, 3.1383355),
"update": 0,
"values": [Vector2(0, 0), Vector2(1.25, 1.25), Vector2(1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Polygon2D:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.6),
"transitions": PackedFloat32Array(1.8025008, 1),
"update": 0,
"values": [0.0, 1.5707963267948966]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_55kjn"]
_data = {
&"RESET": SubResource("Animation_kvq5h"),
&"flash": SubResource("Animation_ag6wx"),
&"shoot": SubResource("Animation_kbpvo"),
&"spawn": SubResource("Animation_fg8cn")
}
[sub_resource type="Curve" id="Curve_xyegg"]
_data = [Vector2(0.66548043, 0.9809523), 0.0, 0.0, 0, 0, Vector2(1, 0.009523869), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="Gradient" id="Gradient_pymst"]
offsets = PackedFloat32Array(0, 0.69411767, 0.69803923, 0.8745098, 1)
colors = PackedColorArray(1, 1, 1, 1, 0.48555556, 0.48555556, 0.48555556, 1, 0.46, 0.46, 0.46, 1, 0.51, 0.51, 0.51, 1, 1, 1, 1, 0)
[sub_resource type="Curve" id="Curve_8sg6u"]
_data = [Vector2(0.24590164, 0.9788519), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[node name="Enemy" type="CharacterBody2D" unique_id=1421049985]
collision_layer = 16
collision_mask = 16
script = ExtResource("1_us3df")
metadata/enemy = 1
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1723115153]
visible = false
shape = SubResource("RectangleShape2D_xyegg")
[node name="Polygon2D" type="Polygon2D" parent="." unique_id=274914633]
rotation = 1.5707964
color = Color(0.16083348, 0.050000012, 1, 1)
polygon = PackedVector2Array(-8.999999, 19, -8.999999, 19, -27, 1.1802075e-06, -9.000001, -21, 14.999999, -15.000001, 15.000001, 14.999999)
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1072188506]
libraries/ = SubResource("AnimationLibrary_55kjn")
[node name="NavigationAgent2D" type="NavigationAgent2D" parent="." unique_id=1305506168]
[node name="Timer" type="Timer" parent="." unique_id=437715343]
wait_time = 0.1
autostart = true
[node name="RayCast2D" type="RayCast2D" parent="." unique_id=957428599]
target_position = Vector2(400, 0)
collision_mask = 512
[node name="explode" type="CPUParticles2D" parent="." unique_id=1638487851]
z_index = -3
emitting = false
amount = 20
lifetime = 10.0
one_shot = true
explosiveness = 1.0
spread = 180.0
gravity = Vector2(0, 0)
initial_velocity_min = 20.0
initial_velocity_max = 50.0
linear_accel_min = -25.0
linear_accel_max = -25.0
scale_amount_min = 8.0
scale_amount_max = 16.0
scale_amount_curve = SubResource("Curve_xyegg")
color = Color(0, 0.3083334, 0.74, 1)
color_ramp = SubResource("Gradient_pymst")
script = ExtResource("2_2knv6")
[node name="ColorRect" type="ColorRect" parent="." unique_id=1205892242]
offset_left = -15.0
offset_top = -27.0
offset_right = 15.0
offset_bottom = -24.0
color = Color(1, 1, 1, 0.2509804)
[node name="health" type="ColorRect" parent="." unique_id=1962272317]
offset_left = -15.0
offset_top = -27.0
offset_right = 15.0
offset_bottom = -24.0
color = Color(0.8124417, 0, 0.111754455, 1)
[node name="hitsfx" type="AudioStreamPlayer2D" parent="." unique_id=2128530763]
stream = ExtResource("3_gecmd")
[node name="shootsfx" type="AudioStreamPlayer2D" parent="." unique_id=408136521]
stream = ExtResource("4_us3df")
volume_db = -10.0
[node name="snappie" type="Timer" parent="." unique_id=807725500]
wait_time = 0.05
autostart = true
ignore_time_scale = true
[node name="CPUParticles2D" type="CPUParticles2D" parent="." unique_id=1945075138]
amount = 30
emission_shape = 1
emission_sphere_radius = 32.0
spread = 180.0
gravity = Vector2(0, 0)
initial_velocity_min = 20.0
initial_velocity_max = 50.0
scale_amount_min = 2.0
scale_amount_max = 2.0
scale_amount_curve = SubResource("Curve_8sg6u")
color = Color(1, 0.92, 0.19999999, 1)
[connection signal="timeout" from="Timer" to="." method="_on_new_path"]
[connection signal="timeout" from="snappie" to="." method="_on_snappie_timeout"]
+9 -1
View File
@@ -1,8 +1,11 @@
extends CharacterBody2D extends CharacterBody2D
@onready var bullet = preload("res://assets/scenes/enemyBullet.tscn") @onready var bullet = preload("res://assets/scenes/enemyBullet.tscn")
#@onready var bullet = preload("res://assets/scenes/enemyBullet.tscn")
@onready var explosionSFX = preload("res://assets/scenes/explosionsfx.tscn") @onready var explosionSFX = preload("res://assets/scenes/explosionsfx.tscn")
@onready var rollbackPickup = preload("res://assets/scenes/pickupables/stopwatch.tscn")
@onready var player = $"../../Player" @onready var player = $"../../Player"
@onready var poly = $"Polygon2D" @onready var poly = $"Polygon2D"
@onready var animations = $AnimationPlayer @onready var animations = $AnimationPlayer
@@ -74,6 +77,11 @@ func _process(delta: float) -> void:
var exlopsion = explosionSFX.instantiate() var exlopsion = explosionSFX.instantiate()
get_parent().get_parent().add_child(exlopsion) get_parent().get_parent().add_child(exlopsion)
if randi_range(1,5) == 1:
var instantiated = rollbackPickup.instantiate()
instantiated.global_position = global_position
get_parent().get_parent().add_child(instantiated)
queue_free() queue_free()
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
@@ -143,7 +151,7 @@ func _physics_process(delta: float) -> void:
instantiated.rotation = poly.rotation instantiated.rotation = poly.rotation
instantiated.velocity.x = cos(poly.rotation) * 500 instantiated.velocity.x = cos(poly.rotation) * 500
instantiated.velocity.y = sin(poly.rotation) * 500 instantiated.velocity.y = sin(poly.rotation) * 500
instantiated.dealtScale = 1.5 * pow(wave, 0.2) instantiated.dealtScale = 1.5 * pow(1.02, wave)
get_parent().get_parent().add_child(instantiated) get_parent().get_parent().add_child(instantiated)
animations.play("shoot") animations.play("shoot")
+4 -2
View File
@@ -1,6 +1,7 @@
extends Node extends Node
var availableUpgrades := ["dumbbell","firstAidKit", "rollback", "fasterFaster", "speedMayhem", "thoseWereTheDays", "dashMachine", "shotgun"] var availableUpgrades := ["dumbbell","firstAidKit", "rollback", "fasterFaster", "speedMayhem", "thoseWereTheDays", "dashMachine", "shotgun"]
var availableGoldUpgrade := ["shotgun", "dashMachine", "firstAidKit", "stopwatch"]
var upgradeDescriptions := { var upgradeDescriptions := {
"firstAidKit": "+50% time back", "firstAidKit": "+50% time back",
@@ -8,15 +9,16 @@ var upgradeDescriptions := {
"rollback": "-20% speed up when taking damage", "rollback": "-20% speed up when taking damage",
"fasterFaster": "+15% speed", "fasterFaster": "+15% speed",
"speedMayhem": "deal more damage with more speed", "speedMayhem": "deal more damage with more speed",
"thoseWereTheDays": "every rollback, gain +10% damage", "thoseWereTheDays": "every rollback, gain permanent +10% damage",
"dashMachine": "just a better dash.", "dashMachine": "just a better dash.",
"shotgun": "a shotgun. literally just a fricking shotgun." "shotgun": "a shotgun. literally just a fricking shotgun."
} }
var goldUpgradeDescriptionOverrides := { var goldUpgradeDescriptionOverrides := {
"firstAidKit": "i mean its now the second aid kit, right?",
"shotgun": "still a shotgun, but now shiny ooo", "shotgun": "still a shotgun, but now shiny ooo",
"dashMachine": "dash everywhere, go wild.", "dashMachine": "dash everywhere, go wild.",
"stopwatch": "countdowns are 50% slower. its cool isn't it?", "stopwatch": "new upgrade countdowns are 50% slower.",
"adrenaline": "when 5 seconds left on the health countdown, recieve a 75% buff on EVERYTHING.", "adrenaline": "when 5 seconds left on the health countdown, recieve a 75% buff on EVERYTHING.",
"threeWaves": "something is coming in three waves." "threeWaves": "something is coming in three waves."
} }
+9
View File
@@ -0,0 +1,9 @@
extends Area2D
var timer := 0.0
func _process(delta):
timer += delta
if timer > 1:
queue_free()
+1
View File
@@ -0,0 +1 @@
uid://dt85erj8ktqmq
+96 -1
View File
@@ -3,18 +3,113 @@ extends Control
@onready var bg = $TextureRect @onready var bg = $TextureRect
@onready var title1 = $title1 @onready var title1 = $title1
@onready var title2 = $title2 @onready var title2 = $title2
@onready var title3 = $title3
@onready var playButton = $playButton
@onready var aboutButton = $aboutButton
@onready var shader = $shader
@onready var gun = $ColorRect/sprite
var timer := 0.0 var timer := 0.0
var hoverPlay := false
var hoverSelect := false
var lock := false
var blurVal := 0.0
var tintVal := 0.0
var blurred := false
var currentPage := 0
func _ready():
Globals.unlockedUpgrades = {}
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
shader.material.set_shader_parameter("lod", blurVal)
shader.material.set_shader_parameter("color_tint", Color(0.0, 0.0, 0.0, tintVal))
gun.look_at(get_global_mouse_position())
if blurred:
blurVal += (3.0 - blurVal) * 5 * delta
tintVal += (0.5 - tintVal) * 5 * delta
if currentPage == 1:
$aboutPage.modulate.a += (1.0 - $aboutPage.modulate.a) * 5 * delta
if $aboutPage.modulate.a > 0.9 and Input.is_action_just_pressed("shoot"):
blurred = false
currentPage = 0
if currentPage == 2:
$briefPage.modulate.a += (1.0 - $briefPage.modulate.a) * 5 * delta
if $briefPage.modulate.a > 0.9 and Input.is_action_just_pressed("shoot"):
blurred = false
get_tree().change_scene_to_file("res://rootnode.tscn")
return
if currentPage == 0:
$aboutPage.modulate.a += (- $aboutPage.modulate.a) * 10 * delta
blurVal += (- blurVal) * 10 * delta
tintVal += (- tintVal) * 5 * delta
timer += delta timer += delta
bg.position = get_local_mouse_position() / 200 - Vector2(16, 8) #bg.position = get_local_mouse_position() / 200 - Vector2(16, 8)
bg.position.x = fmod((timer * 16), 48) - 48
bg.position.y = fmod((timer * 16), 48) - 48
title1.position.y = 120 + sin(timer) * 16 title1.position.y = 120 + sin(timer) * 16
title2.position.y = 120 + sin(timer) * 16 title2.position.y = 120 + sin(timer) * 16
title3.position.y = 120 + sin(timer - 1) * 16
if playButton.get_global_rect().has_point(get_global_mouse_position()):
if not hoverPlay:
$clilcksfx.play()
if Input.is_action_pressed("shoot"):
blurred = true
currentPage = 2
playButton.scale += (Vector2(1.25, 1.25) - playButton.scale) * 5 * delta
playButton.modulate.g += (0.23 - playButton.modulate.g) * 5 * delta
playButton.modulate.b += (0.23 - playButton.modulate.b) * 5 * delta
hoverPlay = true
else:
playButton.scale += (Vector2(1, 1) - playButton.scale) * 5 * delta
playButton.modulate.g += (1.0 - playButton.modulate.g) * 5 * delta
playButton.modulate.b += (1.0 - playButton.modulate.b) * 5 * delta
hoverPlay = false
if aboutButton.get_global_rect().has_point(get_global_mouse_position()):
if not hoverSelect:
$clilcksfx.play()
if Input.is_action_pressed("shoot"):
blurred = true
currentPage = 1
aboutButton.scale += (Vector2(1.25, 1.25) - aboutButton.scale) * 5 * delta
aboutButton.modulate.g += (0.23 - aboutButton.modulate.g) * 5 * delta
aboutButton.modulate.b += (0.23 - aboutButton.modulate.b) * 5 * delta
hoverSelect = true
else:
aboutButton.scale += (Vector2(1, 1) - aboutButton.scale) * 5 * delta
aboutButton.modulate.g += (1.0 - aboutButton.modulate.g) * 5 * delta
aboutButton.modulate.b += (1.0 - aboutButton.modulate.b) * 5 * delta
hoverSelect = false
func _on_play_button_mouse_entered() -> void: func _on_play_button_mouse_entered() -> void:
pass # Replace with function body. pass # Replace with function body.
+33 -7
View File
@@ -39,7 +39,13 @@ var targetState = []
var dead := false var dead := false
var damage_stack := 1.0
var shotgun := 0
func heal(seconds): func heal(seconds):
damage_stack *= pow(1.1, Globals.unlockedUpgrades.get("thoseWereTheDays", 0))
newHealth = health + seconds newHealth = health + seconds
transitionStart.emit(seconds) transitionStart.emit(seconds)
#print(frameData) #print(frameData)
@@ -53,6 +59,11 @@ func _process(delta: float) -> void:
if damageScale > minDamageScale: damageScale -= delta if damageScale > minDamageScale: damageScale -= delta
damageScale = max(damageScale, minDamageScale) damageScale = max(damageScale, minDamageScale)
shotgun = Globals.unlockedUpgrades.get("shotgun", 0)
if shotgun > 0:
gunSprite.region_rect = Rect2(64, 80, 32, 16)
else:
gunSprite.region_rect = Rect2(0, 112, 16, 16)
#ticks += 1 #ticks += 1
dashRect.position.y = 31 * dashTimer / Globals.DASH_WAIT / 2 - 31.0 / 2 dashRect.position.y = 31 * dashTimer / Globals.DASH_WAIT / 2 - 31.0 / 2
@@ -69,6 +80,7 @@ func _process(delta: float) -> void:
dead = true dead = true
hide() hide()
var grayscaleVal := 1.0 var grayscaleVal := 1.0
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
@@ -138,8 +150,8 @@ func _physics_process(delta: float) -> void:
var ang = gun.rotation + gun.get_angle_to(get_global_mouse_position()) var ang = gun.rotation + gun.get_angle_to(get_global_mouse_position())
if Input.is_action_just_pressed("dash") and dashTimer == 0: if Input.is_action_just_pressed("dash") and dashTimer == 0:
dashVel = Vector2(cos(ang), sin(ang)) * Globals.DASH_LENGTH dashVel = Vector2(cos(ang), sin(ang)) * Globals.DASH_LENGTH * pow(1.5, Globals.unlockedUpgrades.get("dashMachine", 0))
dashTimer = Globals.DASH_WAIT dashTimer = Globals.DASH_WAIT * pow(0.8, Globals.unlockedUpgrades.get("dashMachine", 0))
if dashTimer > 0: dashTimer -= delta if dashTimer > 0: dashTimer -= delta
else: dashTimer = 0 else: dashTimer = 0
@@ -147,11 +159,19 @@ func _physics_process(delta: float) -> void:
if Input.is_action_just_pressed("shoot"): if Input.is_action_just_pressed("shoot"):
if not animations.is_playing(): if not animations.is_playing():
#var ang = gun.rotation + gun.get_angle_to(get_global_mouse_position()) #var ang = gun.rotation + gun.get_angle_to(get_global_mouse_position())
var instantiated = bullet.instantiate() if shotgun > 0:
instantiated.global_position = global_position for ind in range(-shotgun, shotgun + 1):
instantiated.velocity.x = cos(ang) * 700 var instantiated = bullet.instantiate()
instantiated.velocity.y = sin(ang) * 700 instantiated.global_position = global_position# + Vector2(cos(ang + ind * 0.2) * 16, sin(ang + ind * 0.3) * 16)
get_parent().add_child(instantiated) instantiated.velocity.x = cos(ang + ind * 0.2) * 700
instantiated.velocity.y = sin(ang + ind * 0.2) * 700
get_parent().add_child(instantiated)
else:
var instantiated = bullet.instantiate()
instantiated.global_position = global_position
instantiated.velocity.x = cos(ang) * 700
instantiated.velocity.y = sin(ang) * 700
get_parent().add_child(instantiated)
shootsfx.play() shootsfx.play()
@@ -197,3 +217,9 @@ func _on_hitbox_area_entered(area: Area2D) -> void:
area.queue_free() area.queue_free()
$"../hud/AnimationPlayer2".play("global/popItUp") $"../hud/AnimationPlayer2".play("global/popItUp")
if area.has_meta("kaboom"):
speedScale = 2 * pow(0.8, Globals.unlockedUpgrades.get("rollback", 0))
speedUp = 0.5
damageScale += 2 * pow(0.8, Globals.unlockedUpgrades.get("rollback", 0))
knockback = Vector2(sin(rotation) * 2000 * [0.5, -0.5].pick_random(), cos(rotation) * 2000 * [0.5, -0.5].pick_random())
+5 -4
View File
@@ -21,9 +21,8 @@ func _physics_process(delta: float) -> void:
move_and_collide(velocity * delta) move_and_collide(velocity * delta)
func _on_area_entered(area: Area2D) -> void: func _on_area_entered(area: Area2D) -> void:
print("yes") if not area.get_parent().has_meta("dontKillUrselfPlease"):
queue_free()
queue_free()
func _on_body_entered(body: Node2D) -> void: func _on_body_entered(body: Node2D) -> void:
@@ -31,7 +30,7 @@ func _on_body_entered(body: Node2D) -> void:
#body.get_node("explode").emitting = true #body.get_node("explode").emitting = true
#body.get_node("explode").reparent(body.geat_parent()) #body.get_node("explode").reparent(body.geat_parent())
body.health -= dmgtotal body.health -= dmgtotal * player.damage_stack
body.knockback = Vector2(velocity.x * 0.5, velocity.y * 0.5) body.knockback = Vector2(velocity.x * 0.5, velocity.y * 0.5)
body.hitsfx.play() body.hitsfx.play()
#AnimationPlayer.new().stop() #AnimationPlayer.new().stop()
@@ -47,4 +46,6 @@ func _on_body_entered(body: Node2D) -> void:
#player.heal(randi_range(3,5)) #player.heal(randi_range(3,5))
#body.queue_free() #body.queue_free()
print(body.name)
queue_free() queue_free()
+14 -6
View File
@@ -7,14 +7,21 @@ extends Control
@export var imDead := false @export var imDead := false
var upgradeID := "" var upgradeID := ""
#var amount := 1 var amount := 1
var timer := Globals.UPGRADE_TIMERSTART var timer = Globals.UPGRADE_TIMERSTART * pow(1.5, Globals.unlockedUpgrades.get("stopwatch", 0))
var goldUpgrade := false
func _ready():
if goldUpgrade:
progressRect.hide()
$goldrect.show()
timer = 999
func _process(delta: float) -> void: func _process(delta: float) -> void:
if imDead and not $particles.emitting: if imDead and not $particles.emitting:
queue_free() queue_free()
timer -= delta * Engine.time_scale if not goldUpgrade: timer -= delta * Engine.time_scale
texture.scale += (Vector2(1, 1) - texture.scale) * 7 * delta texture.scale += (Vector2(1, 1) - texture.scale) * 7 * delta
texture.modulate.a += (1 - texture.modulate.a) * 7 * delta texture.modulate.a += (1 - texture.modulate.a) * 7 * delta
@@ -22,13 +29,14 @@ func _process(delta: float) -> void:
progressRect.position.x += (timer / Globals.UPGRADE_TIMERSTART * 48 - progressRect.position.x) * 5 * delta progressRect.position.x += (timer / Globals.UPGRADE_TIMERSTART * 48 - progressRect.position.x) * 5 * delta
progressRect.size.x += (48 - timer / Globals.UPGRADE_TIMERSTART * 48 - progressRect.size.x) * 5 * delta progressRect.size.x += (48 - timer / Globals.UPGRADE_TIMERSTART * 48 - progressRect.size.x) * 5 * delta
amountLabel.text = str("x", Globals.unlockedUpgrades.get(upgradeID, -1)) amountLabel.text = str("x", amount)#Globals.unlockedUpgrades.get(upgradeID, -1))
if timer < 0 and not imDead: if timer < 0 and not imDead:
amount -= 1
Globals.unlockedUpgrades[upgradeID] -= 1 Globals.unlockedUpgrades[upgradeID] -= 1
timer = Globals.UPGRADE_TIMERSTART timer = Globals.UPGRADE_TIMERSTART
if Globals.unlockedUpgrades[upgradeID] == 0: if amount == 0:
Globals.unlockedUpgrades.erase(upgradeID) #Globals.unlockedUpgrades.erase(upgradeID)
imDead = true imDead = true
$texture.hide() $texture.hide()
$progress.hide() $progress.hide()
+168
View File
@@ -0,0 +1,168 @@
extends CharacterBody2D
@onready var bullet = preload("res://assets/scenes/enemyBullet.tscn")
#@onready var bullet = preload("res://assets/scenes/enemyBullet.tscn")
@onready var explosionSFX = preload("res://assets/scenes/explosionsfx.tscn")
@onready var explosion = preload("res://assets/scenes/explosion.tscn")
@onready var player = $"../../Player"
@onready var poly = $"Polygon2D"
@onready var animations = $AnimationPlayer
@onready var healthBar = $health
@onready var healthBg = $ColorRect
@onready var nav_agent: NavigationAgent2D = $NavigationAgent2D
@onready var ray:= $RayCast2D
@onready var hitsfx = $hitsfx
@onready var shootsfx = $shootsfx
const RANGE = 400.0
var curShootVal := 1.0
var lock := true
@export var shootDelay := 1.0
var health := 100.0
var maxHealth := 100.0
var wave := 1
var flash := 0.0
var knockback := Vector2.ZERO
var frameData = {}
var transitioning := false
var transitionState = [false, false, false]
var targetState = []
var ticks = 0
var tickToDel = 0
var boomTimer := 0.0
func moveback(seconds):
if ticks < 5: return
print("lets go")
targetState = frameData[max(tickToDel, ticks - (int(floor(seconds)) * 20))]
transitioning = true
func _ready():
animations.play("spawn")
await get_tree().create_timer(0.7).timeout
lock = false
call_deferred("actor_setup")
func actor_setup() -> void:
await get_tree().physics_frame
if player:
nav_agent.target_position = player.global_position
func _process(delta: float) -> void:
healthBar.size.x += ((health / maxHealth) * healthBg.size.x - healthBar.size.x) * 5 * delta
if health < 0:
if player:
if Globals.unlockedUpgrades.get("firstAidKit", 0) > 0:
player.heal(randf_range(3,5))
else:
player.heal(randf_range(2,3))
get_node("explode").emitting = true
get_node("explode").unlock = true
get_node("explode").reparent(get_parent().get_parent())
var exlopsion = explosionSFX.instantiate()
get_parent().get_parent().add_child(exlopsion)
queue_free()
func _physics_process(delta: float) -> void:
if lock:
return
if transitioning:
position += (targetState[0] - position) * 5 * delta / Engine.time_scale
rotation += (targetState[1] - rotation) * 5 * delta / Engine.time_scale
velocity += (targetState[2] - velocity) * 5 * delta / Engine.time_scale
#
#position = position.round()
#rotation = round(rotation)
#velocity = velocity.round()
#print((position - targetState[0]).length(), " ", abs(rotation - targetState[1]), " ", (velocity - targetState[2]).length())
if (position - targetState[0]).length() < 2:
position = targetState[0]
transitionState[0] = true
if abs(rotation - targetState[1]) < 0.05:
rotation = targetState[1]
transitionState[1] = true
if (velocity - targetState[2]).length() < 2:
velocity = targetState[2]
transitionState[2] = true
if transitionState.count(true) == len(transitionState):
transitioning = false
transitionState = [false, false, false]
targetState = []
return
var nextpos := nav_agent.get_next_path_position()
ray.rotation += ray.get_angle_to(player.global_position)
var distance = global_position.distance_to(player.global_position)
ray.target_position.x = min(distance, 400)
if not ray.is_colliding():
poly.rotation += poly.get_angle_to(player.global_position) * 5 * delta
velocity.x += (cos(poly.rotation) * 200 - velocity.x) * 5 * delta
velocity.y += (sin(poly.rotation) * 200 - velocity.y) * 5 * delta
else:
var newvel := (nextpos - global_position).normalized() * 200
poly.rotation += poly.get_angle_to(nextpos) * 5 * delta
velocity = newvel
#velocity += (newvel - velocity) * 5 * delta
#velocity.x += (cos(rotation) * 200 - velocity.x) * 5 * delta
#velocity.y += (sin(rotation) * 200 - velocity.y) * 5 * delta
knockback += -knockback * 5 * delta
boomTimer += delta
$Polygon2D.modulate.v = boomTimer / 5.0
if boomTimer > 5:
var instantiated = explosion.instantiate()
shootsfx.play()
instantiated.global_position = global_position
get_parent().get_parent().add_child(instantiated)
queue_free()
move_and_collide((velocity + knockback) * delta)
func _on_new_path() -> void:
if player:
nav_agent.target_position = player.global_position - Vector2(16, 16)
func _on_snappie_timeout() -> void:
frameData[ticks] = [position, rotation, velocity]
ticks += 1
if ticks > 240:
frameData.erase(tickToDel)
tickToDel += 1
+1
View File
@@ -0,0 +1 @@
uid://b4mt2p1i8cdix
+12
View File
@@ -0,0 +1,12 @@
shader_type canvas_item;
// Allows you to sample the pixels rendered behind this node
uniform sampler2D screen_texture : hint_screen_texture, filter_linear_mipmap;
uniform float lod : hint_range(0.0, 5.0) = 2.0;
uniform vec4 color_tint : source_color = vec4(1.0, 1.0, 1.0, 0.1);
void fragment() {
vec4 blurred_screen = textureLod(screen_texture, SCREEN_UV, lod);
COLOR = mix(blurred_screen, vec4(color_tint.rgb, 1.0), color_tint.a);
}
+1
View File
@@ -0,0 +1 @@
uid://b5ke0njvd8rj7
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cnx8twenag0nx"
path="res://.godot/imported/click.wav-6af01c357158287f6c248cf59f42edea.sample"
[deps]
source_file="res://assets/sounds/click.wav"
dest_files=["res://.godot/imported/click.wav-6af01c357158287f6c248cf59f42edea.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cb4tk7lhsuwoj"
path="res://.godot/imported/kaboom.wav-86b74bcd4c752d481f1906ef536b9a41.sample"
[deps]
source_file="res://assets/sounds/kaboom.wav"
dest_files=["res://.godot/imported/kaboom.wav-86b74bcd4c752d481f1906ef536b9a41.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://c3gxbppnkybp6"
path="res://.godot/imported/select.wav-5c513b8003f93446e91f1963597d7cd6.sample"
[deps]
source_file="res://assets/sounds/select.wav"
dest_files=["res://.godot/imported/select.wav-5c513b8003f93446e91f1963597d7cd6.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
+171
View File
@@ -0,0 +1,171 @@
[runnable_presets]
"Windows Desktop"="Windows Desktop"
Web="Web"
Linux="Linux"
[preset.0]
name="Windows Desktop"
platform="Windows Desktop"
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../BUGIHSFGIGISH/windows/countdownMayhem.exe"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=0
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
shader_baker/enabled=false
binary_format/architecture="x86_64"
codesign/enable=false
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PackedStringArray()
application/modify_resources=true
application/icon=""
application/console_wrapper_icon=""
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description=""
application/copyright=""
application/trademarks=""
application/export_angle=0
application/export_d3d12=0
application/d3d12_agility_sdk_multiarch=true
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
Start-ScheduledTask -TaskName godot_remote_debug
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
Remove-Item -Recurse -Force '{temp_dir}'"
[preset.1]
name="Web"
platform="Web"
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../BUGIHSFGIGISH/web/index.html"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
variant/thread_support=true
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell=""
html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/ensure_cross_origin_isolation_headers=true
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=0
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color(0, 0, 0, 1)
threads/emscripten_pool_size=8
threads/godot_pool_size=4
[preset.2]
name="Linux"
platform="Linux"
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../BUGIHSFGIGISH/linux/countdownMayhem.x86_64"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.2.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=0
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
shader_baker/enabled=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
pkill -x -f \"{temp_dir}/{exe_name} {cmd_args}\"
rm -rf \"{temp_dir}\""
+4
View File
@@ -0,0 +1,4 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="48" height="48" fill="#141414"/>
<path d="M14.8076 8.07831L39.9217 14.8076L33.1924 39.9217L8.07831 33.1924L14.8076 8.07831Z" fill="#FF0000"/>
</svg>

After

Width:  |  Height:  |  Size: 258 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://l8sjke6mmq3o"
path="res://.godot/imported/logo.svg-8d8cf086b974db23ad31f8a2f3ea7d0f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://logo.svg"
dest_files=["res://.godot/imported/logo.svg-8d8cf086b974db23ad31f8a2f3ea7d0f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+3 -2
View File
@@ -11,12 +11,12 @@ config_version=5
[application] [application]
config/name="countdown mayhem" config/name="countdown mayhem"
run/main_scene="uid://beviqs1f22d1c" run/main_scene="uid://ff2uc6ruj6q8"
config/features=PackedStringArray("4.7", "Forward Plus") config/features=PackedStringArray("4.7", "Forward Plus")
boot_splash/bg_color=Color(0, 0, 0, 1) boot_splash/bg_color=Color(0, 0, 0, 1)
boot_splash/stretch_mode=0 boot_splash/stretch_mode=0
boot_splash/image="uid://dbhwfxaqgogb3" boot_splash/image="uid://dbhwfxaqgogb3"
config/icon="res://icon.svg" config/icon="uid://l8sjke6mmq3o"
[autoload] [autoload]
@@ -26,6 +26,7 @@ Globals="*uid://ce6cecb4wunfi"
window/size/viewport_width=1200 window/size/viewport_width=1200
window/size/viewport_height=800 window/size/viewport_height=800
window/size/mode=2
window/stretch/mode="canvas_items" window/stretch/mode="canvas_items"
[global_group] [global_group]
+59 -10
View File
@@ -8,6 +8,7 @@ extends Node2D
@onready var healthLabel = $hud/healthlabel @onready var healthLabel = $hud/healthlabel
@onready var slowdown = $hud/slowdown @onready var slowdown = $hud/slowdown
@onready var upgradesHUD = $hud/upgrades @onready var upgradesHUD = $hud/upgrades
@onready var goldupgradesHUD = $hud/goldupgrades
@onready var ff = $hud/ff @onready var ff = $hud/ff
@onready var beep = $hud/beep @onready var beep = $hud/beep
@onready var beep2 = $hud/beep2 @onready var beep2 = $hud/beep2
@@ -22,6 +23,7 @@ extends Node2D
# #
@onready var shooter = preload("res://assets/scenes/shooter.tscn") @onready var shooter = preload("res://assets/scenes/shooter.tscn")
@onready var bomber = preload("res://assets/scenes/walkingBomb.tscn")
@onready var upgradeUI = preload("res://assets/scenes/upgradeUI.tscn") @onready var upgradeUI = preload("res://assets/scenes/upgradeUI.tscn")
var healthLast = 0 var healthLast = 0
@@ -59,15 +61,43 @@ func wfc():
pass pass
func appendUpgrade(upgradeID : String): func appendUpgrade(upgradeID : String):
print(upgradeUnlocksPerTick)
if randi_range(1,10) == 1:
# gold upgrade
var upgradeIDE = Globals.availableGoldUpgrade.pick_random()
Globals.unlockedUpgrades[upgradeIDE] = Globals.unlockedUpgrades.get(upgradeIDE, 0) + 1
var instantiated = upgradeUI.instantiate()
instantiated.get_node("texture").texture = load(str("res://assets/images/upgrades/", upgradeIDE, ".png"))
#instantiated.timer = Globals.UPGRADE_TIMERSTART
instantiated.goldUpgrade = true
instantiated.upgradeID = upgradeIDE
#instantiated.get_node("animations").play("init")
goldupgradesHUD.add_child(instantiated)
$newupgrade/title.text = "[GOLD] " + upgradeIDE.capitalize().to_lower()
$newupgrade/icon.texture = load(str("res://assets/images/upgrades/", upgradeID, ".png"))
if Globals.goldUpgradeDescriptionOverrides.get(upgradeIDE, "") == "":
$newupgrade/text.text = Globals.upgradeDescriptions[upgradeIDE]
else:
$newupgrade/text.text = Globals.goldUpgradeDescriptionOverrides[upgradeIDE]
$newupgrade/animations.stop()
$newupgrade/animations.play("newUpgrade")
return
#print(upgradeID)
Globals.unlockedUpgrades[upgradeID] = Globals.unlockedUpgrades.get(upgradeID, 0) + 1 Globals.unlockedUpgrades[upgradeID] = Globals.unlockedUpgrades.get(upgradeID, 0) + 1
upgradeUnlocksPerTick[ticks].append(upgradeID) #upgradeUnlocksPerTick[ticks].append(upgradeID)
#TextureRect.new().texture.resource_path #TextureRect.new().texture.resource_path
var modified := false var modified := false
for icon in upgradesHUD.get_children(): for icon in upgradesHUD.get_children():
if icon.upgradeID == upgradeID: if icon.upgradeID == upgradeID:
#icon.amount += 1 icon.amount += 1
modified = true modified = true
break break
@@ -87,7 +117,9 @@ func appendUpgrade(upgradeID : String):
$newupgrade/animations.play("newUpgrade") $newupgrade/animations.play("newUpgrade")
func _ready(): func _ready():
#appendUpgrade("rollback")
#appendUpgrade("stopwatch")
#appendUpgrade("shotgun")
for i in range(11): for i in range(11):
patterns.append(tilemap.tile_set.get_pattern(i)) patterns.append(tilemap.tile_set.get_pattern(i))
@@ -111,6 +143,17 @@ var timer := 0.0
func _process(delta: float) -> void: func _process(delta: float) -> void:
waveTimer -= delta waveTimer -= delta
if player.health <= 0:
Engine.time_scale = 1
$hud/deathrect.modulate.a += (1 - $hud/deathrect.modulate.a) * delta
if Input.is_action_just_pressed("shoot"):
get_tree().change_scene_to_file("res://assets/scenes/mainMenu.tscn")
return
#appendUpgrade("shotgun")
if not baked: if not baked:
timer += delta timer += delta
$bakewait/Label.text = "baking collisions" $bakewait/Label.text = "baking collisions"
@@ -165,7 +208,6 @@ func _process(delta: float) -> void:
slowdown.material.set_shader_parameter('saturation', player.grayscaleVal) slowdown.material.set_shader_parameter('saturation', player.grayscaleVal)
#a #a
func _on_navigation_bake_finished() -> void: func _on_navigation_bake_finished() -> void:
$bakewait.queue_free() $bakewait.queue_free()
baked = true baked = true
@@ -174,21 +216,28 @@ func _on_navigation_bake_finished() -> void:
func _on_spawntimer_timeout() -> void: func _on_spawntimer_timeout() -> void:
var newEnemy = shooter.instantiate() var newEnemy = shooter.instantiate()
newEnemy.health = 100 * pow(currentWave, 0.7) newEnemy.health = 80 * pow(currentWave, 0.7)
newEnemy.maxHealth = 100 * pow(currentWave, 0.7) newEnemy.maxHealth = 80 * pow(currentWave, 0.7)
newEnemy.wave = currentWave newEnemy.wave = currentWave
newEnemy.global_position = player.global_position + Vector2(randi_range(-500, 500), randi_range(-100, 100)) newEnemy.global_position = player.global_position + Vector2(randi_range(-500, 500), randi_range(-100, 100))
get_node("enemies").add_child(newEnemy) get_node("enemies").add_child(newEnemy)
if currentWave >= 3 and randi_range(1, 5) == 1:
var thebomba = bomber.instantiate()
thebomba.health = 200 * pow(currentWave, 0.7)
thebomba.maxHealth = 200 * pow(currentWave, 0.7)
thebomba.wave = currentWave
thebomba.global_position = player.global_position + Vector2(randi_range(-500, 500), randi_range(-100, 100))
get_node("enemies").add_child(thebomba)
func _on_player_transition_start(seconds: Variant) -> void: func _on_player_transition_start(seconds: Variant) -> void:
for enemy in get_node("enemies").get_children(): for enemy in get_node("enemies").get_children():
enemy.moveback(max(seconds, enemy.ticks / 20)) enemy.moveback(max(seconds, enemy.ticks / 20))
print("moveback1") print("moveback1")
print(upgradeUnlocksPerTick, "\n", max(ticks - int(seconds) - 1,tickToDel)) #print(upgradeUnlocksPerTick, "\n", max(ticks - int(seconds) - 1,tickToDel))
for upgrade in upgradeUnlocksPerTick[max(ticks - int(seconds) - 1,tickToDel)]: #for upgrade in upgradeUnlocksPerTick[max(ticks - int(seconds) - 1,tickToDel)]:
appendUpgrade(upgrade) #appendUpgrade(upgrade)
func _on_upgradetick_timeout() -> void: func _on_upgradetick_timeout() -> void:
+75 -8
View File
@@ -11,6 +11,7 @@
[ext_resource type="AudioStream" uid="uid://cxub0psx0jhru" path="res://assets/sounds/powerUp.wav" id="9_03kpu"] [ext_resource type="AudioStream" uid="uid://cxub0psx0jhru" path="res://assets/sounds/powerUp.wav" id="9_03kpu"]
[ext_resource type="FontFile" uid="uid://ha2vel05pr1v" path="res://assets/fonts/AnonymousPro-Bold.ttf" id="10_hw0nj"] [ext_resource type="FontFile" uid="uid://ha2vel05pr1v" path="res://assets/fonts/AnonymousPro-Bold.ttf" id="10_hw0nj"]
[ext_resource type="Texture2D" uid="uid://pb14cjjw7aa8" path="res://assets/images/upgrades/shotgun.png" id="10_ptsbx"] [ext_resource type="Texture2D" uid="uid://pb14cjjw7aa8" path="res://assets/images/upgrades/shotgun.png" id="10_ptsbx"]
[ext_resource type="PackedScene" uid="uid://b8gstr4nrohwu" path="res://assets/scenes/walkingBomb.tscn" id="12_hx4w7"]
[sub_resource type="NavigationPolygon" id="NavigationPolygon_xyegg"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_xyegg"]
outlines = Array[PackedVector2Array]([PackedVector2Array(-1567, -1568, 1601, -1567, 1600, 1600, -1570, 1601)]) outlines = Array[PackedVector2Array]([PackedVector2Array(-1567, -1568, 1601, -1567, 1600, 1600, -1570, 1601)])
@@ -216,6 +217,15 @@ _data = {
&"popItUp": SubResource("Animation_d1xn1") &"popItUp": SubResource("Animation_d1xn1")
} }
[sub_resource type="LabelSettings" id="LabelSettings_8sg6u"]
font = ExtResource("10_hw0nj")
font_size = 48
font_color = Color(1, 0.2509804, 0.2509804, 1)
[sub_resource type="LabelSettings" id="LabelSettings_hx4w7"]
font = ExtResource("10_hw0nj")
font_size = 32
[sub_resource type="LabelSettings" id="LabelSettings_xyegg"] [sub_resource type="LabelSettings" id="LabelSettings_xyegg"]
[sub_resource type="Environment" id="Environment_xyegg"] [sub_resource type="Environment" id="Environment_xyegg"]
@@ -339,13 +349,16 @@ tile_set = SubResource("TileSet_xyegg")
[node name="Player" parent="." unique_id=1190467346 instance=ExtResource("1_btclk")] [node name="Player" parent="." unique_id=1190467346 instance=ExtResource("1_btclk")]
[node name="Pickupable" parent="." unique_id=448556835 instance=ExtResource("8_d1xn1")] [node name="Pickupable" parent="." unique_id=448556835 instance=ExtResource("8_d1xn1")]
position = Vector2(95, -501) position = Vector2(100000, -501)
collision_priority = 100.0 collision_priority = 100.0
[node name="enemies" type="Node2D" parent="." unique_id=1230721986] [node name="enemies" type="Node2D" parent="." unique_id=1230721986]
[node name="Enemy" parent="enemies" unique_id=1421049985 instance=ExtResource("2_46mya")] [node name="Enemy" parent="enemies" unique_id=1421049985 instance=ExtResource("2_46mya")]
position = Vector2(-1, 133) position = Vector2(-1, 100000)
[node name="Enemy2" parent="enemies" unique_id=791204310 instance=ExtResource("12_hx4w7")]
position = Vector2(1, 100000)
[node name="hud" type="CanvasLayer" parent="." unique_id=1713327920] [node name="hud" type="CanvasLayer" parent="." unique_id=1713327920]
@@ -490,12 +503,13 @@ offset_transform_enabled = true
theme_override_constants/separation = 56 theme_override_constants/separation = 56
[node name="goldupgrades" type="VBoxContainer" parent="hud" unique_id=640079106] [node name="goldupgrades" type="VBoxContainer" parent="hud" unique_id=640079106]
anchors_preset = 9 anchors_preset = 11
anchor_left = 1.0
anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 64.0 offset_left = -56.0
offset_top = 8.0 offset_right = -8.0
offset_right = 112.0 grow_horizontal = 0
offset_bottom = -8.0
grow_vertical = 2 grow_vertical = 2
offset_transform_enabled = true offset_transform_enabled = true
theme_override_constants/separation = 56 theme_override_constants/separation = 56
@@ -511,7 +525,7 @@ offset_bottom = 71.0
grow_horizontal = 2 grow_horizontal = 2
scale = Vector2(1e-05, 1e-05) scale = Vector2(1e-05, 1e-05)
pivot_offset_ratio = Vector2(0.5, 0.5) pivot_offset_ratio = Vector2(0.5, 0.5)
text = "+3 seconds ig" text = "+3s"
label_settings = SubResource("LabelSettings_ptsbx") label_settings = SubResource("LabelSettings_ptsbx")
[node name="AnimationPlayer2" type="AnimationPlayer" parent="hud" unique_id=454507892] [node name="AnimationPlayer2" type="AnimationPlayer" parent="hud" unique_id=454507892]
@@ -528,6 +542,44 @@ volume_db = -10.0
max_distance = 10000.0 max_distance = 10000.0
attenuation = 1e-05 attenuation = 1e-05
[node name="deathrect" type="ColorRect" parent="hud" unique_id=394171848]
modulate = Color(1, 1, 1, 0)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="Label" type="Label" parent="hud/deathrect" unique_id=1703912318]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -118.0
offset_top = 288.0
offset_right = 118.0
offset_bottom = 337.0
grow_horizontal = 2
text = "you died."
label_settings = SubResource("LabelSettings_8sg6u")
[node name="Label2" type="Label" parent="hud/deathrect" unique_id=1652205310]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -331.0
offset_top = 384.0
offset_right = 331.0
offset_bottom = 489.0
grow_horizontal = 2
text = "well thats unfortunate.
click anywhere to go to the main menu."
label_settings = SubResource("LabelSettings_hx4w7")
horizontal_alignment = 1
[node name="bakewait" type="CanvasLayer" parent="." unique_id=1005630157] [node name="bakewait" type="CanvasLayer" parent="." unique_id=1005630157]
visible = false visible = false
@@ -603,6 +655,21 @@ text = "new upgrade!"
label_settings = SubResource("LabelSettings_pymst") label_settings = SubResource("LabelSettings_pymst")
horizontal_alignment = 1 horizontal_alignment = 1
[node name="goldrect" type="ColorRect" parent="newupgrade" unique_id=1803253903]
visible = false
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -24.0
offset_top = -24.0
offset_right = 24.0
offset_bottom = 24.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.8, 0.6, 0, 1)
[node name="icon" type="TextureRect" parent="newupgrade" unique_id=1212657862] [node name="icon" type="TextureRect" parent="newupgrade" unique_id=1212657862]
anchors_preset = 8 anchors_preset = 8
anchor_left = 0.5 anchor_left = 0.5