clegg
4
.editorconfig
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
2
.gitattributes
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
/android/
|
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="mp3"
|
||||||
|
type="AudioStreamMP3"
|
||||||
|
uid="uid://cqgbxo5ljtst1"
|
||||||
|
path="res://.godot/imported/Jack Bros. (VB) OST - Level 2 (Grim Reaper's Cavern).mp3-3091257e7b0c23410e159691a08523a9.mp3str"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://audio/music/Jack Bros. (VB) OST - Level 2 (Grim Reaper's Cavern).mp3"
|
||||||
|
dest_files=["res://.godot/imported/Jack Bros. (VB) OST - Level 2 (Grim Reaper's Cavern).mp3-3091257e7b0c23410e159691a08523a9.mp3str"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
audio/sfx/graze.wav
Normal file
24
audio/sfx/graze.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://bv6v7v5dtvoii"
|
||||||
|
path="res://.godot/imported/graze.wav-b4966ab8ac14ec395505b34def6a89d2.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://audio/sfx/graze.wav"
|
||||||
|
dest_files=["res://.godot/imported/graze.wav-b4966ab8ac14ec395505b34def6a89d2.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
|
BIN
audio/sfx/jetpack.ogg
Normal file
19
audio/sfx/jetpack.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://bhy8i7yg863n3"
|
||||||
|
path="res://.godot/imported/jetpack.ogg-2c15c13295eac12b575c2dbc89333766.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://audio/sfx/jetpack.ogg"
|
||||||
|
dest_files=["res://.godot/imported/jetpack.ogg-2c15c13295eac12b575c2dbc89333766.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
loop_offset=0.6
|
||||||
|
bpm=0.0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
audio/sfx/key.ogg
Normal file
19
audio/sfx/key.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://c7h4qdg8gtnhk"
|
||||||
|
path="res://.godot/imported/key.ogg-8695dfd3e7e7137b1f9aef8dd154957d.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://audio/sfx/key.ogg"
|
||||||
|
dest_files=["res://.godot/imported/key.ogg-8695dfd3e7e7137b1f9aef8dd154957d.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
audio/sfx/se_g2.ogg
Normal file
19
audio/sfx/se_g2.ogg.import
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://ct82ub5u2uoly"
|
||||||
|
path="res://.godot/imported/se_g2.ogg-4df37f1bf3086aadd97a824097bb1dfa.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://audio/sfx/se_g2.ogg"
|
||||||
|
dest_files=["res://.godot/imported/se_g2.ogg-4df37f1bf3086aadd97a824097bb1dfa.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
BIN
ball_world.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
34
ball_world.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ckoq6h6nlyhq4"
|
||||||
|
path="res://.godot/imported/ball_world.png-014544f3f3132b720d65f63b82ca932b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://ball_world.png"
|
||||||
|
dest_files=["res://.godot/imported/ball_world.png-014544f3f3132b720d65f63b82ca932b.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
|
28
bat/bat.gd
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
@onready var startpos = position
|
||||||
|
@export var speed = 1.0
|
||||||
|
@export var sine_distance = 64.0
|
||||||
|
@export var shoot_cooldown = 1.0
|
||||||
|
const BULLET = preload("res://bat/bat_bullet/bat_bullet.tscn")
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
%ShootTimer.start(shoot_cooldown)
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _physics_process(delta):
|
||||||
|
var sine = sin(Time.get_ticks_msec() / 300.0) * sine_distance
|
||||||
|
position.y = startpos.y + sine
|
||||||
|
|
||||||
|
|
||||||
|
func _on_shoot_timer_timeout() -> void:
|
||||||
|
var player = get_owner().get_node("Player")
|
||||||
|
var bullet = BULLET.instantiate()
|
||||||
|
bullet.global_position = global_position
|
||||||
|
get_parent().add_child(bullet)
|
||||||
|
if player.position.x < position.x:
|
||||||
|
bullet.direction = -1
|
||||||
|
else:
|
||||||
|
bullet.direction = 1
|
1
bat/bat.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://dibk7l4v1bbm
|
55
bat/bat.tscn
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
[gd_scene load_steps=5 format=3 uid="uid://n8d1t160vvln"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dibk7l4v1bbm" path="res://bat/bat.gd" id="1_dj6ma"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://1gfwereeox0m" path="res://gren.png" id="4_eu2gq"]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_libqc"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_eu2gq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_eu2gq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_eu2gq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_eu2gq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_eu2gq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_eu2gq")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 30.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5bpm1"]
|
||||||
|
size = Vector2(16, 16)
|
||||||
|
|
||||||
|
[node name="Bat" type="Node2D"]
|
||||||
|
script = ExtResource("1_dj6ma")
|
||||||
|
speed = 2.0
|
||||||
|
sine_distance = 32.0
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
sprite_frames = SubResource("SpriteFrames_libqc")
|
||||||
|
autoplay = "default"
|
||||||
|
frame_progress = 0.659971
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="." groups=["death", "enemy_hitbox"]]
|
||||||
|
collision_layer = 8
|
||||||
|
collision_mask = 17
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
shape = SubResource("RectangleShape2D_5bpm1")
|
||||||
|
|
||||||
|
[node name="ShootTimer" type="Timer" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
|
[connection signal="timeout" from="ShootTimer" to="." method="_on_shoot_timer_timeout"]
|
12
bat/bat_bullet/bat_bullet.gd
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
@export var speed = 100.0
|
||||||
|
@export var direction = 1
|
||||||
|
var grazed = false
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
position.x += (speed * direction) * delta
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_body_entered(body: Node2D) -> void:
|
||||||
|
if !body.is_in_group("player_hitbox"): queue_free()
|
1
bat/bat_bullet/bat_bullet.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://dwqt7eu84wgv7
|
24
bat/bat_bullet/bat_bullet.tscn
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://jf4rxymi15id"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dwqt7eu84wgv7" path="res://bat/bat_bullet/bat_bullet.gd" id="1_bopwj"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pxoj5"]
|
||||||
|
size = Vector2(8, 4)
|
||||||
|
|
||||||
|
[node name="BatBullet" type="Node2D"]
|
||||||
|
script = ExtResource("1_bopwj")
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="."]
|
||||||
|
offset_left = -4.0
|
||||||
|
offset_top = -2.0
|
||||||
|
offset_right = 4.0
|
||||||
|
offset_bottom = 2.0
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="." groups=["enemy_bullet", "hurt"]]
|
||||||
|
collision_layer = 8
|
||||||
|
collision_mask = 19
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
shape = SubResource("RectangleShape2D_pxoj5")
|
||||||
|
|
||||||
|
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
|
BIN
block.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
34
block.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dla2vwxy8vmt8"
|
||||||
|
path="res://.godot/imported/block.png-b7fed0a755ada244f74f9622a987e81f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://block.png"
|
||||||
|
dest_files=["res://.godot/imported/block.png-b7fed0a755ada244f74f9622a987e81f.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
|
4
camera/camera.gd
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
extends Camera2D
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
global_position = get_owner().get_node("Player").global_position
|
1
camera/camera.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://d0c1e68rgp1tw
|
32
default_bus_layout.tres
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
[gd_resource type="AudioBusLayout" load_steps=3 format=3 uid="uid://cbv1d76xmbsru"]
|
||||||
|
|
||||||
|
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_j3pel"]
|
||||||
|
resource_name = "Reverb"
|
||||||
|
|
||||||
|
[sub_resource type="AudioEffectChorus" id="AudioEffectChorus_j3pel"]
|
||||||
|
resource_name = "Chorus"
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
bus/0/volume_db = -10.9863
|
||||||
|
bus/1/name = &"SFX"
|
||||||
|
bus/1/solo = false
|
||||||
|
bus/1/mute = false
|
||||||
|
bus/1/bypass_fx = false
|
||||||
|
bus/1/volume_db = 0.0
|
||||||
|
bus/1/send = &"Master"
|
||||||
|
bus/2/name = &"Jetpack"
|
||||||
|
bus/2/solo = false
|
||||||
|
bus/2/mute = false
|
||||||
|
bus/2/bypass_fx = false
|
||||||
|
bus/2/volume_db = -18.3091
|
||||||
|
bus/2/send = &"SFX"
|
||||||
|
bus/2/effect/0/effect = SubResource("AudioEffectReverb_j3pel")
|
||||||
|
bus/2/effect/0/enabled = false
|
||||||
|
bus/2/effect/1/effect = SubResource("AudioEffectChorus_j3pel")
|
||||||
|
bus/2/effect/1/enabled = true
|
||||||
|
bus/3/name = &"Music"
|
||||||
|
bus/3/solo = false
|
||||||
|
bus/3/mute = false
|
||||||
|
bus/3/bypass_fx = false
|
||||||
|
bus/3/volume_db = -11.4678
|
||||||
|
bus/3/send = &"Master"
|
66
export_presets.cfg
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
[preset.0]
|
||||||
|
|
||||||
|
name="Windows Desktop"
|
||||||
|
platform="Windows Desktop"
|
||||||
|
runnable=true
|
||||||
|
advanced_options=false
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path="../../demos/cool.exe"
|
||||||
|
patches=PackedStringArray()
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
seed=0
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
script_export_mode=2
|
||||||
|
|
||||||
|
[preset.0.options]
|
||||||
|
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
debug/export_console_wrapper=1
|
||||||
|
binary_format/embed_pck=false
|
||||||
|
texture_format/s3tc_bptc=true
|
||||||
|
texture_format/etc2_astc=false
|
||||||
|
binary_format/architecture="x86_64"
|
||||||
|
codesign/enable=false
|
||||||
|
codesign/timestamp=true
|
||||||
|
codesign/timestamp_server_url=""
|
||||||
|
codesign/digest_algorithm=1
|
||||||
|
codesign/description=""
|
||||||
|
codesign/custom_options=PackedStringArray()
|
||||||
|
application/modify_resources=true
|
||||||
|
application/icon=""
|
||||||
|
application/console_wrapper_icon=""
|
||||||
|
application/icon_interpolation=4
|
||||||
|
application/file_version=""
|
||||||
|
application/product_version=""
|
||||||
|
application/company_name=""
|
||||||
|
application/product_name=""
|
||||||
|
application/file_description=""
|
||||||
|
application/copyright=""
|
||||||
|
application/trademarks=""
|
||||||
|
application/export_angle=0
|
||||||
|
application/export_d3d12=0
|
||||||
|
application/d3d12_agility_sdk_multiarch=true
|
||||||
|
ssh_remote_deploy/enabled=false
|
||||||
|
ssh_remote_deploy/host="user@host_ip"
|
||||||
|
ssh_remote_deploy/port="22"
|
||||||
|
ssh_remote_deploy/extra_args_ssh=""
|
||||||
|
ssh_remote_deploy/extra_args_scp=""
|
||||||
|
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||||
|
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||||
|
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||||
|
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||||
|
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||||
|
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||||
|
Start-ScheduledTask -TaskName godot_remote_debug
|
||||||
|
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||||
|
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||||
|
Remove-Item -Recurse -Force '{temp_dir}'"
|
22
globals/global_functions.gd
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
func queue_score(amount):
|
||||||
|
GlobalStats.score_to_add += amount
|
||||||
|
GlobalStats.score_multiplier *= 1.1
|
||||||
|
var hud = get_tree().get_nodes_in_group("hud")[0]
|
||||||
|
hud.multiplier_anims.stop()
|
||||||
|
hud.multiplier_anims.play("multiplier_grow")
|
||||||
|
|
||||||
|
func append_score():
|
||||||
|
GlobalStats.score += GlobalStats.score_to_add
|
||||||
|
GlobalStats.score_to_add = 0
|
||||||
|
GlobalStats.score_multiplier = 1.0
|
||||||
|
var hud = get_tree().get_nodes_in_group("hud")[0]
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
if Input.is_action_just_pressed("fullscreen"):
|
||||||
|
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_WINDOWED:
|
||||||
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
||||||
|
else:
|
||||||
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
||||||
|
|
1
globals/global_functions.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://bsjfyh8x2hk32
|
5
globals/global_stats.gd
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
var score:int = 0
|
||||||
|
var score_to_add:int = 0
|
||||||
|
var score_multiplier:float = 1.0
|
1
globals/global_stats.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://d3y3o1487oqfy
|
BIN
gren.png
Normal file
After Width: | Height: | Size: 762 B |
34
gren.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://1gfwereeox0m"
|
||||||
|
path="res://.godot/imported/gren.png-4d6211da3aba347e96eb6ee724ee433d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://gren.png"
|
||||||
|
dest_files=["res://.godot/imported/gren.png-4d6211da3aba347e96eb6ee724ee433d.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
|
1
icon.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
After Width: | Height: | Size: 994 B |
37
icon.svg.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dq1op562cs6s8"
|
||||||
|
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://icon.svg"
|
||||||
|
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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
|
||||||
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
4
main.gd
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
GlobalStats.score = 0
|
1
main.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://ceuwfjhqeucpr
|
145
main.tscn
Normal file
1
objects/player/jet_particles.gd
Normal file
|
@ -0,0 +1 @@
|
||||||
|
extends CPUParticles2D
|
1
objects/player/jet_particles.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://nvpkqa3y8g04
|
27
objects/player/jet_particles.tscn
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
[gd_scene load_steps=5 format=3 uid="uid://dmg28km10q5ja"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cd68hj3p7r01q" path="res://sprites/particles/fire_particles.png" id="1_idk12"]
|
||||||
|
[ext_resource type="Script" uid="uid://nvpkqa3y8g04" path="res://objects/player/jet_particles.gd" id="2_vu77f"]
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_idk12"]
|
||||||
|
_limits = [0.0, 3.0, 0.0, 1.0]
|
||||||
|
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 3), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_m4kly"]
|
||||||
|
offsets = PackedFloat32Array(0.146667, 0.526667, 0.806667, 1)
|
||||||
|
colors = PackedColorArray(0.580392, 0.768627, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0.321569, 0)
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" type="CPUParticles2D" groups=["fire_particles"]]
|
||||||
|
amount = 16
|
||||||
|
texture = ExtResource("1_idk12")
|
||||||
|
lifetime = 0.24
|
||||||
|
local_coords = true
|
||||||
|
spread = 0.0
|
||||||
|
gravity = Vector2(-190, 980)
|
||||||
|
tangential_accel_max = 100.0
|
||||||
|
damping_max = 100.0
|
||||||
|
angle_min = -720.0
|
||||||
|
scale_amount_curve = SubResource("Curve_idk12")
|
||||||
|
color_ramp = SubResource("Gradient_m4kly")
|
||||||
|
script = ExtResource("2_vu77f")
|
27
objects/player/jet_particles_weak.tscn
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
[gd_scene load_steps=5 format=3 uid="uid://c4dkexe3l6cma"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cd68hj3p7r01q" path="res://sprites/particles/fire_particles.png" id="1_gl2g5"]
|
||||||
|
[ext_resource type="Script" uid="uid://nvpkqa3y8g04" path="res://objects/player/jet_particles.gd" id="2_td2pe"]
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_idk12"]
|
||||||
|
_limits = [0.0, 3.0, 0.0, 1.0]
|
||||||
|
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 3), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_m4kly"]
|
||||||
|
offsets = PackedFloat32Array(0.453333, 0.806667, 0.873333, 1)
|
||||||
|
colors = PackedColorArray(0.580392, 0.768627, 1, 1, 1, 0.839216, 0.215686, 1, 1, 0, 0, 1, 1, 0, 0.321569, 0)
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" type="CPUParticles2D" groups=["fire_particles"]]
|
||||||
|
amount = 16
|
||||||
|
texture = ExtResource("1_gl2g5")
|
||||||
|
lifetime = 0.15
|
||||||
|
local_coords = true
|
||||||
|
spread = 0.0
|
||||||
|
gravity = Vector2(-190, 980)
|
||||||
|
tangential_accel_max = 100.0
|
||||||
|
damping_max = 100.0
|
||||||
|
angle_min = -720.0
|
||||||
|
scale_amount_curve = SubResource("Curve_idk12")
|
||||||
|
color_ramp = SubResource("Gradient_m4kly")
|
||||||
|
script = ExtResource("2_td2pe")
|
139
objects/player/player.gd
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
const WALK_ACCEL = 50.0
|
||||||
|
const WALK_TOPSPEED = 160.0
|
||||||
|
|
||||||
|
const FLY_ACCEL = 50.0
|
||||||
|
const FLY_TOPSPEED = 200.0
|
||||||
|
|
||||||
|
const GRAVITY = 15.0
|
||||||
|
const FAST_FALL_VELOCITY = 500.0
|
||||||
|
|
||||||
|
var downward_velocity = 0.0
|
||||||
|
var max_downward_velocity = 1200.0
|
||||||
|
var fast_fall_max_downward_velocity = 1500.0
|
||||||
|
|
||||||
|
var fuel = 100.0
|
||||||
|
const jetpack_velocity = 10.0
|
||||||
|
|
||||||
|
var score = 0
|
||||||
|
|
||||||
|
var aim_direction = 1
|
||||||
|
|
||||||
|
const BULLET = preload("res://weapons/spreadshot/spread_shot.tscn")
|
||||||
|
const GRAZE_PARTICLES = preload("res://sprites/Player/graze_particles.tscn")
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
var axis = Input.get_axis("ui_left","ui_right")
|
||||||
|
if axis != 0: aim_direction = axis
|
||||||
|
#region ground movement
|
||||||
|
if axis != 0:
|
||||||
|
if velocity.y < 0:
|
||||||
|
move(FLY_ACCEL,FLY_TOPSPEED)
|
||||||
|
else:
|
||||||
|
move(WALK_ACCEL,WALK_TOPSPEED)
|
||||||
|
if is_on_floor():
|
||||||
|
%Sprite.play("walk")
|
||||||
|
else:
|
||||||
|
%Sprite.play("fly")
|
||||||
|
else:
|
||||||
|
velocity.x = move_toward(velocity.x, 0, WALK_ACCEL)
|
||||||
|
%Sprite.play("idle")
|
||||||
|
#endregion
|
||||||
|
#region gun
|
||||||
|
if Input.is_action_just_pressed("shoot"):
|
||||||
|
%ShootSound.play()
|
||||||
|
var bullet = BULLET.instantiate()
|
||||||
|
bullet.global_position = global_position
|
||||||
|
get_parent().add_child(bullet)
|
||||||
|
#endregion
|
||||||
|
#region jetpack flight
|
||||||
|
if Input.is_action_pressed("fly"):
|
||||||
|
if fuel > 0.0:
|
||||||
|
%Sprite.play("fly")
|
||||||
|
fuel -= 40.0 * delta
|
||||||
|
downward_velocity = 0.0
|
||||||
|
if %JetpackSound.is_playing() == false: %JetpackSound.play()
|
||||||
|
if %JetpackSound.pitch_scale < 1.25:
|
||||||
|
%JetpackSound.pitch_scale += 0.4 * delta
|
||||||
|
velocity.y -= jetpack_velocity
|
||||||
|
emit_fire(true)
|
||||||
|
|
||||||
|
else:
|
||||||
|
emit_fire(false)
|
||||||
|
else:
|
||||||
|
if %JetpackSound.pitch_scale > 0.4:
|
||||||
|
%JetpackSound.pitch_scale -= 0.1 * delta
|
||||||
|
emit_fire(false)
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
if is_on_floor():
|
||||||
|
downward_velocity = 0.0
|
||||||
|
GlobalFunctions.append_score()
|
||||||
|
fuel = 100.0
|
||||||
|
silence_jetpack(delta)
|
||||||
|
else:
|
||||||
|
if Input.is_action_pressed("fast_fall"):
|
||||||
|
silence_jetpack(delta)
|
||||||
|
else:
|
||||||
|
%JetpackSound.volume_db = 0.0
|
||||||
|
|
||||||
|
if Input.is_action_pressed("fast_fall"):
|
||||||
|
downward_velocity += FAST_FALL_VELOCITY
|
||||||
|
downward_velocity = clamp(downward_velocity,0.0,fast_fall_max_downward_velocity)
|
||||||
|
velocity.y = clamp(velocity.y,velocity.y,fast_fall_max_downward_velocity)
|
||||||
|
else:
|
||||||
|
downward_velocity += GRAVITY
|
||||||
|
downward_velocity = clamp(downward_velocity,0.0,max_downward_velocity)
|
||||||
|
velocity.y = clamp(velocity.y,velocity.y,max_downward_velocity)
|
||||||
|
fuel -= 1 * delta
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#jetpack pitch
|
||||||
|
|
||||||
|
velocity.y += downward_velocity * delta
|
||||||
|
move_and_slide()
|
||||||
|
#if event.is_action_pressed()
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
func move(acceleration,topspeed):
|
||||||
|
var axis = Input.get_axis("ui_left","ui_right")
|
||||||
|
velocity.x += (axis * acceleration)
|
||||||
|
%Sprite.scale.x = axis
|
||||||
|
velocity.x = clamp(velocity.x,-topspeed,topspeed)
|
||||||
|
|
||||||
|
func silence_jetpack(delta):
|
||||||
|
%JetpackSound.pitch_scale = 1.0
|
||||||
|
%JetpackSound.volume_db -= 50 * delta
|
||||||
|
|
||||||
|
func emit_fire(emit:bool=true,lifetime:float=0.24):
|
||||||
|
get_tree().get_nodes_in_group("fire_particles")[0].emitting = emit
|
||||||
|
get_tree().get_nodes_in_group("fire_particles")[0].lifetime = lifetime
|
||||||
|
get_tree().get_nodes_in_group("fire_particles")[1].emitting = emit
|
||||||
|
get_tree().get_nodes_in_group("fire_particles")[1].lifetime = lifetime
|
||||||
|
|
||||||
|
func _on_area_2d_body_entered(body: Node2D) -> void:
|
||||||
|
if body.is_in_group("death"):
|
||||||
|
get_tree().reload_current_scene()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_area_entered(area: Area2D) -> void:
|
||||||
|
#if area.is_in_group("death") or area.is_in_group("hurt"):
|
||||||
|
#get_tree().reload_current_scene()
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _on_hurtbox_area_entered(area: Area2D) -> void:
|
||||||
|
get_tree().reload_current_scene()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_graze_hitbox_area_entered(area: Area2D) -> void:
|
||||||
|
if area.is_in_group("enemy_bullet"):
|
||||||
|
if area.get_parent().grazed == false:
|
||||||
|
GlobalFunctions.queue_score(0)
|
||||||
|
var graze_particle = GRAZE_PARTICLES.instantiate()
|
||||||
|
graze_particle.global_position = global_position
|
||||||
|
get_parent().add_child(graze_particle)
|
||||||
|
area.get_parent().grazed = true
|
1
objects/player/player.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://cgo3kf4b37lx7
|
137
objects/player/player.tscn
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
[gd_scene load_steps=15 format=3 uid="uid://e2tevu6gn5si"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cgo3kf4b37lx7" path="res://objects/player/player.gd" id="1_4flbx"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bhy8i7yg863n3" path="res://audio/sfx/jetpack.ogg" id="2_g7ett"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bt2xuy2ihej2q" path="res://sprites/Player/clegg_fly.png" id="2_xkryw"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://ct82ub5u2uoly" path="res://audio/sfx/se_g2.ogg" id="3_ssrue"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bi6gfgt0b0voa" path="res://sprites/Player/clegg.png" id="4_m4kly"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bce74ak1by42t" path="res://sprites/Player/clegg_walk1.png" id="4_xgwla"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bvb5neqj421p" path="res://sprites/Player/clegg_walk2.png" id="5_bi5m7"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bv6v7v5dtvoii" path="res://audio/sfx/graze.wav" id="6_ow0dq"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dmg28km10q5ja" path="res://objects/player/jet_particles.tscn" id="9_xgwla"]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_xgwla"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("2_xkryw")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"fly",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_m4kly")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"idle",
|
||||||
|
"speed": 15.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_m4kly")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"new_animation",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_xgwla")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_m4kly")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("5_bi5m7")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"walk",
|
||||||
|
"speed": 15.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_sh265"]
|
||||||
|
size = Vector2(28, 34.375)
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cqmt1"]
|
||||||
|
size = Vector2(27.5, 34)
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_xkryw"]
|
||||||
|
radius = 17.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_xgwla"]
|
||||||
|
radius = 2.06155
|
||||||
|
|
||||||
|
[node name="Player" type="CharacterBody2D" groups=["player", "player_hitbox"]]
|
||||||
|
collision_mask = 2
|
||||||
|
script = ExtResource("1_4flbx")
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="."]
|
||||||
|
visible = false
|
||||||
|
offset_left = -8.0
|
||||||
|
offset_top = -16.0
|
||||||
|
offset_right = 8.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
|
||||||
|
[node name="Sprite" type="AnimatedSprite2D" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
sprite_frames = SubResource("SpriteFrames_xgwla")
|
||||||
|
animation = &"fly"
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" parent="Sprite" instance=ExtResource("9_xgwla")]
|
||||||
|
position = Vector2(-6, 17)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="CPUParticles2D2" parent="Sprite" instance=ExtResource("9_xgwla")]
|
||||||
|
position = Vector2(2.5, 17)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(0, -0.1875)
|
||||||
|
shape = SubResource("RectangleShape2D_sh265")
|
||||||
|
|
||||||
|
[node name="Collectionbox" type="Area2D" parent="." groups=["player_hitbox"]]
|
||||||
|
collision_mask = 7
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Collectionbox"]
|
||||||
|
position = Vector2(0.25, 0)
|
||||||
|
shape = SubResource("RectangleShape2D_cqmt1")
|
||||||
|
|
||||||
|
[node name="JetpackSound" type="AudioStreamPlayer" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
stream = ExtResource("2_g7ett")
|
||||||
|
bus = &"Jetpack"
|
||||||
|
|
||||||
|
[node name="GrazeSound" type="AudioStreamPlayer" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
stream = ExtResource("6_ow0dq")
|
||||||
|
|
||||||
|
[node name="ShootSound" type="AudioStreamPlayer" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
stream = ExtResource("3_ssrue")
|
||||||
|
volume_db = 6.559
|
||||||
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="GrazeHitbox" type="Area2D" parent="."]
|
||||||
|
position = Vector2(-3, -4)
|
||||||
|
collision_mask = 8
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="GrazeHitbox"]
|
||||||
|
position = Vector2(3, 4)
|
||||||
|
shape = SubResource("CircleShape2D_xkryw")
|
||||||
|
debug_color = Color(0.797602, 0.0486606, 1, 0.42)
|
||||||
|
|
||||||
|
[node name="Hurtbox" type="Area2D" parent="."]
|
||||||
|
position = Vector2(-1, -10)
|
||||||
|
collision_mask = 8
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hurtbox"]
|
||||||
|
position = Vector2(2, 11.5)
|
||||||
|
shape = SubResource("CircleShape2D_xgwla")
|
||||||
|
debug_color = Color(1, 0, 0.0917967, 0.42)
|
||||||
|
|
||||||
|
[connection signal="area_entered" from="Collectionbox" to="." method="_on_area_2d_area_entered"]
|
||||||
|
[connection signal="body_entered" from="Collectionbox" to="." method="_on_area_2d_body_entered"]
|
||||||
|
[connection signal="area_entered" from="GrazeHitbox" to="." method="_on_graze_hitbox_area_entered"]
|
||||||
|
[connection signal="area_entered" from="Hurtbox" to="." method="_on_hurtbox_area_entered"]
|
29
objects/player/player_bullet/player_bullet.gd
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
var direction = 1
|
||||||
|
@export var speed = Vector2.ZERO
|
||||||
|
@export var range = 1.0
|
||||||
|
@export var infinite_range = true
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
var player = get_tree().get_nodes_in_group("player")[0]
|
||||||
|
direction = player.aim_direction
|
||||||
|
if infinite_range == true: %RangeTimer.paused = true
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
position.x += (speed.x * direction) * delta
|
||||||
|
position.y += (speed.y) * delta
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_area_entered(area: Area2D) -> void:
|
||||||
|
if area.is_in_group("enemy_hitbox"):
|
||||||
|
GlobalFunctions.queue_score(10)
|
||||||
|
area.get_parent().queue_free()
|
||||||
|
queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_body_entered(body: Node2D) -> void:
|
||||||
|
queue_free()
|
||||||
|
|
||||||
|
func _on_range_timer_timeout() -> void:
|
||||||
|
queue_free()
|
1
objects/player/player_bullet/player_bullet.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://cbmi6g10hnfve
|
31
objects/player/player_bullet/player_bullet.tscn
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cqqqblpc3j4hn"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cbmi6g10hnfve" path="res://objects/player/player_bullet/player_bullet.gd" id="1_lj6op"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_lj6op"]
|
||||||
|
size = Vector2(8, 8)
|
||||||
|
|
||||||
|
[node name="PlayerBullet" type="Node2D"]
|
||||||
|
script = ExtResource("1_lj6op")
|
||||||
|
speed = Vector2(1000, 0)
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="."]
|
||||||
|
offset_left = -4.0
|
||||||
|
offset_top = -4.0
|
||||||
|
offset_right = 4.0
|
||||||
|
offset_bottom = 4.0
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
collision_layer = 16
|
||||||
|
collision_mask = 14
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
shape = SubResource("RectangleShape2D_lj6op")
|
||||||
|
|
||||||
|
[node name="RangeTimer" type="Timer" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
autostart = true
|
||||||
|
|
||||||
|
[connection signal="area_entered" from="Area2D" to="." method="_on_area_2d_area_entered"]
|
||||||
|
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
|
||||||
|
[connection signal="timeout" from="RangeTimer" to="." method="_on_range_timer_timeout"]
|
12
objects/scoreitem/scoreitem.gd
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
@export var score = 0
|
||||||
|
const PARTICLES = preload("res://objects/scoreitem/scoreitem_particles.tscn")
|
||||||
|
|
||||||
|
func _on_area_2d_area_entered(area: Area2D) -> void:
|
||||||
|
if area.is_in_group("player_hitbox"):
|
||||||
|
GlobalFunctions.queue_score(score)
|
||||||
|
var particles = PARTICLES.instantiate()
|
||||||
|
particles.global_position = global_position
|
||||||
|
get_owner().add_child(particles)
|
||||||
|
queue_free()
|
1
objects/scoreitem/scoreitem.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://8wiyfiyykh6t
|
56
objects/scoreitem/scoreitem.tscn
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
[gd_scene load_steps=10 format=3 uid="uid://bskdt3t8fae6m"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://8wiyfiyykh6t" path="res://objects/scoreitem/scoreitem.gd" id="1_8u3vk"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dr1uub2l0vdh4" path="res://sprites/screw/0c575d08-e62d-4013-9e08-172d0662fcda.png" id="1_e6x4u"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://csqvymhme5h8t" path="res://sprites/screw/23b869e4-5707-44a8-8bbc-a788d5c71275.png" id="2_8u3vk"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bptdaaemdeqt" path="res://sprites/screw/6ca66360-a47d-4690-88f8-b9c160416be3.png" id="3_oad3k"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dud5u6ojbsupr" path="res://sprites/screw/72235a50-452c-4104-a5b4-447ee5c42785.png" id="4_e7vhn"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dutm1rklnb33t" path="res://sprites/screw/30656deb-ca75-4981-8198-ad555b89764a.png" id="5_dfapo"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cvuhonmcq21hk" path="res://sprites/screw/c433a95b-a214-4bdd-b58e-8ef611c6be46.png" id="6_uywcb"]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_dayts"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("1_e6x4u")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("2_8u3vk")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("3_oad3k")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_e7vhn")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("5_dfapo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("6_uywcb")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 15.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e6x4u"]
|
||||||
|
size = Vector2(15, 15)
|
||||||
|
|
||||||
|
[node name="Scoreitem" type="Node2D"]
|
||||||
|
script = ExtResource("1_8u3vk")
|
||||||
|
score = 10
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
scale = Vector2(0.2, 0.2)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_dayts")
|
||||||
|
autoplay = "default"
|
||||||
|
frame_progress = 0.340073
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
collision_layer = 4
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
shape = SubResource("RectangleShape2D_e6x4u")
|
||||||
|
|
||||||
|
[connection signal="area_entered" from="Area2D" to="." method="_on_area_2d_area_entered"]
|
7
objects/scoreitem/scoreitem_particles.gd
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
extends CPUParticles2D
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
emitting = true
|
||||||
|
|
||||||
|
func _on_finished() -> void:
|
||||||
|
queue_free()
|
1
objects/scoreitem/scoreitem_particles.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://bdcxqp8royr5u
|
32
objects/scoreitem/scoreitem_particles.tscn
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://bsmmvt6hf6m5b"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bdcxqp8royr5u" path="res://objects/scoreitem/scoreitem_particles.gd" id="1_aeam7"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://c7h4qdg8gtnhk" path="res://audio/sfx/key.ogg" id="2_rwya6"]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_aeam7"]
|
||||||
|
offsets = PackedFloat32Array(0, 0.513333, 1)
|
||||||
|
colors = PackedColorArray(1, 0, 0, 1, 1, 1, 0.568627, 1, 1, 1, 1, 1)
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" type="CPUParticles2D"]
|
||||||
|
emitting = false
|
||||||
|
amount = 38
|
||||||
|
lifetime = 0.2
|
||||||
|
one_shot = true
|
||||||
|
speed_scale = 0.5
|
||||||
|
explosiveness = 1.0
|
||||||
|
randomness = 1.0
|
||||||
|
lifetime_randomness = 1.0
|
||||||
|
spread = 154.09
|
||||||
|
gravity = Vector2(0, 630)
|
||||||
|
initial_velocity_min = 251.99
|
||||||
|
initial_velocity_max = 484.86
|
||||||
|
scale_amount_min = 1.5
|
||||||
|
scale_amount_max = 2.5
|
||||||
|
color_ramp = SubResource("Gradient_aeam7")
|
||||||
|
script = ExtResource("1_aeam7")
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("2_rwya6")
|
||||||
|
autoplay = true
|
||||||
|
|
||||||
|
[connection signal="finished" from="." to="." method="_on_finished"]
|
67
project.godot
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=5
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="New Game Project"
|
||||||
|
run/main_scene="uid://cbmgdd1gbmh1x"
|
||||||
|
config/features=PackedStringArray("4.4", "GL Compatibility")
|
||||||
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
GlobalStats="*res://globals/global_stats.gd"
|
||||||
|
GlobalFunctions="*res://globals/global_functions.gd"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/size/viewport_width=640
|
||||||
|
window/size/viewport_height=360
|
||||||
|
window/size/mode=3
|
||||||
|
window/size/borderless=true
|
||||||
|
window/stretch/mode="canvas_items"
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
fly={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":122,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
shoot={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":88,"key_label":0,"unicode":120,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
fast_fall={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
fullscreen={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
[layer_names]
|
||||||
|
|
||||||
|
2d_physics/layer_1="Player"
|
||||||
|
2d_physics/layer_2="Collision"
|
||||||
|
2d_physics/layer_3="Pickups"
|
||||||
|
2d_physics/layer_4="Enemy Damage"
|
||||||
|
2d_physics/layer_5="Player Damage"
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
textures/canvas_textures/default_texture_filter=0
|
||||||
|
renderer/rendering_method="gl_compatibility"
|
||||||
|
renderer/rendering_method.mobile="gl_compatibility"
|
||||||
|
2d/snap/snap_2d_transforms_to_pixel=true
|
BIN
spikes.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
34
spikes.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bjirp2g8mawch"
|
||||||
|
path="res://.godot/imported/spikes.png-4a2427e7b6483a335646e762227cfd31.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://spikes.png"
|
||||||
|
dest_files=["res://.godot/imported/spikes.png-4a2427e7b6483a335646e762227cfd31.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
sprites/Player/clegg.png
Normal file
After Width: | Height: | Size: 730 B |
34
sprites/Player/clegg.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bi6gfgt0b0voa"
|
||||||
|
path="res://.godot/imported/clegg.png-f207317d2b00342f0190488446638a1b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Player/clegg.png"
|
||||||
|
dest_files=["res://.godot/imported/clegg.png-f207317d2b00342f0190488446638a1b.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
sprites/Player/clegg_fly.png
Normal file
After Width: | Height: | Size: 731 B |
34
sprites/Player/clegg_fly.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bt2xuy2ihej2q"
|
||||||
|
path="res://.godot/imported/clegg_fly.png-7a3ae7abd18b0a1d07fcb24b1df80211.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Player/clegg_fly.png"
|
||||||
|
dest_files=["res://.godot/imported/clegg_fly.png-7a3ae7abd18b0a1d07fcb24b1df80211.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
sprites/Player/clegg_walk1.png
Normal file
After Width: | Height: | Size: 732 B |
34
sprites/Player/clegg_walk1.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bce74ak1by42t"
|
||||||
|
path="res://.godot/imported/clegg_walk1.png-04f69f62c344127763c8b8a4ffb880d2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Player/clegg_walk1.png"
|
||||||
|
dest_files=["res://.godot/imported/clegg_walk1.png-04f69f62c344127763c8b8a4ffb880d2.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
sprites/Player/clegg_walk2.png
Normal file
After Width: | Height: | Size: 732 B |
34
sprites/Player/clegg_walk2.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bvb5neqj421p"
|
||||||
|
path="res://.godot/imported/clegg_walk2.png-3ae137705c65caea8386c5acdc77f85b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Player/clegg_walk2.png"
|
||||||
|
dest_files=["res://.godot/imported/clegg_walk2.png-3ae137705c65caea8386c5acdc77f85b.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
sprites/Player/fly.png
Normal file
After Width: | Height: | Size: 547 B |
34
sprites/Player/fly.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://vlerydf045be"
|
||||||
|
path="res://.godot/imported/fly.png-7465252e024b41cbf1191f44c86e34e9.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Player/fly.png"
|
||||||
|
dest_files=["res://.godot/imported/fly.png-7465252e024b41cbf1191f44c86e34e9.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
|
32
sprites/Player/graze_particles.tscn
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://ykg8dydq006a"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bdcxqp8royr5u" path="res://objects/scoreitem/scoreitem_particles.gd" id="1_s0vci"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bv6v7v5dtvoii" path="res://audio/sfx/graze.wav" id="2_55vho"]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_aeam7"]
|
||||||
|
offsets = PackedFloat32Array(0, 0.513333, 1)
|
||||||
|
colors = PackedColorArray(0, 0.647059, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1)
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" type="CPUParticles2D"]
|
||||||
|
emitting = false
|
||||||
|
amount = 24
|
||||||
|
lifetime = 0.15
|
||||||
|
one_shot = true
|
||||||
|
speed_scale = 0.5
|
||||||
|
explosiveness = 0.6
|
||||||
|
randomness = 1.0
|
||||||
|
lifetime_randomness = 1.0
|
||||||
|
spread = 154.09
|
||||||
|
gravity = Vector2(0, 630)
|
||||||
|
initial_velocity_min = 251.99
|
||||||
|
initial_velocity_max = 484.86
|
||||||
|
scale_amount_min = 1.5
|
||||||
|
scale_amount_max = 2.5
|
||||||
|
color_ramp = SubResource("Gradient_aeam7")
|
||||||
|
script = ExtResource("1_s0vci")
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("2_55vho")
|
||||||
|
autoplay = true
|
||||||
|
|
||||||
|
[connection signal="finished" from="." to="." method="_on_finished"]
|
BIN
sprites/Player/idle.png
Normal file
After Width: | Height: | Size: 684 B |
34
sprites/Player/idle.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dsdbecphufdey"
|
||||||
|
path="res://.godot/imported/idle.png-9054bf32c1393a8346626db9ba7bc5c5.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Player/idle.png"
|
||||||
|
dest_files=["res://.godot/imported/idle.png-9054bf32c1393a8346626db9ba7bc5c5.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
sprites/Player/player.png
Normal file
After Width: | Height: | Size: 545 B |
34
sprites/Player/player.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b8ouukg7qluae"
|
||||||
|
path="res://.godot/imported/player.png-19fbcaa9e04b2c92e31fc3f42fef7f03.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Player/player.png"
|
||||||
|
dest_files=["res://.godot/imported/player.png-19fbcaa9e04b2c92e31fc3f42fef7f03.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
sprites/Player/walk.png
Normal file
After Width: | Height: | Size: 659 B |
34
sprites/Player/walk.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dujk3or3g5t2d"
|
||||||
|
path="res://.godot/imported/walk.png-0764d042f136ec81ae0a544baafde1ae.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Player/walk.png"
|
||||||
|
dest_files=["res://.godot/imported/walk.png-0764d042f136ec81ae0a544baafde1ae.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
sprites/particles/fire_particles.png
Normal file
After Width: | Height: | Size: 382 B |
34
sprites/particles/fire_particles.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cd68hj3p7r01q"
|
||||||
|
path="res://.godot/imported/fire_particles.png-c65e9f3c38ed4f934213ea612b9b5d07.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/particles/fire_particles.png"
|
||||||
|
dest_files=["res://.godot/imported/fire_particles.png-c65e9f3c38ed4f934213ea612b9b5d07.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
sprites/screw/0c575d08-e62d-4013-9e08-172d0662fcda.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dr1uub2l0vdh4"
|
||||||
|
path="res://.godot/imported/0c575d08-e62d-4013-9e08-172d0662fcda.png-85bbaf533684bf5839e709a662631e8d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/screw/0c575d08-e62d-4013-9e08-172d0662fcda.png"
|
||||||
|
dest_files=["res://.godot/imported/0c575d08-e62d-4013-9e08-172d0662fcda.png-85bbaf533684bf5839e709a662631e8d.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
sprites/screw/23b869e4-5707-44a8-8bbc-a788d5c71275.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://csqvymhme5h8t"
|
||||||
|
path="res://.godot/imported/23b869e4-5707-44a8-8bbc-a788d5c71275.png-f890a92533200697f912ede7ddc1693f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/screw/23b869e4-5707-44a8-8bbc-a788d5c71275.png"
|
||||||
|
dest_files=["res://.godot/imported/23b869e4-5707-44a8-8bbc-a788d5c71275.png-f890a92533200697f912ede7ddc1693f.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
sprites/screw/30656deb-ca75-4981-8198-ad555b89764a.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dutm1rklnb33t"
|
||||||
|
path="res://.godot/imported/30656deb-ca75-4981-8198-ad555b89764a.png-25da34d1e9a235f3f352f5fddc5ff4d5.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/screw/30656deb-ca75-4981-8198-ad555b89764a.png"
|
||||||
|
dest_files=["res://.godot/imported/30656deb-ca75-4981-8198-ad555b89764a.png-25da34d1e9a235f3f352f5fddc5ff4d5.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
sprites/screw/6ca66360-a47d-4690-88f8-b9c160416be3.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bptdaaemdeqt"
|
||||||
|
path="res://.godot/imported/6ca66360-a47d-4690-88f8-b9c160416be3.png-531dd690299341ff7bb196737d82cc88.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/screw/6ca66360-a47d-4690-88f8-b9c160416be3.png"
|
||||||
|
dest_files=["res://.godot/imported/6ca66360-a47d-4690-88f8-b9c160416be3.png-531dd690299341ff7bb196737d82cc88.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
sprites/screw/72235a50-452c-4104-a5b4-447ee5c42785.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dud5u6ojbsupr"
|
||||||
|
path="res://.godot/imported/72235a50-452c-4104-a5b4-447ee5c42785.png-e0245cc2da48ccbb0f1cd9d05b1a1747.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/screw/72235a50-452c-4104-a5b4-447ee5c42785.png"
|
||||||
|
dest_files=["res://.godot/imported/72235a50-452c-4104-a5b4-447ee5c42785.png-e0245cc2da48ccbb0f1cd9d05b1a1747.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
sprites/screw/c433a95b-a214-4bdd-b58e-8ef611c6be46.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cvuhonmcq21hk"
|
||||||
|
path="res://.godot/imported/c433a95b-a214-4bdd-b58e-8ef611c6be46.png-e3e49a812eae468ab20f4b29deda1aab.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/screw/c433a95b-a214-4bdd-b58e-8ef611c6be46.png"
|
||||||
|
dest_files=["res://.godot/imported/c433a95b-a214-4bdd-b58e-8ef611c6be46.png-e3e49a812eae468ab20f4b29deda1aab.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
tilesets/block.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
34
tilesets/block.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b460bcnqqpjum"
|
||||||
|
path="res://.godot/imported/block.png-089e514f545622f39a3d5f4d0387ef86.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://tilesets/block.png"
|
||||||
|
dest_files=["res://.godot/imported/block.png-089e514f545622f39a3d5f4d0387ef86.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
|
15
tilesets/death.tres
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://kdpofvscbp6m"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bjirp2g8mawch" path="res://spikes.png" id="1_mfmc3"]
|
||||||
|
|
||||||
|
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_0b4aj"]
|
||||||
|
texture = ExtResource("1_mfmc3")
|
||||||
|
texture_region_size = Vector2i(64, 64)
|
||||||
|
0:0/0 = 0
|
||||||
|
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32)
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
tile_size = Vector2i(64, 64)
|
||||||
|
physics_layer_0/collision_layer = 1
|
||||||
|
physics_layer_0/collision_mask = 8
|
||||||
|
sources/0 = SubResource("TileSetAtlasSource_0b4aj")
|
38
tilesets/tile.tres
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://cbvgfixmub3am"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dla2vwxy8vmt8" path="res://block.png" id="1_br521"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b460bcnqqpjum" path="res://tilesets/block.png" id="2_5jwfb"]
|
||||||
|
|
||||||
|
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_5jwfb"]
|
||||||
|
texture = ExtResource("1_br521")
|
||||||
|
texture_region_size = Vector2i(64, 64)
|
||||||
|
3:1/0 = 0
|
||||||
|
3:0/0 = 0
|
||||||
|
2:0/0 = 0
|
||||||
|
0:0/0 = 0
|
||||||
|
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32)
|
||||||
|
1:1/0 = 0
|
||||||
|
2:1/0 = 0
|
||||||
|
3:2/0 = 0
|
||||||
|
3:3/0 = 0
|
||||||
|
2:3/0 = 0
|
||||||
|
1:2/0 = 0
|
||||||
|
0:1/0 = 0
|
||||||
|
1:0/0 = 0
|
||||||
|
2:2/0 = 0
|
||||||
|
1:3/0 = 0
|
||||||
|
0:3/0 = 0
|
||||||
|
0:2/0 = 0
|
||||||
|
|
||||||
|
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_uehjq"]
|
||||||
|
texture = ExtResource("2_5jwfb")
|
||||||
|
texture_region_size = Vector2i(32, 32)
|
||||||
|
0:0/0 = 0
|
||||||
|
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
tile_size = Vector2i(32, 32)
|
||||||
|
physics_layer_0/collision_layer = 2
|
||||||
|
physics_layer_0/collision_mask = 31
|
||||||
|
sources/0 = SubResource("TileSetAtlasSource_5jwfb")
|
||||||
|
sources/1 = SubResource("TileSetAtlasSource_uehjq")
|
13
ui/hud.gd
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
@onready var fuel_meter = $FuelMeter
|
||||||
|
@onready var score_counter = $ScoreCounter
|
||||||
|
@onready var multiplier_anims = $MultiplierAnims
|
||||||
|
@onready var append_score_anims = $AppendScoreAnims
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
var player = get_owner().get_node("Player")
|
||||||
|
fuel_meter.value = player.fuel
|
||||||
|
score_counter.text = "SCORE " + str(GlobalStats.score)
|
||||||
|
%ScoreMultiplier.text = str(snapped(GlobalStats.score_multiplier, 0.1)) + "x"
|
||||||
|
%ScoreToAdd.text = str(GlobalStats.score_to_add)
|
1
ui/hud.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://c0bylwyhxlu28
|
205
ui/hud.tscn
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
[gd_scene load_steps=8 format=3 uid="uid://by8rt0eurn0uh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://c0bylwyhxlu28" path="res://ui/hud.gd" id="1_rbyyf"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_276te"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("ScoreMultiplier:theme_override_font_sizes/font_size")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [45]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rbyyf"]
|
||||||
|
resource_name = "multiplier_grow"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("ScoreMultiplier:theme_override_font_sizes/font_size")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.166667, 0.233333, 0.3),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [45, 55, 60, 55, 45]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_546lt"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_276te"),
|
||||||
|
&"multiplier_grow": SubResource("Animation_rbyyf")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_7ihmi"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("ScoreToAdd:theme_override_font_sizes/font_size")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [11]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("ScoreToAdd:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(35, 39)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("ScoreToAdd:scale")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1, 1)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("ScoreToAdd:rotation")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_546lt"]
|
||||||
|
resource_name = "append_score"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("ScoreToAdd:theme_override_font_sizes/font_size")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.4),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [11, 31]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("ScoreToAdd:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.399396),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(35, 39), Vector2(136, 12)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("ScoreToAdd:scale")
|
||||||
|
tracks/2/interp = 2
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.4, 0.466667, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1, 1), Vector2(-1, -1), Vector2(1, 1), Vector2(1.1, 1.1), Vector2(1, 1)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("ScoreToAdd:rotation")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.4),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0, 6.28319]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_en2x2"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_7ihmi"),
|
||||||
|
&"append_score": SubResource("Animation_546lt")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Hud" type="Control" groups=["hud"]]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
script = ExtResource("1_rbyyf")
|
||||||
|
|
||||||
|
[node name="FuelMeter" type="ProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 14.0
|
||||||
|
offset_top = 15.0
|
||||||
|
offset_right = 46.0
|
||||||
|
offset_bottom = 115.0
|
||||||
|
value = 36.0
|
||||||
|
fill_mode = 3
|
||||||
|
|
||||||
|
[node name="ScoreCounter" type="Label" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 76.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 127.0
|
||||||
|
offset_bottom = 39.0
|
||||||
|
text = "SCORE"
|
||||||
|
|
||||||
|
[node name="ScoreMultiplier" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 32.0
|
||||||
|
offset_top = -17.0
|
||||||
|
offset_right = 176.0
|
||||||
|
offset_bottom = 126.0
|
||||||
|
theme_override_font_sizes/font_size = 45
|
||||||
|
text = "2.0X"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="ScoreToAdd" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 35.0
|
||||||
|
offset_top = 39.0
|
||||||
|
offset_right = 165.0
|
||||||
|
offset_bottom = 122.0
|
||||||
|
pivot_offset = Vector2(65, 49.5)
|
||||||
|
theme_override_font_sizes/font_size = 11
|
||||||
|
text = "1000"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="MultiplierAnims" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_546lt")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="AppendScoreAnims" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_en2x2")
|
||||||
|
}
|
8
weapons/spread_shot.tscn
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://cwumy5cb7aptn"]
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_74dyb"]
|
||||||
|
script/source = "extends Node2D
|
||||||
|
"
|
||||||
|
|
||||||
|
[node name="Weapon" type="Node2D"]
|
||||||
|
script = SubResource("GDScript_74dyb")
|
25
weapons/spreadshot/spread_shot.tscn
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://nipyx404f7rd"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cqqqblpc3j4hn" path="res://objects/player/player_bullet/player_bullet.tscn" id="1_qfcic"]
|
||||||
|
|
||||||
|
[node name="SpreadShot" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="PlayerBullet" parent="." instance=ExtResource("1_qfcic")]
|
||||||
|
speed = Vector2(300, 0)
|
||||||
|
infinite_range = false
|
||||||
|
|
||||||
|
[node name="PlayerBullet4" parent="." instance=ExtResource("1_qfcic")]
|
||||||
|
speed = Vector2(300, 150)
|
||||||
|
infinite_range = false
|
||||||
|
|
||||||
|
[node name="PlayerBullet2" parent="." instance=ExtResource("1_qfcic")]
|
||||||
|
speed = Vector2(300, 300)
|
||||||
|
infinite_range = false
|
||||||
|
|
||||||
|
[node name="PlayerBullet5" parent="." instance=ExtResource("1_qfcic")]
|
||||||
|
speed = Vector2(300, -150)
|
||||||
|
infinite_range = false
|
||||||
|
|
||||||
|
[node name="PlayerBullet3" parent="." instance=ExtResource("1_qfcic")]
|
||||||
|
speed = Vector2(300, -300)
|
||||||
|
infinite_range = false
|