1
0

initial commit

This commit is contained in:
2026-07-26 01:01:08 +02:00
commit 787cefefd5
86 changed files with 3195 additions and 0 deletions
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ds15hhsmjp3wc"
path="res://.godot/imported/stopwatch.png-b73c158978363763d92060f75a79b335.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/collectables/stopwatch.png"
dest_files=["res://.godot/imported/stopwatch.png-b73c158978363763d92060f75a79b335.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
+8
View File
@@ -0,0 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="8" y="10" width="16" height="16" rx="8" stroke="black" stroke-width="2"/>
<rect x="13" y="5" width="6" height="2" rx="1" fill="black"/>
<rect x="15" y="7" width="2" height="3" fill="black" fill-opacity="0.5"/>
<rect x="15" y="12" width="2" height="7" rx="1" fill="black"/>
<path d="M25.5 6C26.0523 6 26.5 6.44772 26.5 7V8.5H28C28.5523 8.5 29 8.94772 29 9.5C29 10.0523 28.5523 10.5 28 10.5H26.5V12C26.5 12.5523 26.0523 13 25.5 13C24.9477 13 24.5 12.5523 24.5 12V10.5H23C22.4477 10.5 22 10.0523 22 9.5C22 8.94772 22.4477 8.5 23 8.5H24.5V7C24.5 6.44772 24.9477 6 25.5 6Z" fill="black" fill-opacity="0.5"/>
<rect x="18.9623" y="15.135" width="2" height="4.99976" rx="1" transform="rotate(60 18.9623 15.135)" fill="black" fill-opacity="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 850 B

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://desgj7lpexej7"
path="res://.godot/imported/stopwatch.svg-d39e3bbf3360b8ba0da7f6682c867797.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/collectables/stopwatch.svg"
dest_files=["res://.godot/imported/stopwatch.svg-d39e3bbf3360b8ba0da7f6682c867797.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
+11
View File
@@ -0,0 +1,11 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_16_2)">
<path d="M0 0L24 24L0 48V0Z" fill="white"/>
<path d="M24 0L48 24L24 48V0Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_16_2">
<rect width="48" height="48" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 329 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://jscv4dmprutv"
path="res://.godot/imported/fastforward.svg-776e438727ff9eb49cd6794099a316cc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/fastforward.svg"
dest_files=["res://.godot/imported/fastforward.svg-776e438727ff9eb49cd6794099a316cc.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbhwfxaqgogb3"
path="res://.godot/imported/gmtk-big.png-e7f9d1fe32a9dff7a88ad795779254e5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/gmtk-big.png"
dest_files=["res://.godot/imported/gmtk-big.png-e7f9d1fe32a9dff7a88ad795779254e5.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: 33 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bt1fcckct5jax"
path="res://.godot/imported/gmtk.png-4143279bc1d6229b2e928421b7571d76.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/gmtk.png"
dest_files=["res://.godot/imported/gmtk.png-4143279bc1d6229b2e928421b7571d76.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: 12 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cs35h4es4e6p"
path="res://.godot/imported/gun1.png-bcc67654ab25c4fcc7aa1feec09a7a23.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/gun1.png"
dest_files=["res://.godot/imported/gun1.png-bcc67654ab25c4fcc7aa1feec09a7a23.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: 177 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3o7a2w3qyl4o"
path="res://.godot/imported/tile.png-4df97e3230f905e3df311a6634fd05fa.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/tile.png"
dest_files=["res://.godot/imported/tile.png-4df97e3230f905e3df311a6634fd05fa.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: 296 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://chofj1gn6jmyo"
path="res://.godot/imported/dashMachine.png-4142366c59d759e31ffe1366516e3ec0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/dashMachine.png"
dest_files=["res://.godot/imported/dashMachine.png-4142366c59d759e31ffe1366516e3ec0.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.0 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bigxhnmrmsg45"
path="res://.godot/imported/dumbbell.png-98fb91e608348a61cf93c5a7ae31c0f9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/dumbbell.png"
dest_files=["res://.godot/imported/dumbbell.png-98fb91e608348a61cf93c5a7ae31c0f9.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: 570 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cos44i12og7um"
path="res://.godot/imported/fasterFaster.png-298b6d01ba61ae4d886203968f54bd8f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/fasterFaster.png"
dest_files=["res://.godot/imported/fasterFaster.png-298b6d01ba61ae4d886203968f54bd8f.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: 249 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtagaj8hyg6jd"
path="res://.godot/imported/firstAidKit.png-86f212f827658f2a63efa6133d4fd802.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/firstAidKit.png"
dest_files=["res://.godot/imported/firstAidKit.png-86f212f827658f2a63efa6133d4fd802.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: 369 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3ltcwyo4wyml"
path="res://.godot/imported/rollback.png-fdeb88a75bb46b60d2a7e4f7908d1408.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/rollback.png"
dest_files=["res://.godot/imported/rollback.png-fdeb88a75bb46b60d2a7e4f7908d1408.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.2 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://pb14cjjw7aa8"
path="res://.godot/imported/shotgun.png-576d03dc02854eb9a3e096114794bd2d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/shotgun.png"
dest_files=["res://.godot/imported/shotgun.png-576d03dc02854eb9a3e096114794bd2d.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: 784 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bo1pub5cp7i6"
path="res://.godot/imported/speedMayhem.png-f15c5bd3653d92af6a0b24ee98d2a75e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/speedMayhem.png"
dest_files=["res://.godot/imported/speedMayhem.png-f15c5bd3653d92af6a0b24ee98d2a75e.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: 285 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dx77bwsgen5o3"
path="res://.godot/imported/thoseWereTheDays.png-d1a0fcf468b867a6098b247d6eb71447.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/upgrades/thoseWereTheDays.png"
dest_files=["res://.godot/imported/thoseWereTheDays.png-d1a0fcf468b867a6098b247d6eb71447.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
+33
View File
@@ -0,0 +1,33 @@
[gd_scene format=3 uid="uid://d1ta1nxbedqad"]
[ext_resource type="Script" uid="uid://ca8an62xpl0e4" path="res://assets/scripts/disposableParticles.gd" id="1_16fqk"]
[sub_resource type="Curve" id="Curve_xyegg"]
_data = [Vector2(0.49822062, 0.99999994), 0.0, 0.0, 0, 0, Vector2(0.99644125, 0), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="Gradient" id="Gradient_pymst"]
offsets = PackedFloat32Array(0, 0.68235296, 0.9882353)
colors = PackedColorArray(1, 1, 1, 1, 0.6, 0.6, 0.6, 1, 1, 1, 1, 0)
[node name="Blood" type="CPUParticles2D" unique_id=1387158673]
z_index = -1
emitting = false
amount = 10
lifetime = 5.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 = -50.0
linear_accel_max = -20.0
angle_min = -180.0
angle_max = 180.0
scale_amount_min = 4.0
scale_amount_max = 6.0
scale_amount_curve = SubResource("Curve_xyegg")
color = Color(0.89, 0, 0, 1)
color_ramp = SubResource("Gradient_pymst")
script = ExtResource("1_16fqk")
+56
View File
@@ -0,0 +1,56 @@
[gd_scene format=3 uid="uid://crv0gs7xtegi4"]
[ext_resource type="Script" uid="uid://iwxi6s8i6j81" path="res://assets/scripts/enemy.gd" id="1_5q6ol"]
[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)]
}
[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(0.5, 1.2), Vector2(1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_55kjn"]
_data = {
&"RESET": SubResource("Animation_kvq5h"),
&"shoot": SubResource("Animation_kbpvo")
}
[node name="Enemy" type="CharacterBody2D" unique_id=1421049985]
script = ExtResource("1_5q6ol")
[node name="Polygon2D" type="Polygon2D" parent="." unique_id=274914633]
position = Vector2(-13, 0)
rotation = 1.5707964
color = Color(0, 0.3333335, 1, 1)
polygon = PackedVector2Array(-15, 0, 15, 0, 0, -30)
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="." unique_id=1346650607]
visible = false
polygon = PackedVector2Array(-16, 15, -16, -15, 14, 0)
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1072188506]
libraries/ = SubResource("AnimationLibrary_55kjn")
+30
View File
@@ -0,0 +1,30 @@
[gd_scene format=3 uid="uid://etjisg8welsn"]
[ext_resource type="Script" uid="uid://bemc80xgvtkd4" path="res://assets/scripts/enemy_bullet.gd" id="1_ptxui"]
[sub_resource type="SphereMesh" id="SphereMesh_xyegg"]
radius = 5.0
height = 10.0
[sub_resource type="CircleShape2D" id="CircleShape2D_c3msa"]
radius = 5.0
[node name="EnemyBullet" type="CharacterBody2D" unique_id=822797430]
z_index = 1
collision_layer = 2
collision_mask = 2
script = ExtResource("1_ptxui")
[node name="MeshInstance2D" type="MeshInstance2D" parent="." unique_id=903508644]
modulate = Color(0.6156863, 0, 1, 1)
mesh = SubResource("SphereMesh_xyegg")
[node name="hitme" type="Area2D" parent="." unique_id=194049910]
collision_layer = 2
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="hitme" unique_id=711740605]
shape = SubResource("CircleShape2D_c3msa")
[connection signal="area_entered" from="hitme" to="." method="_on_area_entered"]
[connection signal="body_entered" from="hitme" to="." method="_on_body_entered"]
+9
View File
@@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://bjrqlhik55h8o"]
[ext_resource type="AudioStream" uid="uid://b7gupw3d7sfho" path="res://assets/sounds/explosion.wav" id="1_7lrd8"]
[ext_resource type="Script" uid="uid://ctjyxuafayafk" path="res://assets/scripts/explosionsfx.gd" id="2_458cp"]
[node name="ExplosionSFX" type="AudioStreamPlayer2D" unique_id=427221510]
stream = ExtResource("1_7lrd8")
autoplay = true
script = ExtResource("2_458cp")
+39
View File
@@ -0,0 +1,39 @@
[gd_scene format=3 uid="uid://dfwhpkgf77e5y"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xyegg"]
size = Vector2(30, 30)
[sub_resource type="BoxMesh" id="BoxMesh_xyegg"]
size = Vector3(24, 24, 1)
[sub_resource type="Curve" id="Curve_xyegg"]
_data = [Vector2(0.41992885, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.038095236), 0.0, 0.0, 0, 0]
point_count = 2
[node name="Pickupable" type="Area2D" unique_id=448556835]
collision_layer = 2
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=2069397373]
shape = SubResource("RectangleShape2D_xyegg")
[node name="mainmesh" type="MeshInstance2D" parent="." unique_id=1578928066]
modulate = Color(4.415934, 4.415934, 4.415934, 1)
mesh = SubResource("BoxMesh_xyegg")
[node name="particles" type="CPUParticles2D" parent="." unique_id=871258801]
z_index = -1
emitting = false
amount = 30
lifetime = 10.0
one_shot = true
explosiveness = 1.0
spread = 180.0
gravity = Vector2(0, 0)
initial_velocity_min = 50.0
initial_velocity_max = 100.0
linear_accel_min = -100.0
linear_accel_max = -100.0
scale_amount_min = 3.0
scale_amount_max = 6.0
scale_amount_curve = SubResource("Curve_xyegg")
+22
View File
@@ -0,0 +1,22 @@
[gd_scene format=3 uid="uid://bqla58648mj8x"]
[ext_resource type="PackedScene" uid="uid://dfwhpkgf77e5y" path="res://assets/scenes/pickupable.tscn" id="1_paivl"]
[ext_resource type="Texture2D" uid="uid://ds15hhsmjp3wc" path="res://assets/images/collectables/stopwatch.png" id="2_g8182"]
[ext_resource type="Texture2D" uid="uid://desgj7lpexej7" path="res://assets/images/collectables/stopwatch.svg" id="3_fb1sx"]
[node name="Pickupable" unique_id=448556835 instance=ExtResource("1_paivl")]
metadata/pickup = 1
[node name="mainmesh" parent="." index="1" unique_id=1578928066]
modulate = Color(0.53800005, 1, 0.16000003, 1)
[node name="Stopwatch" type="Sprite2D" parent="." index="2" unique_id=1633947504]
visible = false
texture = ExtResource("2_g8182")
[node name="particles" parent="." index="3" unique_id=871258801]
color = Color(0.5372549, 1, 0.16078432, 1)
[node name="Stopwatch2" type="Sprite2D" parent="." index="4" unique_id=2549464]
scale = Vector2(0.75, 0.75)
texture = ExtResource("3_fb1sx")
+175
View File
@@ -0,0 +1,175 @@
[gd_scene format=3 uid="uid://bwlwbahelcq52"]
[ext_resource type="Script" uid="uid://dbofvk7fso8po" path="res://assets/scripts/player.gd" id="1_rwm0n"]
[ext_resource type="Texture2D" uid="uid://cs35h4es4e6p" path="res://assets/images/gun1.png" id="2_s027a"]
[ext_resource type="Texture2D" uid="uid://c3o7a2w3qyl4o" path="res://assets/images/tile.png" id="3_14505"]
[ext_resource type="AudioStream" uid="uid://de4sr2qpjr1w2" path="res://assets/sounds/shoot.wav" id="4_4wcc8"]
[ext_resource type="AudioStream" uid="uid://5b7eonllfufp" path="res://assets/sounds/hitHurt.wav" id="5_8sknh"]
[ext_resource type="Script" uid="uid://ca8an62xpl0e4" path="res://assets/scripts/disposableParticles.gd" id="6_0gfpk"]
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_0gfpk"]
light_mode = 1
[sub_resource type="BoxMesh" id="BoxMesh_xyegg"]
size = Vector3(31, 31, 1)
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_14505"]
light_mode = 1
[sub_resource type="Animation" id="Animation_s027a"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("gun: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)]
}
[sub_resource type="Animation" id="Animation_14505"]
resource_name = "shoot"
length = 0.4
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("gun:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.4),
"transitions": PackedFloat32Array(0.13869628, 2.0000021, 0.7320437),
"update": 0,
"values": [Vector2(1, 1), Vector2(1.2, 0.5), Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_4wcc8"]
resource_name = "shoot_flip"
length = 0.4
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("gun:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.4),
"transitions": PackedFloat32Array(0.13869628, 2.0000021, 0.7320437),
"update": 0,
"values": [Vector2(1, -1), Vector2(1.2, -0.5), Vector2(1, -1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_4wcc8"]
_data = {
&"RESET": SubResource("Animation_s027a"),
&"shoot": SubResource("Animation_14505"),
&"shoot_flip": SubResource("Animation_4wcc8")
}
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xyegg"]
size = Vector2(31, 31)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pymst"]
size = Vector2(24, 24)
[sub_resource type="Curve" id="Curve_14505"]
_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_4wcc8"]
offsets = PackedFloat32Array(0.8745098, 1)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[node name="Player" type="CharacterBody2D" unique_id=1190467346]
script = ExtResource("1_rwm0n")
[node name="ColorRect" type="ColorRect" parent="." unique_id=1343075480]
visible = false
offset_left = -16.0
offset_top = -16.0
offset_right = 15.0
offset_bottom = 15.0
color = Color(1, 0, 0, 1)
[node name="Polygon2D" type="Polygon2D" parent="." unique_id=982630085]
material = SubResource("CanvasItemMaterial_0gfpk")
position = Vector2(-0.5, -0.5)
color = Color(1, 0, 0, 1)
polygon = PackedVector2Array(-15, -15, 16, -15, 16, 16, -15, 16)
[node name="MeshInstance2D" type="MeshInstance2D" parent="." unique_id=1817854395]
modulate = Color(0, 0, 0, 0.2509804)
mesh = SubResource("BoxMesh_xyegg")
[node name="Camera2D" type="Camera2D" parent="." unique_id=641690279]
position_smoothing_enabled = true
[node name="gun" type="Node2D" parent="." unique_id=1991256638]
[node name="sprite" type="Sprite2D" parent="gun" unique_id=404962107]
material = SubResource("CanvasItemMaterial_14505")
scale = Vector2(2, 2)
texture = ExtResource("2_s027a")
region_enabled = true
region_rect = Rect2(0, 112, 16, 16)
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=993544515]
libraries/ = SubResource("AnimationLibrary_4wcc8")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=266552910]
visible = false
shape = SubResource("RectangleShape2D_xyegg")
[node name="hitbox" type="Area2D" parent="." unique_id=1769955622 groups=["playerHitbox"]]
visible = false
collision_layer = 2
collision_mask = 2
metadata/playerHitbox = 1
[node name="CollisionShape2D" type="CollisionShape2D" parent="hitbox" unique_id=929455950]
shape = SubResource("RectangleShape2D_pymst")
debug_color = Color(0.37601954, 0.6145431, 0, 0.41960785)
[node name="PointLight2D" type="PointLight2D" parent="." unique_id=1388686543]
scale = Vector2(50, 50)
shadow_enabled = true
shadow_color = Color(0, 0, 0, 1)
texture = ExtResource("3_14505")
[node name="Timer" type="Timer" parent="." unique_id=1120887048]
wait_time = 0.05
autostart = true
ignore_time_scale = true
[node name="explode" type="CPUParticles2D" parent="." unique_id=1217002006]
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_14505")
color = Color(1, 0, 0, 1)
color_ramp = SubResource("Gradient_4wcc8")
script = ExtResource("6_0gfpk")
[node name="shootsfx" type="AudioStreamPlayer2D" parent="." unique_id=853884099]
stream = ExtResource("4_4wcc8")
[node name="hitsfx" type="AudioStreamPlayer2D" parent="." unique_id=640571283]
stream = ExtResource("5_8sknh")
[connection signal="area_entered" from="hitbox" to="." method="_on_hitbox_area_entered"]
[connection signal="timeout" from="Timer" to="." method="_on_framesave_timeout"]
+16
View File
@@ -0,0 +1,16 @@
[gd_scene format=3 uid="uid://7d67o6b6fcut"]
[ext_resource type="PackedScene" uid="uid://etjisg8welsn" path="res://assets/scenes/enemyBullet.tscn" id="1_3t5k8"]
[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")]
z_index = 1
script = ExtResource("2_qweep")
[node name="MeshInstance2D" parent="." index="0" unique_id=903508644]
modulate = Color(1, 0, 0, 1)
[node name="hitme" parent="." index="1" unique_id=194049910]
z_index = 1
collision_layer = 16
collision_mask = 16
+213
View File
@@ -0,0 +1,213 @@
[gd_scene format=3 uid="uid://bjptrvvfk00r"]
[ext_resource type="Script" uid="uid://iwxi6s8i6j81" path="res://assets/scripts/enemy.gd" id="1_kvq5h"]
[ext_resource type="Script" uid="uid://ca8an62xpl0e4" path="res://assets/scripts/disposableParticles.gd" id="2_7yqym"]
[ext_resource type="AudioStream" uid="uid://5b7eonllfufp" path="res://assets/sounds/hitHurt.wav" id="2_ag6wx"]
[ext_resource type="AudioStream" uid="uid://d3ok8rhcq4kmr" path="res://assets/sounds/shootEnemy.wav" id="3_yw082"]
[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.6166668, 0, 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.6156863, 0, 1, 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)
[node name="Enemy" type="CharacterBody2D" unique_id=1421049985]
collision_layer = 16
collision_mask = 16
script = ExtResource("1_kvq5h")
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.6166668, 0, 1, 1)
polygon = PackedVector2Array(-14.999999, 15.000001, -14.999999, 15.000001, -15.000001, -14.999999, 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.45342964, 0.0022321118, 0.7445152, 1)
color_ramp = SubResource("Gradient_pymst")
script = ExtResource("2_7yqym")
[node name="ColorRect" type="ColorRect" parent="." unique_id=1205892242]
offset_left = -15.0
offset_top = -21.0
offset_right = 15.0
offset_bottom = -18.0
color = Color(1, 1, 1, 0.2509804)
[node name="health" type="ColorRect" parent="." unique_id=1962272317]
offset_left = -15.0
offset_top = -21.0
offset_right = 15.0
offset_bottom = -18.0
color = Color(0.8124417, 0, 0.111754455, 1)
[node name="hitsfx" type="AudioStreamPlayer2D" parent="." unique_id=2128530763]
stream = ExtResource("2_ag6wx")
[node name="shootsfx" type="AudioStreamPlayer2D" parent="." unique_id=408136521]
stream = ExtResource("3_yw082")
volume_db = -10.0
[node name="snappie" type="Timer" parent="." unique_id=807725500]
wait_time = 0.05
autostart = true
ignore_time_scale = true
[connection signal="timeout" from="Timer" to="." method="_on_new_path"]
[connection signal="timeout" from="snappie" to="." method="_on_snappie_timeout"]
+72
View File
@@ -0,0 +1,72 @@
[gd_scene format=3 uid="uid://dixc62oses4hl"]
[ext_resource type="Texture2D" uid="uid://chofj1gn6jmyo" path="res://assets/images/upgrades/dashMachine.png" id="1_efxjv"]
[ext_resource type="Script" uid="uid://b3rft2lmj60k0" path="res://assets/scripts/upgrade_ui.gd" id="1_v2t1u"]
[ext_resource type="AudioStream" uid="uid://dt154t2aall5d" path="res://assets/sounds/break.wav" id="3_64vnu"]
[sub_resource type="LabelSettings" id="LabelSettings_xyegg"]
[sub_resource type="Curve" id="Curve_xyegg"]
_data = [Vector2(0.5017794, 0.99047613), 0.0, 0.0, 0, 0, Vector2(1, 0.019047618), 0.0, 0.0, 0, 0]
point_count = 2
[node name="Control2" type="Control" unique_id=1424148917]
layout_mode = 3
anchors_preset = 0
offset_right = 48.0
offset_bottom = 48.0
script = ExtResource("1_v2t1u")
[node name="goldrect" type="ColorRect" parent="." unique_id=140383699]
visible = false
layout_mode = 0
offset_right = 48.0
offset_bottom = 48.0
color = Color(0.8, 0.6, 0, 1)
[node name="texture" type="TextureRect" parent="." unique_id=1844486601]
modulate = Color(1, 1, 1, 0)
layout_mode = 0
offset_right = 48.0
offset_bottom = 48.0
scale = Vector2(0.3, 0.3)
pivot_offset_ratio = Vector2(0.5, 0.5)
texture = ExtResource("1_efxjv")
[node name="progress" type="ColorRect" parent="." unique_id=1719328911]
layout_mode = 0
offset_left = 48.0
offset_right = 48.0
offset_bottom = 48.0
pivot_offset_ratio = Vector2(1, 0)
color = Color(0, 0, 0, 0.2509804)
[node name="Label" type="Label" parent="." unique_id=568341339]
layout_mode = 1
offset_top = 25.0
offset_right = 48.0
offset_bottom = 48.0
pivot_offset_ratio = Vector2(1, 0)
text = "x1"
label_settings = SubResource("LabelSettings_xyegg")
horizontal_alignment = 2
[node name="particles" type="CPUParticles2D" parent="." unique_id=1967275328]
position = Vector2(24, 24)
emitting = false
one_shot = true
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 = -300.0
scale_amount_min = 4.0
scale_amount_max = 8.0
scale_amount_curve = SubResource("Curve_xyegg")
color = Color(1, 1, 1, 0.5019608)
[node name="breaksfx" type="AudioStreamPlayer2D" parent="." unique_id=1024345853]
stream = ExtResource("3_64vnu")
volume_db = -10.0
+7
View File
@@ -0,0 +1,7 @@
extends CPUParticles2D
var unlock := false
func _process(delta: float) -> void:
if unlock and not emitting:
queue_free()
@@ -0,0 +1 @@
uid://ca8an62xpl0e4
+176
View File
@@ -0,0 +1,176 @@
extends CharacterBody2D
@onready var bullet = preload("res://assets/scenes/enemyBullet.tscn")
@onready var explosionSFX = preload("res://assets/scenes/explosionsfx.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
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 distance > RANGE and 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
elif ray.is_colliding():
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
else:
poly.rotation += poly.get_angle_to(player.global_position) * 5 * delta
#ray.rotation += ray.get_angle_to(player.global_position) * 5 * delta
curShootVal -= delta
if curShootVal <= 0:
var instantiated = bullet.instantiate()
instantiated.global_position = global_position
instantiated.rotation = poly.rotation
instantiated.velocity.x = cos(poly.rotation) * 500
instantiated.velocity.y = sin(poly.rotation) * 500
instantiated.dealtScale = 1.5 * pow(wave, 0.2)
get_parent().get_parent().add_child(instantiated)
animations.play("shoot")
shootsfx.play()
curShootVal = shootDelay
#velocity.x += (-cos(rotation) * 50 - velocity.x) / 5 * delta
#velocity.y += (-sin(rotation) * 50 - velocity.y) / 5 * delta
velocity.x += (-velocity.x) * 2 * delta
velocity.y += (-velocity.y) * 2 * delta
knockback += -knockback * 5 * delta
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://iwxi6s8i6j81
+32
View File
@@ -0,0 +1,32 @@
extends CharacterBody2D
@onready var playerP = $"../Player"
var max_collisions = 0
var dealtScale := 1.5
func _ready() -> void:
pass # Replace with function body.
func _physics_process(delta: float) -> void:
if playerP.transitioning: return
move_and_collide(velocity * delta)
func _on_area_entered(area: Area2D) -> void:
if area.get_meta("playerHitbox", 0) != 0:
var player = area.get_parent()
player.speedScale = dealtScale * pow(0.8, Globals.unlockedUpgrades.get("rollback", 0))
player.speedUp = 0.5
player.damageScale += dealtScale * pow(0.8, Globals.unlockedUpgrades.get("rollback", 0))
player.knockback = Vector2(sin(rotation) * 500 * [0.5, -0.5].pick_random(), cos(rotation) * 500 * [0.5, -0.5].pick_random())
player.hitsfx.play()
queue_free()
func _on_body_entered(body: Node2D) -> void:
queue_free()
+1
View File
@@ -0,0 +1 @@
uid://bemc80xgvtkd4
+6
View File
@@ -0,0 +1,6 @@
extends AudioStreamPlayer2D
func _process(delta: float) -> void:
if not playing:
queue_free()
+1
View File
@@ -0,0 +1 @@
uid://ctjyxuafayafk
+30
View File
@@ -0,0 +1,30 @@
extends Node
var availableUpgrades := ["dumbbell","firstAidKit", "rollback", "fasterFaster", "speedMayhem", "thoseWereTheDays", "dashMachine", "shotgun"]
var upgradeDescriptions := {
"firstAidKit": "+50% time back",
"dumbbell": "+20% damage",
"rollback": "-20% speed up when taking damage",
"fasterFaster": "+15% speed",
"speedMayhem": "deal more damage with more speed",
"thoseWereTheDays": "every rollback, gain +10% damage",
"dashMachine": "just a better dash.",
"shotgun": "a shotgun. literally just a fricking shotgun."
}
var goldUpgradeDescriptionOverrides := {
"shotgun": "still a shotgun, but now shiny ooo",
"dashMachine": "dash everywhere, go wild.",
"stopwatch": "countdowns are 50% slower. its cool isn't it?",
"adrenaline": "when 5 seconds left on the health countdown, recieve a 75% buff on EVERYTHING.",
"threeWaves": "something is coming in three waves."
}
var unlockedUpgrades = {}
var DASH_WAIT := 3.0
var DASH_LENGTH := 1000.0
var UPGRADE_ORIG := 30.0
var UPGRADE_TIMERSTART := 30.0
+1
View File
@@ -0,0 +1 @@
uid://ce6cecb4wunfi
+199
View File
@@ -0,0 +1,199 @@
extends CharacterBody2D
const SPEED := 300.0
var health := 30.0 # represented in seconds
var newHealth := -1.0
@onready var bullet = preload("res://assets/scenes/playerBullet.tscn")
@onready var gun = $gun
@onready var gunSprite = $gun/sprite
@onready var animations = $AnimationPlayer
@onready var shootsfx = $shootsfx
@onready var hitsfx = $hitsfx
@onready var dashRect = $MeshInstance2D
@onready var poly = $Polygon2D
signal transitionStart(seconds)
var speedUp := 0.0
var speedScale := 2.0
var damageScale := 1.0
var minDamageScale := 1.0
var dashTimer := 0.0
var dashVel := Vector2.ZERO
var knockback := Vector2.ZERO
var flip := false
var ticks = 0
var tickToDel = 0
var frameData = {} # keep position, rotation and velocity for now
var amountTransition := 0.0
var transitioning := false
var transitionState = [false, false, false]
var targetState = []
var dead := false
func heal(seconds):
newHealth = health + seconds
transitionStart.emit(seconds)
#print(frameData)
targetState = frameData[max(tickToDel, ticks - (int(floor(seconds)) * 20))]
transitioning = true
func healNoMove(seconds):
newHealth = health + seconds
func _process(delta: float) -> void:
if damageScale > minDamageScale: damageScale -= delta
damageScale = max(damageScale, minDamageScale)
#ticks += 1
dashRect.position.y = 31 * dashTimer / Globals.DASH_WAIT / 2 - 31.0 / 2
dashRect.scale.y = dashTimer / Globals.DASH_WAIT
if health < 10:
poly.position = Vector2(randi_range(-(10 - health) / 5,(10 - health) / 5), randi_range(-(10 - health) / 5,(10 - health) / 5))
if health <= 0 and not dead:
$explode.emitting = true
$explode.unlock = true
$explode.reparent(get_parent())
$PointLight2D.reparent(get_parent())
dead = true
hide()
var grayscaleVal := 1.0
func _physics_process(delta: float) -> void:
if dead: return
if newHealth != -1:
health += (newHealth - health) * 3 * delta
if abs(health - newHealth) < 1:
health = newHealth
newHealth = -1
if transitioning:
grayscaleVal += - grayscaleVal * 10 * delta
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
Engine.time_scale += (0.5 - Engine.time_scale) * 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 = []
health = ceil(health)
amountTransition = 0
return
grayscaleVal += (1-grayscaleVal) * 2 * delta
var direction := Input.get_vector("moveLeft", "moveRight", "moveUp", "moveDown")
velocity = direction * SPEED
if Globals.unlockedUpgrades.get("fasterFaster", 0) > 0:
velocity *= pow(1.15, Globals.unlockedUpgrades["fasterFaster"])
gun.rotation += gun.get_angle_to(get_global_mouse_position()) * 7 * delta
#print(fposmod(gun.rotation + PI, PI * 2) - PI)
var truerot = fposmod(gun.rotation + PI, PI * 2) - PI
if truerot < -PI / 2 or truerot > PI / 2:
gun.scale.y += (-1 - gun.scale.y) * 10 * delta
flip = true
else:
gun.scale.y += (1 - gun.scale.y) * 10 * delta
flip = false
var ang = gun.rotation + gun.get_angle_to(get_global_mouse_position())
if Input.is_action_just_pressed("dash") and dashTimer == 0:
dashVel = Vector2(cos(ang), sin(ang)) * Globals.DASH_LENGTH
dashTimer = Globals.DASH_WAIT
if dashTimer > 0: dashTimer -= delta
else: dashTimer = 0
if Input.is_action_just_pressed("shoot"):
if not animations.is_playing():
#var ang = gun.rotation + gun.get_angle_to(get_global_mouse_position())
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()
if flip: animations.play("shoot_flip")
else: animations.play("shoot")
#if Input.is_action_just_pressed("debugKey"):
#targetState = frameData[ticks - 40]
#transitioning = true
if speedUp > 0:
Engine.time_scale += (speedScale - Engine.time_scale) * delta / Engine.time_scale
speedUp -= delta / speedScale
else:
speedScale = 1
Engine.time_scale += (1 - Engine.time_scale) * 2 * delta / Engine.time_scale
velocity += knockback
velocity += dashVel
knockback += -knockback * 5 * delta
dashVel += -dashVel * 5 * delta
move_and_slide()
func _on_framesave_timeout() -> void:
frameData[ticks] = [position, rotation, velocity]
ticks += 1
if ticks > 240:
frameData.erase(tickToDel)
tickToDel += 1
func _on_hitbox_area_entered(area: Area2D) -> void:
var themeta = area.get_meta("pickup", 0)
#print("floyd")
#
if themeta != 0:
area.get_node("particles").emitting = true
area.get_node("particles").reparent(get_parent())
healNoMove(3)
area.queue_free()
$"../hud/AnimationPlayer2".play("global/popItUp")
+1
View File
@@ -0,0 +1 @@
uid://dbofvk7fso8po
+50
View File
@@ -0,0 +1,50 @@
extends CharacterBody2D
@onready var player = $"../Player"
@onready var bloodParticles = preload("res://assets/scenes/blood.tscn")
var dmgtotal := float(randi_range(20,40))
func _ready() -> void:
print(dmgtotal)
if Globals.unlockedUpgrades.get("dumbbell", 0) > 0:
dmgtotal *= pow(1.5, Globals.unlockedUpgrades["dumbbell"])
if Globals.unlockedUpgrades.get("speedMayhem", 0) > 0:
dmgtotal *= pow(1 + (player.velocity.length() + player.dashVel.length()) / 400, Globals.unlockedUpgrades["speedMayhem"])
print(dmgtotal)
func _physics_process(delta: float) -> void:
if player.transitioning: return
move_and_collide(velocity * delta)
func _on_area_entered(area: Area2D) -> void:
print("yes")
queue_free()
func _on_body_entered(body: Node2D) -> void:
if body.get_meta("enemy", 0) == 1:
#body.get_node("explode").emitting = true
#body.get_node("explode").reparent(body.geat_parent())
body.health -= dmgtotal
body.knockback = Vector2(velocity.x * 0.5, velocity.y * 0.5)
body.hitsfx.play()
#AnimationPlayer.new().stop()
body.get_node("AnimationPlayer").stop()
body.get_node("AnimationPlayer").play("flash")
var bloodInsta = bloodParticles.instantiate()
bloodInsta.emitting = true
bloodInsta.unlock = true
bloodInsta.global_position = body.global_position
get_parent().add_child(bloodInsta)
#player.heal(randi_range(3,5))
#body.queue_free()
queue_free()
+1
View File
@@ -0,0 +1 @@
uid://dnxmn06yejksk
+39
View File
@@ -0,0 +1,39 @@
extends Control
@onready var texture = $texture
@onready var amountLabel = $Label
@onready var progressRect = $progress
@export var imDead := false
var upgradeID := ""
#var amount := 1
var timer := Globals.UPGRADE_TIMERSTART
func _process(delta: float) -> void:
if imDead and not $particles.emitting:
queue_free()
timer -= delta * Engine.time_scale
texture.scale += (Vector2(1, 1) - texture.scale) * 7 * delta
texture.modulate.a += (1 - texture.modulate.a) * 7 * 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
amountLabel.text = str("x", Globals.unlockedUpgrades.get(upgradeID, -1))
if timer < 0 and not imDead:
Globals.unlockedUpgrades[upgradeID] -= 1
timer = Globals.UPGRADE_TIMERSTART
if Globals.unlockedUpgrades[upgradeID] == 0:
Globals.unlockedUpgrades.erase(upgradeID)
imDead = true
$texture.hide()
$progress.hide()
$Label.hide()
$goldrect.hide()
$breaksfx.play()
$particles.emitting = true
+1
View File
@@ -0,0 +1 @@
uid://b3rft2lmj60k0
+30
View File
@@ -0,0 +1,30 @@
shader_type canvas_item;
uniform sampler2D t0 : hint_screen_texture;
uniform float bloom_spread = 1;
uniform float bloom_intensity = 2;
void fragment() {
ivec2 size = textureSize(t0, 0);
float uv_x = SCREEN_UV.x * float(size.x);
float uv_y = SCREEN_UV.y * float(size.y);
vec4 sum = vec4(0.0);
for (int n = 0; n < 9; ++n) {
uv_y = (SCREEN_UV.y * float(size.y)) + float(bloom_spread * float(n - 4));
vec4 h_sum = vec4(0.0);
h_sum += texelFetch(t0, ivec2(int(uv_x) - int(4.0 * bloom_spread), int(uv_y)), 0);
h_sum += texelFetch(t0, ivec2(int(uv_x) - int(3.0 * bloom_spread), int(uv_y)), 0);
h_sum += texelFetch(t0, ivec2(int(uv_x) - int(2.0 * bloom_spread), int(uv_y)), 0);
h_sum += texelFetch(t0, ivec2(int(uv_x) - int(bloom_spread), int(uv_y)), 0);
h_sum += texelFetch(t0, ivec2(int(uv_x), int(uv_y)), 0);
h_sum += texelFetch(t0, ivec2(int(uv_x) + int(bloom_spread), int(uv_y)), 0);
h_sum += texelFetch(t0, ivec2(int(uv_x) + int(2.0 * bloom_spread), int(uv_y)), 0);
h_sum += texelFetch(t0, ivec2(int(uv_x) + int(3.0 * bloom_spread), int(uv_y)), 0);
h_sum += texelFetch(t0, ivec2(int(uv_x) + int(4.0 * bloom_spread), int(uv_y)), 0);
sum += h_sum / 9.0;
}
COLOR = texture(t0, SCREEN_UV) + ((sum / 9.0) * bloom_intensity);
}
+1
View File
@@ -0,0 +1 @@
uid://c8ew170obieqd
+11
View File
@@ -0,0 +1,11 @@
shader_type canvas_item;
uniform sampler2D screen_texture : hint_screen_texture, repeat_disable;
uniform float saturation : hint_range(0.0, 1.0) = 1.0; // 0 = grayscale, 1 = full color
void fragment() {
vec4 tex = texture(screen_texture, SCREEN_UV);
float gray = dot(tex.rgb, vec3(0.299, 0.587, 0.114)); // luminance weights
vec3 result = mix(vec3(gray), tex.rgb, saturation);
COLOR = vec4(result, tex.a);
}
+1
View File
@@ -0,0 +1 @@
uid://iv65e2k0fx0e
+168
View File
@@ -0,0 +1,168 @@
shader_type canvas_item;
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap;
uniform bool overlay = false;
uniform float scanlines_opacity : hint_range(0.0, 1.0) = 0.4;
uniform float scanlines_width : hint_range(0.0, 0.5) = 0.25;
uniform float grille_opacity : hint_range(0.0, 1.0) = 0.3;
uniform vec2 resolution = vec2(640.0, 480.0);
uniform bool pixelate = true;
uniform bool roll = true;
uniform float roll_speed = 8.0;
uniform float roll_size : hint_range(0.0, 100.0) = 15.0;
uniform float roll_variation : hint_range(0.1, 5.0) = 1.8;
uniform float distort_intensity : hint_range(0.0, 0.2) = 0.05;
uniform float noise_opacity : hint_range(0.0, 1.0) = 0.4;
uniform float noise_speed = 5.0;
uniform float static_noise_intensity : hint_range(0.0, 1.0) = 0.06;
uniform float aberration : hint_range(-1.0, 1.0) = 0.03;
uniform float brightness = 1.4;
uniform bool discolor = true;
uniform float warp_amount : hint_range(0.0, 5.0) = 1.0;
uniform bool clip_warp = false;
uniform float vignette_intensity = 0.4;
uniform float vignette_opacity : hint_range(0.0, 1.0) = 0.5;
vec2 random(vec2 uv){
uv = vec2(dot(uv, vec2(127.1,311.7)), dot(uv, vec2(269.5,183.3)));
return -1.0 + 2.0 * fract(sin(uv) * 43758.5453123);
}
float noise(vec2 uv) {
vec2 uv_index = floor(uv);
vec2 uv_fract = fract(uv);
vec2 blur = smoothstep(0.0, 1.0, uv_fract);
return mix(
mix(dot(random(uv_index + vec2(0.0,0.0)), uv_fract - vec2(0.0,0.0)),
dot(random(uv_index + vec2(1.0,0.0)), uv_fract - vec2(1.0,0.0)), blur.x),
mix(dot(random(uv_index + vec2(0.0,1.0)), uv_fract - vec2(0.0,1.0)),
dot(random(uv_index + vec2(1.0,1.0)), uv_fract - vec2(1.0,1.0)), blur.x),
blur.y
) * 0.5 + 0.5;
}
vec2 warp(vec2 uv){
vec2 delta = uv - 0.5;
float delta2 = dot(delta.xy, delta.xy);
float delta4 = delta2 * delta2;
float delta_offset = delta4 * warp_amount;
return uv + delta * delta_offset;
}
float border (vec2 uv){
float radius = min(warp_amount, 0.08);
radius = max(min(min(abs(radius * 2.0), abs(1.0)), abs(1.0)), 1e-5);
vec2 abs_uv = abs(uv * 2.0 - 1.0) - vec2(1.0, 1.0) + radius;
float dist = length(max(vec2(0.0), abs_uv)) / radius;
float square = smoothstep(0.96, 1.0, dist);
return clamp(1.0 - square, 0.0, 1.0);
}
float vignette(vec2 uv){
uv *= 1.0 - uv.xy;
float vignette = uv.x * uv.y * 15.0;
return pow(vignette, vignette_intensity * vignette_opacity);
}
void fragment()
{
vec2 uv = overlay ? warp(SCREEN_UV) : warp(UV);
vec2 text_uv = uv;
vec2 roll_uv = vec2(0.0);
float time = roll ? TIME : 0.0;
if (pixelate){
text_uv = ceil(uv * resolution) / resolution;
}
float roll_line = 0.0;
if (roll || noise_opacity > 0.0){
roll_line = smoothstep(0.3, 0.9, sin(uv.y * roll_size - (time * roll_speed)));
roll_line *= roll_line * smoothstep(0.3, 0.9, sin(uv.y * roll_size * roll_variation - (time * roll_speed * roll_variation)));
roll_uv = vec2((roll_line * distort_intensity * (1.-UV.x)), 0.0);
}
vec4 text;
if (roll){
text.r = texture(SCREEN_TEXTURE, text_uv + roll_uv * 0.8 + vec2(aberration, 0.0) * .1).r;
text.g = texture(SCREEN_TEXTURE, text_uv + roll_uv * 1.2 - vec2(aberration, 0.0) * .1).g;
text.b = texture(SCREEN_TEXTURE, text_uv + roll_uv).b;
text.a = 1.0;
} else {
text.r = texture(SCREEN_TEXTURE, text_uv + vec2(aberration, 0.0) * .1).r;
text.g = texture(SCREEN_TEXTURE, text_uv - vec2(aberration, 0.0) * .1).g;
text.b = texture(SCREEN_TEXTURE, text_uv).b;
text.a = 1.0;
}
float r = text.r;
float g = text.g;
float b = text.b;
uv = warp(UV);
if (grille_opacity > 0.0){
float g_r = smoothstep(0.85, 0.95, abs(sin(uv.x * (resolution.x * 3.14159265))));
r = mix(r, r * g_r, grille_opacity);
float g_g = smoothstep(0.85, 0.95, abs(sin(1.05 + uv.x * (resolution.x * 3.14159265))));
g = mix(g, g * g_g, grille_opacity);
float b_b = smoothstep(0.85, 0.95, abs(sin(2.1 + uv.x * (resolution.x * 3.14159265))));
b = mix(b, b * b_b, grille_opacity);
}
text.r = clamp(r * brightness, 0.0, 1.0);
text.g = clamp(g * brightness, 0.0, 1.0);
text.b = clamp(b * brightness, 0.0, 1.0);
float scanlines = 0.5;
if (scanlines_opacity > 0.0){
scanlines = smoothstep(scanlines_width, scanlines_width + 0.5, abs(sin(uv.y * (resolution.y * 3.14159265))));
text.rgb = mix(text.rgb, text.rgb * vec3(scanlines), scanlines_opacity);
}
if (noise_opacity > 0.0){
float n = smoothstep(0.4, 0.5, noise(uv * vec2(2.0, 200.0) + vec2(10.0, (TIME * (noise_speed)))));
roll_line *= n * scanlines * clamp(random((ceil(uv * resolution) / resolution) + vec2(TIME * 0.8, 0.0)).x + 0.8, 0.0, 1.0);
text.rgb = clamp(mix(text.rgb, text.rgb + roll_line, noise_opacity), vec3(0.0), vec3(1.0));
}
if (static_noise_intensity > 0.0){
text.rgb += clamp(random((ceil(uv * resolution) / resolution) + fract(TIME)).x, 0.0, 1.0) * static_noise_intensity;
}
text.rgb *= border(uv);
text.rgb *= vignette(uv);
if (clip_warp){
text.a = border(uv);
}
if (discolor){
float saturation = 0.5;
float contrast = 1.2;
vec3 greyscale = vec3(text.r + text.g + text.b) / 3.;
text.rgb = mix(text.rgb, greyscale, saturation);
float midpoint = pow(0.5, 2.2);
text.rgb = (text.rgb - vec3(midpoint)) * contrast + midpoint;
}
COLOR = text;
}
+1
View File
@@ -0,0 +1 @@
uid://mbnolbvkgv2e
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://c74t2je247tit"
path="res://.godot/imported/blipSelect.wav-de258546cfca554e7f4e9bacf8531c7c.sample"
[deps]
source_file="res://assets/sounds/blipSelect.wav"
dest_files=["res://.godot/imported/blipSelect.wav-de258546cfca554e7f4e9bacf8531c7c.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://dt154t2aall5d"
path="res://.godot/imported/break.wav-db0dc963ca187eba995ad2567e0eabb2.sample"
[deps]
source_file="res://assets/sounds/break.wav"
dest_files=["res://.godot/imported/break.wav-db0dc963ca187eba995ad2567e0eabb2.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://b7gupw3d7sfho"
path="res://.godot/imported/explosion.wav-52e05e8d4b6600106c8dde082c90f915.sample"
[deps]
source_file="res://assets/sounds/explosion.wav"
dest_files=["res://.godot/imported/explosion.wav-52e05e8d4b6600106c8dde082c90f915.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://5b7eonllfufp"
path="res://.godot/imported/hitHurt.wav-f5c862522ab53cfcebe43a49f03467c5.sample"
[deps]
source_file="res://assets/sounds/hitHurt.wav"
dest_files=["res://.godot/imported/hitHurt.wav-f5c862522ab53cfcebe43a49f03467c5.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://cxub0psx0jhru"
path="res://.godot/imported/powerUp.wav-c3616ba4a45e0da0d67ac257bc645e97.sample"
[deps]
source_file="res://assets/sounds/powerUp.wav"
dest_files=["res://.godot/imported/powerUp.wav-c3616ba4a45e0da0d67ac257bc645e97.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://de4sr2qpjr1w2"
path="res://.godot/imported/shoot.wav-05f65b79fd05091fd1b8b7ddc844694a.sample"
[deps]
source_file="res://assets/sounds/shoot.wav"
dest_files=["res://.godot/imported/shoot.wav-05f65b79fd05091fd1b8b7ddc844694a.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://d3ok8rhcq4kmr"
path="res://.godot/imported/shootEnemy.wav-3f5ba9a06b9c4c7d11d05380df3970ab.sample"
[deps]
source_file="res://assets/sounds/shootEnemy.wav"
dest_files=["res://.godot/imported/shootEnemy.wav-3f5ba9a06b9c4c7d11d05380df3970ab.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