codeberg copy

This commit is contained in:
CatAClock 2025-04-15 11:58:44 -07:00
commit e6474ae76a
127 changed files with 3333 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
# Godot 4+ specific ignores
Project/.godot/
Project/android/

121
LICENSE.md Normal file
View file

@ -0,0 +1,121 @@
# PolyForm Small Business License 1.0.0
<https://polyformproject.org/licenses/small-business/1.0.0>
## Acceptance
In order to get any license under these terms, you must agree
to them as both strict obligations and conditions to all
your licenses.
## Copyright License
The licensor grants you a copyright license for the
software to do everything you might do with the software
that would otherwise infringe the licensor's copyright
in it for any permitted purpose. However, you may
only distribute the software according to [Distribution
License](#distribution-license) and make changes or new works
based on the software according to [Changes and New Works
License](#changes-and-new-works-license).
## Distribution License
The licensor grants you an additional copyright license
to distribute copies of the software. Your license
to distribute covers distributing the software with
changes and new works permitted by [Changes and New Works
License](#changes-and-new-works-license).
## Notices
You must ensure that anyone who gets a copy of any part of
the software from you also gets a copy of these terms or the
URL for them above, as well as copies of any plain-text lines
beginning with `Required Notice:` that the licensor provided
with the software. For example:
> Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
## Changes and New Works License
The licensor grants you an additional copyright license to
make changes and new works based on the software for any
permitted purpose.
## Patent License
The licensor grants you a patent license for the software that
covers patent claims the licensor can license, or becomes able
to license, that you would infringe by using the software.
## Fair Use
You may have "fair use" rights for the software under the
law. These terms do not limit them.
## Small Business
Use of the software for the benefit of your company is use for
a permitted purpose if your company has fewer than 100 total
individuals working as employees and independent contractors,
and less than 1,000,000 USD (2019) total revenue in the prior
tax year. Adjust this revenue threshold for inflation according
to the United States Bureau of Labor Statistics' consumer price
index for all urban consumers, U.S. city average, for all items,
not seasonally adjusted, with 1982–1984=100 reference base.
## No Other Rights
These terms do not allow you to sublicense or transfer any of
your licenses to anyone else, or prevent the licensor from
granting licenses to anyone else. These terms do not imply
any other licenses.
## Patent Defense
If you make any written claim that the software infringes or
contributes to infringement of any patent, your patent license
for the software granted under these terms ends immediately. If
your company makes such a claim, your patent license ends
immediately for work on behalf of your company.
## Violations
The first time you are notified in writing that you have
violated any of these terms, or done anything with the software
not covered by your licenses, your licenses can nonetheless
continue if you come into full compliance with these terms,
and take practical steps to correct past violations, within
32 days of receiving notice. Otherwise, all your licenses
end immediately.
## No Liability
***As far as the law allows, the software comes as is, without
any warranty or condition, and the licensor will not be liable
to you for any damages arising out of these terms or the use
or nature of the software, under any kind of legal claim.***
## Definitions
The **licensor** is the individual or entity offering these
terms, and the **software** is the software the licensor makes
available under these terms.
**You** refers to the individual or entity agreeing to these
terms.
**Your company** is any legal entity, sole proprietorship,
or other kind of organization that you work for, plus all
organizations that have control over, are under the control of,
or are under common control with that organization. **Control**
means ownership of substantially all the assets of an entity,
or the power to direct its management and policies by vote,
contract, or otherwise. Control can be direct or indirect.
**Your licenses** are all the licenses granted to you for the
software under these terms.
**Use** means anything you do with the software requiring one
of your licenses.

View file

@ -0,0 +1,31 @@
[gd_scene load_steps=5 format=3 uid="uid://do4a4d3u60iy1"]
[ext_resource type="Script" path="res://Scripts/bullet.gd" id="1_utvym"]
[ext_resource type="Texture2D" uid="uid://d07qtvmhqjjts" path="res://Textures/Bullet.png" id="2_xbn07"]
[ext_resource type="AudioStream" uid="uid://b4r0manp60hb4" path="res://Sound/HitHurt.ogg" id="3_qwtek"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ad2gx"]
radius = 14.0
[node name="Bullet" type="RigidBody2D" groups=["Bullet"]]
collision_layer = 2
collision_mask = 2
gravity_scale = 0.0
lock_rotation = true
contact_monitor = true
max_contacts_reported = 1
script = ExtResource("1_utvym")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_ad2gx")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(1.42109e-14, 1)
scale = Vector2(0.034, 0.034)
texture = ExtResource("2_xbn07")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_qwtek")
volume_db = -5.0
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View file

@ -0,0 +1,31 @@
[gd_scene load_steps=5 format=3 uid="uid://dq1pnq3g34tay"]
[ext_resource type="Script" path="res://Scripts/bullet.gd" id="1_axiew"]
[ext_resource type="Texture2D" uid="uid://d07qtvmhqjjts" path="res://Textures/Bullet.png" id="2_c87oi"]
[ext_resource type="AudioStream" uid="uid://b4r0manp60hb4" path="res://Sound/HitHurt.ogg" id="3_g6cj5"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ad2gx"]
radius = 14.0
[node name="EnemyBullet" type="RigidBody2D" groups=["Bullet"]]
modulate = Color(1, 0, 0, 1)
gravity_scale = 0.0
lock_rotation = true
contact_monitor = true
max_contacts_reported = 1
script = ExtResource("1_axiew")
EnemyBullet = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_ad2gx")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(1.42109e-14, 1)
scale = Vector2(0.034, 0.034)
texture = ExtResource("2_c87oi")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_g6cj5")
volume_db = -5.0
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View file

@ -0,0 +1,85 @@
[gd_scene load_steps=15 format=3 uid="uid://8l43dsk30uq3"]
[ext_resource type="Script" path="res://Scripts/enemy.gd" id="1_4aawx"]
[ext_resource type="Texture2D" uid="uid://blrbc8mp71nub" path="res://Textures/Route/Route 1.png" id="2_h84n4"]
[ext_resource type="Texture2D" uid="uid://cphw4low4de4b" path="res://Textures/Route/Route 2.png" id="3_tnxi1"]
[ext_resource type="Texture2D" uid="uid://dwdn12rkkr1uo" path="res://Textures/Route/Route 3.png" id="4_8tegk"]
[ext_resource type="Texture2D" uid="uid://bbupn4br1fog7" path="res://Textures/Route/Route 4.png" id="5_nodwr"]
[ext_resource type="Texture2D" uid="uid://tfbp816emics" path="res://Textures/Route/Route 5.png" id="6_dky81"]
[ext_resource type="Texture2D" uid="uid://cl0sil1psnxs1" path="res://Textures/Route/Route 6.png" id="7_lif88"]
[ext_resource type="Texture2D" uid="uid://cgv78fuua01eg" path="res://Textures/Route/Route 7.png" id="8_slcma"]
[ext_resource type="Texture2D" uid="uid://y2e4mmb2u3h5" path="res://Textures/Route/Route 8.png" id="9_g78pb"]
[ext_resource type="Texture2D" uid="uid://cfonr11og4um" path="res://Textures/Route/Route 9.png" id="10_i4jqp"]
[ext_resource type="Texture2D" uid="uid://dtgyeeu1t0n7h" path="res://Textures/Route/Route 10.png" id="11_skrsr"]
[ext_resource type="Texture2D" uid="uid://b1xcgdrf6sdbp" path="res://Textures/Route/Route 11.png" id="12_gr3uw"]
[sub_resource type="SpriteFrames" id="SpriteFrames_48384"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_h84n4")
}, {
"duration": 1.0,
"texture": ExtResource("3_tnxi1")
}, {
"duration": 1.0,
"texture": ExtResource("4_8tegk")
}, {
"duration": 1.0,
"texture": ExtResource("5_nodwr")
}, {
"duration": 1.0,
"texture": ExtResource("6_dky81")
}, {
"duration": 1.0,
"texture": ExtResource("7_lif88")
}, {
"duration": 1.0,
"texture": ExtResource("8_slcma")
}, {
"duration": 1.0,
"texture": ExtResource("9_g78pb")
}, {
"duration": 1.0,
"texture": ExtResource("10_i4jqp")
}, {
"duration": 1.0,
"texture": ExtResource("11_skrsr")
}, {
"duration": 1.0,
"texture": ExtResource("12_gr3uw")
}],
"loop": true,
"name": &"default",
"speed": 22.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_t28hd"]
size = Vector2(77, 77)
[node name="Enemy" type="RigidBody2D" groups=["Enemy"]]
collision_layer = 3
collision_mask = 3
mass = 50.0
gravity_scale = 0.0
lock_rotation = true
custom_integrator = true
contact_monitor = true
max_contacts_reported = 1
script = ExtResource("1_4aawx")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(-9, 4)
scale = Vector2(0.08, 0.08)
sprite_frames = SubResource("SpriteFrames_48384")
autoplay = "default"
frame_progress = 0.329504
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0.5, 0.5)
shape = SubResource("RectangleShape2D_t28hd")
[node name="Arm" type="Node2D" parent="."]
[node name="Marker2D" type="Marker2D" parent="Arm"]
position = Vector2(-130, 0)

View file

@ -0,0 +1,83 @@
[gd_scene load_steps=14 format=3 uid="uid://bki7jjuvugscj"]
[ext_resource type="Script" path="res://Scripts/enemy.gd" id="1_oyq4s"]
[ext_resource type="PackedScene" uid="uid://dq1pnq3g34tay" path="res://Scenes/Bullets/enemy_bullet.tscn" id="2_w428l"]
[ext_resource type="Texture2D" uid="uid://b2res51c25avx" path="res://Textures/Whale/Whale 1.png" id="3_rlx0w"]
[ext_resource type="Texture2D" uid="uid://s3ici4urgkpp" path="res://Textures/Whale/Whale 2.png" id="4_nq1if"]
[ext_resource type="Texture2D" uid="uid://xvmxbxost161" path="res://Textures/Whale/Whale 3.png" id="5_vayue"]
[ext_resource type="Texture2D" uid="uid://d13ht078u72ob" path="res://Textures/Whale/Whale 4.png" id="6_5ajax"]
[ext_resource type="Texture2D" uid="uid://dmdonnxkc6q5y" path="res://Textures/Whale/Whale 5.png" id="7_jutdb"]
[ext_resource type="Texture2D" uid="uid://mk3erlmynh73" path="res://Textures/Whale/Whale 6.png" id="8_xrq6q"]
[ext_resource type="Texture2D" uid="uid://dqlcy084umvmy" path="res://Textures/Whale/Whale 7.png" id="9_u1p5y"]
[ext_resource type="Texture2D" uid="uid://bkiv5st0na5lf" path="res://Textures/Whale/Whale 8.png" id="10_fdwi5"]
[ext_resource type="Texture2D" uid="uid://csmh12c3ird1w" path="res://Textures/Whale/Whale 9.png" id="11_7viix"]
[sub_resource type="SpriteFrames" id="SpriteFrames_t7ivn"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_rlx0w")
}, {
"duration": 1.0,
"texture": ExtResource("4_nq1if")
}, {
"duration": 1.0,
"texture": ExtResource("5_vayue")
}, {
"duration": 1.0,
"texture": ExtResource("6_5ajax")
}, {
"duration": 1.0,
"texture": ExtResource("7_jutdb")
}, {
"duration": 1.0,
"texture": ExtResource("8_xrq6q")
}, {
"duration": 1.0,
"texture": ExtResource("9_u1p5y")
}, {
"duration": 1.0,
"texture": ExtResource("10_fdwi5")
}, {
"duration": 1.0,
"texture": ExtResource("11_7viix")
}],
"loop": true,
"name": &"default",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pdpqn"]
size = Vector2(201, 117)
[node name="ShootingEnemy" type="RigidBody2D" groups=["Enemy"]]
collision_layer = 3
collision_mask = 3
mass = 250.0
gravity_scale = 0.0
lock_rotation = true
contact_monitor = true
max_contacts_reported = 1
script = ExtResource("1_oyq4s")
Speed = 100
Health = 11
ScoreAmount = 500
IsShooting = true
Bullet = ExtResource("2_w428l")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(2, 0)
scale = Vector2(0.15, 0.15)
sprite_frames = SubResource("SpriteFrames_t7ivn")
autoplay = "default"
frame_progress = 0.422597
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(23.5, -0.5)
shape = SubResource("RectangleShape2D_pdpqn")
[node name="Arm" type="Node2D" parent="."]
position = Vector2(23, 0)
[node name="Marker2D" type="Marker2D" parent="Arm"]
position = Vector2(-130, 0)

View file

@ -0,0 +1,101 @@
[gd_scene load_steps=19 format=3 uid="uid://cvg4akmwt77sx"]
[ext_resource type="Script" path="res://Scripts/enemy.gd" id="1_kdxi1"]
[ext_resource type="Texture2D" uid="uid://dw3bcaslqj467" path="res://Textures/Coin/Coin 1.png" id="2_s8unv"]
[ext_resource type="Texture2D" uid="uid://cnpg71q8pydtg" path="res://Textures/Coin/Coin 2.png" id="3_mlxhs"]
[ext_resource type="Texture2D" uid="uid://c0kygvqnsfse5" path="res://Textures/Coin/Coin 3.png" id="4_lo4ud"]
[ext_resource type="Texture2D" uid="uid://c21ggslv66qpg" path="res://Textures/Coin/Coin 4.png" id="5_g16sj"]
[ext_resource type="Texture2D" uid="uid://dn2vx0de2c724" path="res://Textures/Coin/Coin 5.png" id="6_06yps"]
[ext_resource type="Texture2D" uid="uid://cro4ea1qh3kj8" path="res://Textures/Coin/Coin 6.png" id="7_3470u"]
[ext_resource type="Texture2D" uid="uid://bb8bpnqbtgd0x" path="res://Textures/Coin/Coin 7.png" id="8_1q3om"]
[ext_resource type="Texture2D" uid="uid://d0lqxih7m0e5w" path="res://Textures/Coin/Coin 8.png" id="9_8niih"]
[ext_resource type="Texture2D" uid="uid://c8w32asukhshm" path="res://Textures/Coin/Coin 9.png" id="10_urhte"]
[ext_resource type="Texture2D" uid="uid://cjsoadwiu0248" path="res://Textures/Coin/Coin 10.png" id="11_kmbik"]
[ext_resource type="Texture2D" uid="uid://l2jd4lf4x4ip" path="res://Textures/Coin/Coin 11.png" id="12_lxhk4"]
[ext_resource type="Texture2D" uid="uid://damvch2xehg0m" path="res://Textures/Coin/Coin 12.png" id="13_cymrp"]
[ext_resource type="Texture2D" uid="uid://ctmtjvr8jqpq" path="res://Textures/Coin/Coin 13.png" id="14_oeilk"]
[ext_resource type="Texture2D" uid="uid://vm6wphb3xf2s" path="res://Textures/Coin/Coin 14.png" id="15_8wghn"]
[ext_resource type="Texture2D" uid="uid://ct2oc7jj6u6n3" path="res://Textures/Coin/Coin 15.png" id="16_52kjy"]
[sub_resource type="SpriteFrames" id="SpriteFrames_bx8oo"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_s8unv")
}, {
"duration": 1.0,
"texture": ExtResource("3_mlxhs")
}, {
"duration": 1.0,
"texture": ExtResource("4_lo4ud")
}, {
"duration": 1.0,
"texture": ExtResource("5_g16sj")
}, {
"duration": 1.0,
"texture": ExtResource("6_06yps")
}, {
"duration": 1.0,
"texture": ExtResource("7_3470u")
}, {
"duration": 1.0,
"texture": ExtResource("8_1q3om")
}, {
"duration": 1.0,
"texture": ExtResource("9_8niih")
}, {
"duration": 1.0,
"texture": ExtResource("10_urhte")
}, {
"duration": 1.0,
"texture": ExtResource("11_kmbik")
}, {
"duration": 1.0,
"texture": ExtResource("12_lxhk4")
}, {
"duration": 1.0,
"texture": ExtResource("13_cymrp")
}, {
"duration": 1.0,
"texture": ExtResource("14_oeilk")
}, {
"duration": 1.0,
"texture": ExtResource("15_8wghn")
}, {
"duration": 1.0,
"texture": ExtResource("16_52kjy")
}],
"loop": true,
"name": &"default",
"speed": 7.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_rhob5"]
size = Vector2(28, 28)
[node name="SmallEnemy" type="RigidBody2D" groups=["Enemy"]]
collision_layer = 3
collision_mask = 3
mass = 10.0
gravity_scale = 0.0
lock_rotation = true
contact_monitor = true
max_contacts_reported = 1
script = ExtResource("1_kdxi1")
Speed = 500
Health = 3
ScoreAmount = 100
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(0.03, 0.03)
sprite_frames = SubResource("SpriteFrames_bx8oo")
autoplay = "default"
frame_progress = 0.44266
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_rhob5")
[node name="Arm" type="Node2D" parent="."]
[node name="Marker2D" type="Marker2D" parent="Arm"]
position = Vector2(-130, 0)

View file

@ -0,0 +1,117 @@
[gd_scene load_steps=17 format=3 uid="uid://sukfq8clv4s0"]
[ext_resource type="Texture2D" uid="uid://xlfmu7wr8mhb" path="res://Textures/Level01/Sky2.png" id="1_4a42c"]
[ext_resource type="Texture2D" uid="uid://88sgqxmugeto" path="res://Textures/Level01/Sky1.png" id="2_vchpd"]
[ext_resource type="Texture2D" uid="uid://w527cw3q2qhm" path="res://Textures/Level01/Sky3.png" id="3_2h5vj"]
[ext_resource type="PackedScene" uid="uid://b6gjwbfujf38y" path="res://Scenes/heads_up_display.tscn" id="4_fiy6t"]
[ext_resource type="PackedScene" uid="uid://bjbccem28ir8r" path="res://Scenes/player.tscn" id="5_dh16x"]
[ext_resource type="PackedScene" uid="uid://dguvnd4wmo35j" path="res://Scenes/enemy_waves.tscn" id="6_7y0em"]
[ext_resource type="PackedScene" uid="uid://baqm758lyy4o3" path="res://Scenes/Waves/Level 01/sample_shooting.tscn" id="7_4pyr6"]
[ext_resource type="PackedScene" uid="uid://bkm7p6iqiqm21" path="res://Scenes/Waves/Level 01/sample.tscn" id="7_gs225"]
[ext_resource type="PackedScene" uid="uid://b8vxsep2lvw3a" path="res://Scenes/Waves/begin.tscn" id="8_3hfxd"]
[ext_resource type="PackedScene" uid="uid://bd0ehge1veq56" path="res://Scenes/Waves/end.tscn" id="9_a1qi8"]
[ext_resource type="PackedScene" uid="uid://dyqnmrhflct7u" path="res://Scenes/Waves/Level 01/sample_behind.tscn" id="9_ggr54"]
[sub_resource type="Gradient" id="Gradient_ay0jx"]
colors = PackedColorArray(0, 0.172549, 1, 1, 0, 0.623529, 1, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_1gw3d"]
gradient = SubResource("Gradient_ay0jx")
width = 1280
height = 720
fill_from = Vector2(1, 1)
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ctueq"]
particle_flag_disable_z = true
emission_shape = 3
emission_box_extents = Vector3(1, 360, 1)
angle_min = 1.07288e-05
angle_max = 1.07288e-05
inherit_velocity_ratio = 1.0
direction = Vector3(-1, 0, 0)
spread = 0.0
initial_velocity_min = 25.0
initial_velocity_max = 75.0
gravity = Vector3(0, 0, 0)
scale_max = 2.0
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_dvhti"]
particle_flag_disable_z = true
emission_shape = 3
emission_box_extents = Vector3(1, 360, 1)
angle_min = 1.07288e-05
angle_max = 1.07288e-05
inherit_velocity_ratio = 1.0
direction = Vector3(-1, 0, 0)
spread = 0.0
initial_velocity_min = 100.0
initial_velocity_max = 250.0
gravity = Vector3(0, 0, 0)
scale_min = 0.8
scale_max = 1.3
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_4312q"]
particle_flag_disable_z = true
emission_shape = 3
emission_box_extents = Vector3(1, 360, 1)
angle_min = 1.07288e-05
angle_max = 1.07288e-05
inherit_velocity_ratio = 1.0
direction = Vector3(-1, 0, 0)
spread = 0.0
initial_velocity_min = 50.0
initial_velocity_max = 1000.0
gravity = Vector3(0, 0, 0)
scale_min = 0.3
scale_max = 1.1
[node name="Level 01" type="Node2D"]
[node name="Background" type="Node2D" parent="."]
[node name="TextureRect" type="TextureRect" parent="Background"]
offset_right = 40.0
offset_bottom = 40.0
texture = SubResource("GradientTexture2D_1gw3d")
[node name="SlowestClouds" type="GPUParticles2D" parent="Background"]
position = Vector2(1800, 360)
amount = 40
process_material = SubResource("ParticleProcessMaterial_ctueq")
texture = ExtResource("1_4a42c")
lifetime = 480.0
preprocess = 120.0
visibility_rect = Rect2(-2000, -2000, 4000, 4000)
[node name="SlowClouds" type="GPUParticles2D" parent="Background"]
position = Vector2(1800, 360)
amount = 20
process_material = SubResource("ParticleProcessMaterial_dvhti")
texture = ExtResource("2_vchpd")
lifetime = 120.0
preprocess = 40.0
visibility_rect = Rect2(-2000, -2000, 4000, 4000)
[node name="FastClouds" type="GPUParticles2D" parent="Background"]
position = Vector2(1800, 360)
amount = 40
process_material = SubResource("ParticleProcessMaterial_4312q")
texture = ExtResource("3_2h5vj")
lifetime = 40.0
preprocess = 10.0
visibility_rect = Rect2(-2000, -2000, 4000, 4000)
[node name="HeadsUpDisplay" parent="." instance=ExtResource("4_fiy6t")]
[node name="Player" parent="." instance=ExtResource("5_dh16x")]
position = Vector2(157, 279)
slide_on_ceiling = false
[node name="EnemyWaves" parent="." instance=ExtResource("6_7y0em")]
WaveWaits = Array[float]([0.0, 7.0, 4.0])
WaveScenes = Array[PackedScene]([ExtResource("7_4pyr6"), ExtResource("7_gs225"), ExtResource("9_ggr54")])
BeginningFade = ExtResource("8_3hfxd")
EndingFadeTime = 5.0
EndingFade = ExtResource("9_a1qi8")
[connection signal="PlayerTookDamage" from="Player" to="HeadsUpDisplay" method="_on_player_player_took_damage"]

View file

@ -0,0 +1,33 @@
[gd_scene load_steps=2 format=3 uid="uid://bkm7p6iqiqm21"]
[ext_resource type="PackedScene" uid="uid://8l43dsk30uq3" path="res://Scenes/Enemies/enemy.tscn" id="1_qilfm"]
[node name="SampleNoAnim" type="Node2D"]
[node name="Enemy" parent="." instance=ExtResource("1_qilfm")]
position = Vector2(1358, 350)
Speed = 400
[node name="Enemy2" parent="." instance=ExtResource("1_qilfm")]
position = Vector2(1394, 242)
Speed = 400
[node name="Enemy3" parent="." instance=ExtResource("1_qilfm")]
position = Vector2(1388, 441)
Speed = 400
[node name="Enemy4" parent="." instance=ExtResource("1_qilfm")]
position = Vector2(1425, 533)
Speed = 200
[node name="Enemy5" parent="." instance=ExtResource("1_qilfm")]
position = Vector2(1460, 625)
Speed = 200
[node name="Enemy6" parent="." instance=ExtResource("1_qilfm")]
position = Vector2(1436, 148)
Speed = 200
[node name="Enemy7" parent="." instance=ExtResource("1_qilfm")]
position = Vector2(1480, 56)
Speed = 200

View file

@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://dyqnmrhflct7u"]
[ext_resource type="PackedScene" uid="uid://8l43dsk30uq3" path="res://Scenes/Enemies/enemy.tscn" id="1_f6jx0"]
[ext_resource type="PackedScene" uid="uid://bki7jjuvugscj" path="res://Scenes/Enemies/shooting_enemy.tscn" id="2_fnekj"]
[node name="SampleBehind" type="Node2D"]
[node name="Enemy" parent="." instance=ExtResource("1_f6jx0")]
position = Vector2(-74, 175)
Direction = Vector2(1, 0)
[node name="Enemy2" parent="." instance=ExtResource("1_f6jx0")]
position = Vector2(-79, 266)
Direction = Vector2(1, 0)
[node name="ShootingEnemy" parent="." instance=ExtResource("2_fnekj")]
position = Vector2(-173, 589)
Direction = Vector2(1, 0)

View file

@ -0,0 +1,15 @@
[gd_scene load_steps=2 format=3 uid="uid://baqm758lyy4o3"]
[ext_resource type="PackedScene" uid="uid://bki7jjuvugscj" path="res://Scenes/Enemies/shooting_enemy.tscn" id="1_5prw6"]
[node name="SampleNoAnimShooting" type="Node2D"]
[node name="ShootingEnemy" parent="." instance=ExtResource("1_5prw6")]
position = Vector2(1394, 83)
[node name="ShootingEnemy2" parent="." instance=ExtResource("1_5prw6")]
position = Vector2(1391, 212)
[node name="ShootingEnemy3" parent="." instance=ExtResource("1_5prw6")]
position = Vector2(1386, 342)
BulletDirection = 90.0

View file

@ -0,0 +1,53 @@
[gd_scene load_steps=5 format=3 uid="uid://b8vxsep2lvw3a"]
[ext_resource type="Script" path="res://Scripts/beginning&end.gd" id="1_r5omd"]
[sub_resource type="Animation" id="Animation_hbbht"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:color")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0, 0, 0, 1)]
}
[sub_resource type="Animation" id="Animation_xpd8i"]
resource_name = "anim"
length = 3.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:color")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_gul8r"]
_data = {
"RESET": SubResource("Animation_hbbht"),
"anim": SubResource("Animation_xpd8i")
}
[node name="Begin" type="Node2D"]
script = ExtResource("1_r5omd")
[node name="ColorRect" type="ColorRect" parent="."]
offset_right = 1280.0
offset_bottom = 720.0
color = Color(0, 0, 0, 1)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_gul8r")
}

View file

@ -0,0 +1,67 @@
[gd_scene load_steps=5 format=3 uid="uid://bd0ehge1veq56"]
[ext_resource type="Script" path="res://Scripts/beginning&end.gd" id="1_neulq"]
[sub_resource type="Animation" id="Animation_wxjil"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:color")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0, 0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_l8o88"]
resource_name = "end"
length = 3.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(2.99),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"NextLevel"
}]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ColorRect:color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_q6a5y"]
_data = {
"RESET": SubResource("Animation_wxjil"),
"anim": SubResource("Animation_l8o88")
}
[node name="End" type="Node2D"]
script = ExtResource("1_neulq")
[node name="ColorRect" type="ColorRect" parent="."]
offset_right = 1280.0
offset_bottom = 720.0
color = Color(0, 0, 0, 0)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_q6a5y")
}

View file

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dguvnd4wmo35j"]
[ext_resource type="Script" path="res://Scripts/enemy_waves.gd" id="1_nghhd"]
[node name="EnemyWaves" type="Node2D"]
script = ExtResource("1_nghhd")

View file

@ -0,0 +1,101 @@
[gd_scene load_steps=9 format=3 uid="uid://b6gjwbfujf38y"]
[ext_resource type="Script" path="res://Scripts/heads_up_display.gd" id="1_u3slv"]
[ext_resource type="Texture2D" uid="uid://8s5wyy4abpnr" path="res://Textures/Hud.png" id="2_m85kq"]
[ext_resource type="Texture2D" uid="uid://cunprfaqhrw10" path="res://Textures/Hudfill.png" id="4_bo16e"]
[sub_resource type="LabelSettings" id="LabelSettings_kfuc0"]
font_size = 30
font_color = Color(0.73, 0.73, 0, 1)
outline_size = 1
outline_color = Color(0, 1, 0, 1)
shadow_color = Color(0, 0, 0, 1)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_rarxg"]
normal = Vector2(1, 0)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_cmc0f"]
normal = Vector2(0, 1)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_hgweh"]
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_qyvfk"]
normal = Vector2(-1, 0)
[node name="HeadsUpDisplay" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_u3slv")
[node name="Container" type="Control" parent="."]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="TextureRect" type="TextureRect" parent="Container"]
layout_mode = 0
offset_top = -28.0
offset_right = 1280.0
offset_bottom = 692.0
texture = ExtResource("2_m85kq")
expand_mode = 3
[node name="Sprite2D" type="Sprite2D" parent="Container"]
position = Vector2(135, 37)
scale = Vector2(0.0950521, 0.0962963)
texture = ExtResource("4_bo16e")
[node name="Sprite2D2" type="Sprite2D" parent="Container"]
position = Vector2(312, 37)
scale = Vector2(0.0950521, 0.0962963)
texture = ExtResource("4_bo16e")
[node name="Sprite2D3" type="Sprite2D" parent="Container"]
position = Vector2(488, 37)
scale = Vector2(0.0950521, 0.0962963)
texture = ExtResource("4_bo16e")
[node name="Label" type="Label" parent="Container"]
layout_mode = 0
offset_left = 712.0
offset_top = 18.0
offset_right = 1205.0
offset_bottom = 63.0
text = "1234567890"
label_settings = SubResource("LabelSettings_kfuc0")
horizontal_alignment = 2
uppercase = true
[node name="Wall" type="StaticBody2D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Wall"]
shape = SubResource("WorldBoundaryShape2D_rarxg")
[node name="Wall2" type="StaticBody2D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Wall2"]
shape = SubResource("WorldBoundaryShape2D_cmc0f")
[node name="Wall3" type="StaticBody2D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Wall3"]
position = Vector2(1280, 720)
shape = SubResource("WorldBoundaryShape2D_hgweh")
[node name="Wall4" type="StaticBody2D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Wall4"]
position = Vector2(1280, 720)
shape = SubResource("WorldBoundaryShape2D_qyvfk")

248
Project/Scenes/player.tscn Normal file
View file

@ -0,0 +1,248 @@
[gd_scene load_steps=14 format=3 uid="uid://bjbccem28ir8r"]
[ext_resource type="Script" path="res://Scripts/player.gd" id="1_2bkpj"]
[ext_resource type="PackedScene" uid="uid://do4a4d3u60iy1" path="res://Scenes/Bullets/bullet.tscn" id="2_ogm6h"]
[ext_resource type="Texture2D" uid="uid://c5kt81t5h4vgn" path="res://Textures/Plane/Plane.png" id="3_5g2vf"]
[ext_resource type="AudioStream" uid="uid://dg1f8fv4a2jdm" path="res://Sound/Explosion.ogg" id="3_apj4i"]
[ext_resource type="Texture2D" uid="uid://bcbjh2amre7ke" path="res://Textures/Plane/PlaneUp.png" id="3_t0dqt"]
[ext_resource type="AudioStream" uid="uid://do4a5aj5a0216" path="res://Sound/Shoot.ogg" id="4_m3gyy"]
[ext_resource type="Texture2D" uid="uid://bff4pkabs2ecf" path="res://Textures/Plane/PlaneDown.png" id="5_ylcev"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_u1ywu"]
size = Vector2(220, 68)
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_xtmdc"]
particle_flag_disable_z = true
emission_shape = 3
emission_box_extents = Vector3(0, 12, 1)
direction = Vector3(-1, 0, 0)
spread = 0.0
initial_velocity_min = 650.0
initial_velocity_max = 650.0
gravity = Vector3(0, 0, 0)
scale_max = 8.0
color = Color(0.513233, 0.513233, 0.513233, 1)
[sub_resource type="Animation" id="Animation_bb0i0"]
resource_name = "Death"
length = 5.0
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(3),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("GPUParticles2D2:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(3),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("GPUParticles2D:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(3),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("ColorRect:color")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(3, 5),
"transitions": PackedFloat32Array(1, 2),
"update": 0,
"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 1)]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(4.99),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"GoToScene"
}]
}
[sub_resource type="Animation" id="Animation_vh54h"]
resource_name = "Hit"
length = 3.01
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.392157), Color(1, 1, 1, 1), Color(1, 1, 1, 0.392157), Color(1, 1, 1, 1), Color(1, 1, 1, 0.392157), Color(1, 1, 1, 1), Color(1, 1, 1, 0.392157), Color(1, 1, 1, 1), Color(1, 1, 1, 0.392157), Color(1, 1, 1, 1), Color(1, 1, 1, 0.392157), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_gbl2x"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("GPUParticles2D2:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("GPUParticles2D:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("ColorRect:color")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0, 0, 0, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".:modulate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vkafp"]
_data = {
"Death": SubResource("Animation_bb0i0"),
"Hit": SubResource("Animation_vh54h"),
"RESET": SubResource("Animation_gbl2x")
}
[node name="Player" type="CharacterBody2D" groups=["Player"]]
collision_layer = 4
collision_mask = 4
motion_mode = 1
script = ExtResource("1_2bkpj")
Speed = 400
Bullet = ExtResource("2_ogm6h")
FireRate = 0.04
PlaneUp = ExtResource("3_t0dqt")
PlaneNeutral = ExtResource("3_5g2vf")
PlaneDown = ExtResource("5_ylcev")
[node name="Area2D" type="Area2D" parent="."]
position = Vector2(3, 3)
[node name="EnemyCollider" type="CollisionShape2D" parent="Area2D"]
position = Vector2(0.5, 3.5)
shape = SubResource("RectangleShape2D_u1ywu")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="Area2D"]
stream = ExtResource("3_apj4i")
[node name="Gun" type="Node2D" parent="."]
position = Vector2(1, 1)
[node name="Marker2D" type="Marker2D" parent="Gun"]
position = Vector2(85, 33)
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="Gun"]
stream = ExtResource("4_m3gyy")
volume_db = -20.0
max_polyphony = 2
[node name="GPUParticles2D2" type="GPUParticles2D" parent="."]
position = Vector2(-58, -16)
amount = 500
amount_ratio = 0.66
process_material = SubResource("ParticleProcessMaterial_xtmdc")
lifetime = 5.0
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(7, 16)
scale = Vector2(0.12, 0.12)
texture = ExtResource("3_5g2vf")
[node name="WallCollider" type="CollisionShape2D" parent="."]
position = Vector2(4, 7)
shape = SubResource("RectangleShape2D_u1ywu")
[node name="GPUParticles2D" type="GPUParticles2D" parent="."]
position = Vector2(-70, -10)
amount = 500
amount_ratio = 0.66
process_material = SubResource("ParticleProcessMaterial_xtmdc")
lifetime = 5.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_vkafp")
}
[node name="ColorRect" type="ColorRect" parent="."]
offset_left = -5000.0
offset_top = -5000.0
offset_right = 5000.0
offset_bottom = 5000.0
color = Color(0, 0, 0, 0)
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]

View file

@ -0,0 +1,11 @@
extends Node2D
@onready var Animator = get_node("AnimationPlayer")
func _ready():
Animator.play("anim")
func NextLevel():
Global.CurrentLevel += 1
# take a look at the file and change it according to your naming scheme.
get_tree().change_scene_to_file("res://Scenes/level_0" + var_to_str(Global.CurrentLevel) + ".tscn")

40
Project/Scripts/bullet.gd Normal file
View file

@ -0,0 +1,40 @@
extends RigidBody2D
var Speed = 1200
var DespawnTimer: float = 5
var timer: float = 0
@export var EnemyBullet: bool = false
# rotato is here to fix a fucking bug. Thanks engine!
@export var rotato: float
var Direction: Vector2 = Vector2(0, 0)
func _integrate_forces(_state: PhysicsDirectBodyState2D):
self.linear_velocity = Direction * Speed
self.rotation_degrees = rotato
# Direction using trig
Direction = Vector2(cos(deg_to_rad(rotato)), sin(deg_to_rad(rotato)))
# Flip it correctly when rotated
if rotato > 90 and rotato <= 270:
get_node("Sprite2D").flip_v = true
func _physics_process(delta: float):
# Despawn to stop game from lagging
timer += delta
if timer >= DespawnTimer:
self.queue_free()
func _on_body_entered(body: Node) -> void:
# Bullets collide into each other sometimes. Remove it by putting bullets into a group.
if !body.is_in_group("Bullet") and EnemyBullet != true and body.is_in_group("Enemy"):
body.set("Health", body.get("Health") - 1)
get_node("AudioStreamPlayer").play()
DespawnTimer = timer + 1
# Don't disappear the bullet, the Audio needs to play!
self.collision_layer = 0b0000
self.collision_mask = 0b0000
self.visible = false
# for the player
elif !body.is_in_group("Bullet") and EnemyBullet == true and body.is_in_group("Player"):
body.TakeDamage()

59
Project/Scripts/enemy.gd Normal file
View file

@ -0,0 +1,59 @@
extends RigidBody2D
@export_category("Basic Stuff")
@export var Speed: int = 250
@export var Health: int = 5
@export var Direction: Vector2 = Vector2(-1, 0)
@export var ScoreAmount: int = 200
@export_category("Shooting")
@export var IsShooting: bool = false
@export var Bullet: PackedScene
@export var FireSpeed: float = 1
@export_range(0, 360) var BulletDirection: float = 0
var FireTimer: float = 0
@export_category("Other")
@export var IsBoss: bool = false
var DespawnTimer: float = 0
func _ready():
get_node("Arm").rotation_degrees = -BulletDirection
if Direction.x == 1:
get_node("AnimatedSprite2D").flip_h = true
func _integrate_forces(_state: PhysicsDirectBodyState2D):
self.linear_velocity = Direction * Speed
func _process(delta: float):
# Despawning
DespawnTimer += delta
# Despawn to free up processing time
if DespawnTimer >= 30 and IsBoss == false:
self.queue_free()
# Shooting
if IsShooting == true:
FireTimer += delta
if FireTimer >= FireSpeed:
var bullet = Bullet.instantiate()
bullet.rotato = -BulletDirection + 180
bullet.transform = get_node("Arm/Marker2D").global_transform
get_tree().current_scene.add_child(bullet)
FireTimer = 0
# Death
if Health <= 0:
Global.TotalScore += ScoreAmount
if IsBoss == true:
Despawn()
else:
self.queue_free()
# FOR ANIMATION ONLY
func Despawn():
self.queue_free()
# Laziness. Gets the waves.
get_tree().current_scene.get_node("EnemyWaves").WaveWaits[get_tree().current_scene.get_node("EnemyWaves").CurrentWave] = 0

View file

@ -0,0 +1,44 @@
extends Node2D
# Wave stuff.
@export_category("Waves")
@export var WaveWaits: Array[float]
@export var WaveScenes: Array[PackedScene]
var WaveTimer: float = 0
var CurrentWave: int = 0
# Start to make sure no other waves spawn when fading.
var Start: bool = false
# Fading happens at the beginning and end of the level.
@export_category("Fading")
@export var BeginningFades: bool = true
@export var BeginningFadeTime: float = 3
@export var BeginningFade: PackedScene
@export var EndingFades: bool = true
@export var EndingFadeTime: float = 3
@export var EndingFade: PackedScene
func _ready():
# This addition here is to make sure that the fade completes.
if WaveWaits.size() != WaveScenes.size():
push_error("The WaveWaits and the WaveScenes don't line up! Are you missing something?")
if BeginningFades == true:
Spawn(BeginningFade)
func _process(delta: float):
WaveTimer += delta
if Start == false and WaveTimer >= BeginningFadeTime:
Start = true
WaveTimer = 0
if CurrentWave != WaveScenes.size() and Start == true:
if WaveTimer >= WaveWaits[CurrentWave]:
Spawn(WaveScenes[CurrentWave])
CurrentWave += 1
if CurrentWave == WaveScenes.size() and WaveTimer >= EndingFadeTime:
Spawn(EndingFade)
func Spawn(Wave: PackedScene):
var thing = Wave.instantiate()
self.add_child(thing)
thing.transform = self.global_transform
WaveTimer = 0

View file

@ -0,0 +1,4 @@
extends Node
var TotalScore: int = 0
var CurrentLevel: int = 1

View file

@ -0,0 +1,15 @@
extends Control
# change the hud if the player takes damage
func _on_player_player_took_damage(Health: int):
match Health:
2:
get_node("Container/Sprite2D3").visible = false
1:
get_node("Container/Sprite2D2").visible = false
0:
get_node("Container/Sprite2D").visible = false
func _process(_delta: float):
get_node("Container/Label").text = str(Global.TotalScore)

95
Project/Scripts/player.gd Normal file
View file

@ -0,0 +1,95 @@
extends CharacterBody2D
@export_category("Basic")
@export var Health: int = 3
@export var Speed: int
@export var InvulnerabilityTime: int = 3
var Invulnerable: bool = false
var InvulnerabilityTimer: float = 0
@export_category("Shooting")
@export var Bullet: PackedScene
@export var FireRate: float
var FireRateTimer: float
@export_category("Images")
@export var PlaneUp: CompressedTexture2D
@export var PlaneNeutral: CompressedTexture2D
@export var PlaneDown: CompressedTexture2D
@export_category("Other")
@export var OnDeathScene: PackedScene
var PlayerControl: bool = true
signal PlayerTookDamage(Health: int)
func _physics_process(delta: float) -> void:
FireRateTimer += delta
# Invulnerability. This is the segment that runs after taking damage.
if Invulnerable == true:
InvulnerabilityTimer += delta
if InvulnerabilityTimer >= InvulnerabilityTime:
Invulnerable = false
InvulnerabilityTimer = 0
if PlayerControl:
# Movement
var SpeedUp = Input.get_action_raw_strength("SpeedUp")
var xdirection = Input.get_axis("Left", "Right")
var ydirection = Input.get_axis("Up", "Down")
if xdirection || ydirection:
self.velocity = Vector2(xdirection, ydirection).normalized() * Speed * (SpeedUp + 1)
# Adjust sprites on movement
if ydirection == 1:
get_node("Sprite2D").texture = PlaneDown
elif ydirection == -1:
get_node("Sprite2D").texture = PlaneUp
else:
get_node("Sprite2D").texture = PlaneNeutral
else:
# Stop the plane on not moving
self.velocity.x = move_toward(velocity.x, 0, Speed)
self.velocity.y = move_toward(velocity.y, 0, Speed)
# yes, this has to be here. I know, really stupid.
get_node("Sprite2D").texture = PlaneNeutral
# Shooting
if Input.get_action_raw_strength("Shoot") && FireRateTimer >= FireRate:
var bullet = Bullet.instantiate()
bullet.transform = get_node("Gun/Marker2D").global_transform
get_tree().current_scene.add_child(bullet)
FireRateTimer = 0
get_node("Gun/AudioStreamPlayer").play()
# If the player losses control (because they are dead)
else:
@warning_ignore("integer_division")
self.velocity.y = Speed / 2
self.velocity.x = move_toward(velocity.x, 0, Speed)
# Don't use move_and_collide() because it sticks to the walls.
move_and_slide()
# If an enemy collides into the player, they run this function.
func TakeDamage():
Health -= 1
Invulnerable = true
PlayerTookDamage.emit(Health)
get_node("Area2D/AudioStreamPlayer").play()
if Health == 0:
PlayerControl = false
get_node("AnimationPlayer").play("Death")
# Invulnerable so that way you won't be annoyed.
InvulnerabilityTime = 5
Invulnerable = true
else:
get_node("AnimationPlayer").play("Hit")
func _on_area_2d_body_entered(_body: Node2D):
if Invulnerable != true:
TakeDamage()
func GoToScene():
get_tree().change_scene_to_packed(OnDeathScene)

BIN
Project/Sound/Explosion.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dg1f8fv4a2jdm"
path="res://.godot/imported/Explosion.ogg-76a64175d2e606bc2460caa0820fe595.oggvorbisstr"
[deps]
source_file="res://Sound/Explosion.ogg"
dest_files=["res://.godot/imported/Explosion.ogg-76a64175d2e606bc2460caa0820fe595.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

BIN
Project/Sound/HitHurt.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://b4r0manp60hb4"
path="res://.godot/imported/HitHurt.ogg-2a583b9aec11a8462b2fcffdb56bf141.oggvorbisstr"
[deps]
source_file="res://Sound/HitHurt.ogg"
dest_files=["res://.godot/imported/HitHurt.ogg-2a583b9aec11a8462b2fcffdb56bf141.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

BIN
Project/Sound/Shoot.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://do4a5aj5a0216"
path="res://.godot/imported/Shoot.ogg-cdfe63fa3222cfd5421dd092c227b166.oggvorbisstr"
[deps]
source_file="res://Sound/Shoot.ogg"
dest_files=["res://.godot/imported/Shoot.ogg-cdfe63fa3222cfd5421dd092c227b166.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://712ydomf0toh"
path="res://.godot/imported/Warning.ogg-61ef46343fb335fec2c2fa977b0a5d2d.oggvorbisstr"
[deps]
source_file="res://Sound/Warning.ogg"
dest_files=["res://.godot/imported/Warning.ogg-61ef46343fb335fec2c2fa977b0a5d2d.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://hfgqomflicxl"
path="res://.godot/imported/fire-truck-siren-29900.ogg-293920dfe65a6aa575457bf522aadf53.oggvorbisstr"
[deps]
source_file="res://Sound/fire-truck-siren-29900.ogg"
dest_files=["res://.godot/imported/fire-truck-siren-29900.ogg-293920dfe65a6aa575457bf522aadf53.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

BIN
Project/Textures/Bullet.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d07qtvmhqjjts"
path="res://.godot/imported/Bullet.png-32941e411708a571ab6cd2dd7dcde3b0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Bullet.png"
dest_files=["res://.godot/imported/Bullet.png-32941e411708a571ab6cd2dd7dcde3b0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5159e2056ed8d6e528076e919d7727d352b4f863b0cd8b34aecfd217ea44341f
size 574469

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dw3bcaslqj467"
path="res://.godot/imported/Coin 1.png-3d08bfc7055a8a4f1dfe05ea2e4faac6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 1.png"
dest_files=["res://.godot/imported/Coin 1.png-3d08bfc7055a8a4f1dfe05ea2e4faac6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5ec55e7cc867c7dc51fbbedc0e350a801a0ae859070d76b36eaea13225e15216
size 328932

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cjsoadwiu0248"
path="res://.godot/imported/Coin 10.png-f7e97b048b4c09d2d9ecaa42cd379d0d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 10.png"
dest_files=["res://.godot/imported/Coin 10.png-f7e97b048b4c09d2d9ecaa42cd379d0d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a95d5c2cd32440e95e69e3b613c198cbe2e7b2074b5f12cae1edf19125f0ca47
size 404175

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://l2jd4lf4x4ip"
path="res://.godot/imported/Coin 11.png-bed7782e94484007d962c4cbaee76c7b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 11.png"
dest_files=["res://.godot/imported/Coin 11.png-bed7782e94484007d962c4cbaee76c7b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:146c390f15ebc388158c834a7e5155c0988a651486ea0f659edb0bccae65d444
size 587659

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://damvch2xehg0m"
path="res://.godot/imported/Coin 12.png-18d002744ae28a9d1c6f649b2d83c4a8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 12.png"
dest_files=["res://.godot/imported/Coin 12.png-18d002744ae28a9d1c6f649b2d83c4a8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9c2ffe448d58467961c8f09a52e5b7447f6f56a737135fee8e69a2a7d1c30186
size 518720

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ctmtjvr8jqpq"
path="res://.godot/imported/Coin 13.png-5f6d470fdd97dbe3b1084a2e82f112d1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 13.png"
dest_files=["res://.godot/imported/Coin 13.png-5f6d470fdd97dbe3b1084a2e82f112d1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9e68fd64c2df470d4770865372c879f198d7f60a31b3568953c9f64b28dbc06b
size 207390

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://vm6wphb3xf2s"
path="res://.godot/imported/Coin 14.png-be3a438ee73d66e751528b6bce811d45.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 14.png"
dest_files=["res://.godot/imported/Coin 14.png-be3a438ee73d66e751528b6bce811d45.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:82c120d19fd91d230006d74d2062e343ef5d22fb58049e4c45255cd91b8f8c2e
size 487214

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ct2oc7jj6u6n3"
path="res://.godot/imported/Coin 15.png-917ad0398ea7b5ccdafedbe9e8a95fed.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 15.png"
dest_files=["res://.godot/imported/Coin 15.png-917ad0398ea7b5ccdafedbe9e8a95fed.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8a2e0b9e1f1670bde8cf3dd14af8bfb46b0612ec72a9be168aed4372d1a80f8f
size 482564

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnpg71q8pydtg"
path="res://.godot/imported/Coin 2.png-528a0bb81d96b26766037b8e21307fc5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 2.png"
dest_files=["res://.godot/imported/Coin 2.png-528a0bb81d96b26766037b8e21307fc5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:461a6d7943c08ee5c04d5ca9b1fda5241af787ce53f78d37fd2b38523e393afb
size 208879

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c0kygvqnsfse5"
path="res://.godot/imported/Coin 3.png-32019c35f5dd0bb41d17f14e216f186e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 3.png"
dest_files=["res://.godot/imported/Coin 3.png-32019c35f5dd0bb41d17f14e216f186e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2d04565a85ebd734815ba631e3823bb587be6f7351ab0f1b49673000ca241e64
size 527753

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c21ggslv66qpg"
path="res://.godot/imported/Coin 4.png-96cec979d5f038996ba567f48f5fd065.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 4.png"
dest_files=["res://.godot/imported/Coin 4.png-96cec979d5f038996ba567f48f5fd065.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:89f3ac3d691e38509ff3cfd0b88d97a05a4a9690cf832803ceea3b8eed604550
size 580665

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dn2vx0de2c724"
path="res://.godot/imported/Coin 5.png-3739409acbbdd51fb37d694315b10bc7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 5.png"
dest_files=["res://.godot/imported/Coin 5.png-3739409acbbdd51fb37d694315b10bc7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f30a2d26c8321455a877172b870ac929819a68792b37e6f066a412af36a1bdad
size 396671

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cro4ea1qh3kj8"
path="res://.godot/imported/Coin 6.png-df1dc11f1b83a6e12de5662ad6327c0a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 6.png"
dest_files=["res://.godot/imported/Coin 6.png-df1dc11f1b83a6e12de5662ad6327c0a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e58c7ebf53d0680c8156fc2c3d59694af8841658db39d1eeb189a17186a0674c
size 336383

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bb8bpnqbtgd0x"
path="res://.godot/imported/Coin 7.png-df7b6295fee753ab33fb3b3cc18423ec.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 7.png"
dest_files=["res://.godot/imported/Coin 7.png-df7b6295fee753ab33fb3b3cc18423ec.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f71d179633789d385ba05954c154b4d06595c9517569c0b3a0633812bb320f1c
size 576934

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d0lqxih7m0e5w"
path="res://.godot/imported/Coin 8.png-75f6628e05f5f0059ae18297128c37b7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 8.png"
dest_files=["res://.godot/imported/Coin 8.png-75f6628e05f5f0059ae18297128c37b7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bfd73ec34d30fec09e8f0c6357e3d161082c42e1ed79206622794eedea39e73a
size 573455

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8w32asukhshm"
path="res://.godot/imported/Coin 9.png-5ca07d1ca06d0bd4fa7ca6396017801b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Coin/Coin 9.png"
dest_files=["res://.godot/imported/Coin 9.png-5ca07d1ca06d0bd4fa7ca6396017801b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
Project/Textures/Hud.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://8s5wyy4abpnr"
path="res://.godot/imported/Hud.png-748abe0950dc8a99d49dfe273c2cf2a4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Hud.png"
dest_files=["res://.godot/imported/Hud.png-748abe0950dc8a99d49dfe273c2cf2a4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cunprfaqhrw10"
path="res://.godot/imported/Hudfill.png-7f4021dc14001944b55dcd494854fd4f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Hudfill.png"
dest_files=["res://.godot/imported/Hudfill.png-7f4021dc14001944b55dcd494854fd4f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://88sgqxmugeto"
path="res://.godot/imported/Sky1.png-cab205266ad8cd3b6d25078675c69929.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Level01/Sky1.png"
dest_files=["res://.godot/imported/Sky1.png-cab205266ad8cd3b6d25078675c69929.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://xlfmu7wr8mhb"
path="res://.godot/imported/Sky2.png-fb9dab875d636c18dce0079797dbd2fd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Level01/Sky2.png"
dest_files=["res://.godot/imported/Sky2.png-fb9dab875d636c18dce0079797dbd2fd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://w527cw3q2qhm"
path="res://.godot/imported/Sky3.png-ff79e3870efa0ea93970f42b58b9b466.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Level01/Sky3.png"
dest_files=["res://.godot/imported/Sky3.png-ff79e3870efa0ea93970f42b58b9b466.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c5kt81t5h4vgn"
path="res://.godot/imported/Plane.png-5c9c0b3308e89dd147646ecbcc193908.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Plane/Plane.png"
dest_files=["res://.godot/imported/Plane.png-5c9c0b3308e89dd147646ecbcc193908.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bff4pkabs2ecf"
path="res://.godot/imported/PlaneDown.png-8fbd2c6958c47a626200124d11d90c7a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Plane/PlaneDown.png"
dest_files=["res://.godot/imported/PlaneDown.png-8fbd2c6958c47a626200124d11d90c7a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bcbjh2amre7ke"
path="res://.godot/imported/PlaneUp.png-227c2e1f35b0062363336996051130cc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Plane/PlaneUp.png"
dest_files=["res://.godot/imported/PlaneUp.png-227c2e1f35b0062363336996051130cc.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d657842c71aaf5b07abece8bfab7b581f08c3a5ad00edaac739e577819067b80
size 299127

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://blrbc8mp71nub"
path="res://.godot/imported/Route 1.png-977f100c944783b2e53bd51791e63a4e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 1.png"
dest_files=["res://.godot/imported/Route 1.png-977f100c944783b2e53bd51791e63a4e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f9b03d40fca9e21047e3a0ecb524a5e59e2b851de7e1628b61eef7f788d460fe
size 300999

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtgyeeu1t0n7h"
path="res://.godot/imported/Route 10.png-0cc49fca0eee426d95a25ee63247cf66.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 10.png"
dest_files=["res://.godot/imported/Route 10.png-0cc49fca0eee426d95a25ee63247cf66.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d4ac55b99376d1ad08337eb50c4bf103a5d8d3f383074ccd648f4983ad56f01b
size 299127

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b1xcgdrf6sdbp"
path="res://.godot/imported/Route 11.png-40851d05237185fde1281845e19fb965.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 11.png"
dest_files=["res://.godot/imported/Route 11.png-40851d05237185fde1281845e19fb965.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0fb45e62ff312251c7ec6ddbab45fe6fb37bb48aae54607599495c4ae0f9b605
size 299569

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cphw4low4de4b"
path="res://.godot/imported/Route 2.png-4b9b181badd0c7b00286db2f169d3838.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 2.png"
dest_files=["res://.godot/imported/Route 2.png-4b9b181badd0c7b00286db2f169d3838.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a3294b7fbd6fd23b5125f031db5b92f6d1ca5a2de0a0cb09505d52cc16685448
size 287668

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dwdn12rkkr1uo"
path="res://.godot/imported/Route 3.png-1151ddf1537952ae4e4668399e6bc755.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 3.png"
dest_files=["res://.godot/imported/Route 3.png-1151ddf1537952ae4e4668399e6bc755.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6549655f1890fddeac00dc0430a68343b66038fc02b9c4bef0c41124084647a4
size 260343

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bbupn4br1fog7"
path="res://.godot/imported/Route 4.png-b1b5ae61ec83ffde06ff3b641da4f972.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 4.png"
dest_files=["res://.godot/imported/Route 4.png-b1b5ae61ec83ffde06ff3b641da4f972.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4d0010a32e825ed0a0f0d8dc0322f29a17cac961759c0bab7c40e77d7350b872
size 271846

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://tfbp816emics"
path="res://.godot/imported/Route 5.png-c75d7e6aec21ee14265375e228ad3e2b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 5.png"
dest_files=["res://.godot/imported/Route 5.png-c75d7e6aec21ee14265375e228ad3e2b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:58c10cda4bb3078bf63f702a36d0958f541b745dd80f75bfaf33325535d40ba2
size 288000

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cl0sil1psnxs1"
path="res://.godot/imported/Route 6.png-0f058c5c49db8ea222fc5ac610aa2f07.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 6.png"
dest_files=["res://.godot/imported/Route 6.png-0f058c5c49db8ea222fc5ac610aa2f07.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:58f6ad84583f04a5ecd796d1973ce390e9200eb586c1ce893c0c25a9b84843c7
size 269505

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cgv78fuua01eg"
path="res://.godot/imported/Route 7.png-22d131c6138be95427e23d53d7ca813a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Route/Route 7.png"
dest_files=["res://.godot/imported/Route 7.png-22d131c6138be95427e23d53d7ca813a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:828d2b5be64e32c9c973d11a2a7acd8b9df8cfccaf1a373d5de6f8efbefac572
size 254498

Some files were not shown because too many files have changed in this diff Show more