Initial commit - Godot game uploaded

main
Laurent 2025-05-21 23:27:16 +02:00
commit 02fdfafeba
101 changed files with 3182 additions and 0 deletions

4
.editorconfig 100644
View File

@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8

2
.gitattributes vendored 100644
View File

@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

3
.gitignore vendored 100644
View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5k4rbuaf0een"
path="res://.godot/imported/CowboyEnemy.png-ff709024157d38920da7382230390122.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/CowboyEnemy.png"
dest_files=["res://.godot/imported/CowboyEnemy.png-ff709024157d38920da7382230390122.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: 89 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://clsneqdwrp7x7"
path="res://.godot/imported/CowboyMain.png-7d91c74010b40658ccd84f658b981057.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/CowboyMain.png"
dest_files=["res://.godot/imported/CowboyMain.png-7d91c74010b40658ccd84f658b981057.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.

View File

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://bepk2tr7ahqrs"
path="res://.godot/imported/086409_retro-gun-shot-81545.mp3-c3ebbae62075742362f357cdbd7bfe31.mp3str"
[deps]
source_file="res://assets/Sfx/086409_retro-gun-shot-81545.mp3"
dest_files=["res://.godot/imported/086409_retro-gun-shot-81545.mp3-c3ebbae62075742362f357cdbd7bfe31.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://bt8cj5mfwwids"
path="res://.godot/imported/clean-revolver-reload-6889.mp3-d15a60f5a354b29ebb649e5fcd8c852f.mp3str"
[deps]
source_file="res://assets/Sfx/clean-revolver-reload-6889.mp3"
dest_files=["res://.godot/imported/clean-revolver-reload-6889.mp3-d15a60f5a354b29ebb649e5fcd8c852f.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://d1anpf3ejht4d"
path="res://.godot/imported/coin-recieved-230517.mp3-d7084f2e11f4707c3110ce2d6c8f7c43.mp3str"
[deps]
source_file="res://assets/Sfx/coin-recieved-230517.mp3"
dest_files=["res://.godot/imported/coin-recieved-230517.mp3-d7084f2e11f4707c3110ce2d6c8f7c43.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://rgdm55v4k4ut"
path="res://.godot/imported/empty-gun-shot-6209.mp3-45e1f5590e295f606dedb370a6b0bffb.mp3str"
[deps]
source_file="res://assets/Sfx/empty-gun-shot-6209.mp3"
dest_files=["res://.godot/imported/empty-gun-shot-6209.mp3-45e1f5590e295f606dedb370a6b0bffb.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://g8nn4thpshnn"
path="res://.godot/imported/grunt-1-85280.mp3-958e90721c9a65620b11ea0a4811dc16.mp3str"
[deps]
source_file="res://assets/Sfx/grunt-1-85280.mp3"
dest_files=["res://.godot/imported/grunt-1-85280.mp3-958e90721c9a65620b11ea0a4811dc16.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://mcywnc1a1hra"
path="res://.godot/imported/gun-shots-from-a-distance-5-96388.mp3-d39abeaf8bacf6acdde0cec52d093302.mp3str"
[deps]
source_file="res://assets/Sfx/gun-shots-from-a-distance-5-96388.mp3"
dest_files=["res://.godot/imported/gun-shots-from-a-distance-5-96388.mp3-d39abeaf8bacf6acdde0cec52d093302.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://bxahpfo3u13ej"
path="res://.godot/imported/mask-grunt-sound-38713.mp3-e509271e9b203c09105744c0de0bd2e3.mp3str"
[deps]
source_file="res://assets/Sfx/mask-grunt-sound-38713.mp3"
dest_files=["res://.godot/imported/mask-grunt-sound-38713.mp3-e509271e9b203c09105744c0de0bd2e3.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://belgyw5bcasel"
path="res://.godot/imported/success-fanfare-trumpets-6185.mp3-768f32ee7413d305d292fdca4044e604.mp3str"
[deps]
source_file="res://assets/Sfx/success-fanfare-trumpets-6185.mp3"
dest_files=["res://.godot/imported/success-fanfare-trumpets-6185.mp3-768f32ee7413d305d292fdca4044e604.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ds5u8h3r3rm33"
path="res://.godot/imported/Box.png-914cc0bdd83dab2a71c638edf27cfff0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/Box.png"
dest_files=["res://.godot/imported/Box.png-914cc0bdd83dab2a71c638edf27cfff0.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: 3.1 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ca10uvbdbj86b"
path="res://.godot/imported/Cart.png-73be8200f8973585f644e6bb57aa0f8f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/Cart.png"
dest_files=["res://.godot/imported/Cart.png-73be8200f8973585f644e6bb57aa0f8f.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: 12 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2nk78vdchaxu"
path="res://.godot/imported/CartB.png-d64ab863fb922fa652877ace4fa4be5b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/CartB.png"
dest_files=["res://.godot/imported/CartB.png-d64ab863fb922fa652877ace4fa4be5b.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: 89 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnu1wi2o77q83"
path="res://.godot/imported/CowboyEnemy.png-4c650a2cc45d2f26cbdac500749ddebf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/CowboyEnemy.png"
dest_files=["res://.godot/imported/CowboyEnemy.png-4c650a2cc45d2f26cbdac500749ddebf.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: 92 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjs3op5jofojm"
path="res://.godot/imported/CowboyMain.png-88a99632cc88463648e72fd9ac7926b6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/CowboyMain.png"
dest_files=["res://.godot/imported/CowboyMain.png-88a99632cc88463648e72fd9ac7926b6.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: 4.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckw8npwiqciqe"
path="res://.godot/imported/Gun.png-316e63aea8c3e06ca944f7170b04a5f8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/Gun.png"
dest_files=["res://.godot/imported/Gun.png-316e63aea8c3e06ca944f7170b04a5f8.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: 1.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bm00csi5uwmpy"
path="res://.godot/imported/GunEnemy.png-3bce610d5d5834b50cd9ad2cfa3b66b7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/GunEnemy.png"
dest_files=["res://.godot/imported/GunEnemy.png-3bce610d5d5834b50cd9ad2cfa3b66b7.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: 105 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://db0ovvwf2a8m4"
path="res://.godot/imported/House 3.png-fe06af55879fbfca1e2ee4bf58647764.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/House 3.png"
dest_files=["res://.godot/imported/House 3.png-fe06af55879fbfca1e2ee4bf58647764.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: 24 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://db7wp8wuashp6"
path="res://.godot/imported/House1.png-5e1e78b49132eeaed7b325a65c746ef2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/House1.png"
dest_files=["res://.godot/imported/House1.png-5e1e78b49132eeaed7b325a65c746ef2.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: 62 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://sx3dqsp8ufdr"
path="res://.godot/imported/House2.png-4ec135f75c0d0a683c22e8148a9154d3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/House2.png"
dest_files=["res://.godot/imported/House2.png-4ec135f75c0d0a683c22e8148a9154d3.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: 45 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dvb4cqvl8j7ox"
path="res://.godot/imported/House4.png-6bba84a5cf7d756f8532a291d1126b69.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/House4.png"
dest_files=["res://.godot/imported/House4.png-6bba84a5cf7d756f8532a291d1126b69.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: 25 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://oxaew3t4pevy"
path="res://.godot/imported/Kaktus.png-4284608db0f31a9b1d900fe36c8de455.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/Kaktus.png"
dest_files=["res://.godot/imported/Kaktus.png-4284608db0f31a9b1d900fe36c8de455.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: 34 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cs13khergutls"
path="res://.godot/imported/Rolling grass.png-264b77cd942b34a4f37176160df1dd43.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/Rolling grass.png"
dest_files=["res://.godot/imported/Rolling grass.png-264b77cd942b34a4f37176160df1dd43.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: 78 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d14vbbllot6wo"
path="res://.godot/imported/SheriffStar.png-a22cfc3289d9c68bda7b3401fc7178a3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/SheriffStar.png"
dest_files=["res://.godot/imported/SheriffStar.png-a22cfc3289d9c68bda7b3401fc7178a3.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: 5.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://lpxchvf7lpl6"
path="res://.godot/imported/ShotFlare.png-58df464645b39fa4f09bc5232af5723c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/ShotFlare.png"
dest_files=["res://.godot/imported/ShotFlare.png-58df464645b39fa4f09bc5232af5723c.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: 4.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cya5lkbawlchd"
path="res://.godot/imported/Stones1.png-c788d5c8fc762f737093377fb18de937.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/Stones1.png"
dest_files=["res://.godot/imported/Stones1.png-c788d5c8fc762f737093377fb18de937.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: 2.9 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dmipdfi8dk1ww"
path="res://.godot/imported/Stones2.png-f86a7fac2a8f1fdec7f816a8b63c079c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/Stones2.png"
dest_files=["res://.godot/imported/Stones2.png-f86a7fac2a8f1fdec7f816a8b63c079c.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: 24 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://btki3nbkxml54"
path="res://.godot/imported/Tavern.png-21552f5bcf6a8e67ac0d58cbb5bc8e3b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/Tavern.png"
dest_files=["res://.godot/imported/Tavern.png-21552f5bcf6a8e67ac0d58cbb5bc8e3b.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: 2.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bsxg617g5diih"
path="res://.godot/imported/WaterStall.png-b311a35035b54d8056c1f784d6b9b2ab.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/WaterStall.png"
dest_files=["res://.godot/imported/WaterStall.png-b311a35035b54d8056c1f784d6b9b2ab.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: 15 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjsdt8s5iep2v"
path="res://.godot/imported/WaterWell.png-496bc015d6e7cf01ecce7f1fba79707d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Textures/WaterWell.png"
dest_files=["res://.godot/imported/WaterWell.png-496bc015d6e7cf01ecce7f1fba79707d.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,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://d4jxpnnuxtj55"
path="res://.godot/imported/mask-grunt-sound-38713.mp3-d4e10b2477d6a16d8099d1cc7f6316e5.mp3str"
[deps]
source_file="res://assets/Textures/mask-grunt-sound-38713.mp3"
dest_files=["res://.godot/imported/mask-grunt-sound-38713.mp3-d4e10b2477d6a16d8099d1cc7f6316e5.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

1
icon.svg 100644
View 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 100644
View File

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckf1rkx6fchxb"
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

74
project.godot 100644
View File

@ -0,0 +1,74 @@
; 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="Wild West Shooter"
run/main_scene="uid://qijbxpxaa5q4"
config/features=PackedStringArray("4.4", "GL Compatibility")
config/icon="res://icon.svg"
[display]
window/size/viewport_width=1280
window/size/viewport_height=720
[input]
move_up={
"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":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
move_down={
"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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
move_right={
"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":68,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
move_left={
"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":65,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
shoot={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
quit={
"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":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
reload={
"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":82,"key_label":0,"unicode":114,"location":0,"echo":false,"script":null)
]
}
move_dash={
"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":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
]
}
[layer_names]
2d_physics/layer_1="environment"
2d_physics/layer_2="player"
2d_physics/layer_3="player_hit_box"
2d_physics/layer_4="enemy_bullet"
2d_physics/layer_5="enemy_hit_box"
2d_physics/layer_6="enemy_player_detector"
2d_physics/layer_7="Star"

22
scenes/CartA.tscn 100644
View File

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://bsyvwetid4lqe"]
[ext_resource type="Texture2D" uid="uid://ca10uvbdbj86b" path="res://assets/Textures/Cart.png" id="1_krp3o"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_akbkk"]
size = Vector2(223, 144)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_86wjl"]
size = Vector2(88, 188)
[node name="StaticBody2D" type="StaticBody2D"]
[node name="Cart" type="Sprite2D" parent="."]
texture = ExtResource("1_krp3o")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-53.5, -1)
shape = SubResource("RectangleShape2D_akbkk")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="."]
position = Vector2(-60, 0)
shape = SubResource("RectangleShape2D_86wjl")

22
scenes/CartB.tscn 100644
View File

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://c7e2t3w3nglwh"]
[ext_resource type="Texture2D" uid="uid://c2nk78vdchaxu" path="res://assets/Textures/CartB.png" id="1_mugk1"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_54amy"]
size = Vector2(224, 144)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_uwxca"]
size = Vector2(87, 186)
[node name="StaticBody2D" type="StaticBody2D"]
[node name="CartB" type="Sprite2D" parent="."]
texture = ExtResource("1_mugk1")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-53, 0)
shape = SubResource("RectangleShape2D_54amy")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="."]
position = Vector2(-60.5, 0)
shape = SubResource("RectangleShape2D_uwxca")

16
scenes/House1.tscn 100644
View File

@ -0,0 +1,16 @@
[gd_scene load_steps=3 format=3 uid="uid://dvypdngwv4o"]
[ext_resource type="Texture2D" uid="uid://db7wp8wuashp6" path="res://assets/Textures/House1.png" id="1_dlj2c"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dlj2c"]
size = Vector2(531, 373)
[node name="StaticBody2D" type="StaticBody2D"]
scale = Vector2(1.3, 1.3)
[node name="House1" type="Sprite2D" parent="."]
texture = ExtResource("1_dlj2c")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(2.5, -1.5)
shape = SubResource("RectangleShape2D_dlj2c")

23
scenes/House2.tscn 100644
View File

@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=3 uid="uid://crpvk6tytbe7c"]
[ext_resource type="Texture2D" uid="uid://sx3dqsp8ufdr" path="res://assets/Textures/House2.png" id="1_262pe"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ld5cv"]
size = Vector2(1027, 373)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ixhnf"]
size = Vector2(489, 221)
[node name="StaticBody2D" type="StaticBody2D"]
scale = Vector2(1.5, 1.5)
[node name="House2" type="Sprite2D" parent="."]
texture = ExtResource("1_262pe")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(2.5, -112.5)
shape = SubResource("RectangleShape2D_ld5cv")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="."]
position = Vector2(272.5, 188.5)
shape = SubResource("RectangleShape2D_ixhnf")

22
scenes/House3.tscn 100644
View File

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://cum0sxo2wf3tf"]
[ext_resource type="Texture2D" uid="uid://db0ovvwf2a8m4" path="res://assets/Textures/House 3.png" id="1_gqdrc"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a4c8a"]
size = Vector2(907, 379)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vawxs"]
size = Vector2(372, 529)
[node name="StaticBody2D" type="StaticBody2D"]
[node name="House3" type="Sprite2D" parent="."]
texture = ExtResource("1_gqdrc")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-1.5, 269)
shape = SubResource("RectangleShape2D_a4c8a")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="."]
position = Vector2(-267, -186.5)
shape = SubResource("RectangleShape2D_vawxs")

15
scenes/House4.tscn 100644
View File

@ -0,0 +1,15 @@
[gd_scene load_steps=3 format=3 uid="uid://c8if6wexexfaq"]
[ext_resource type="Texture2D" uid="uid://dvb4cqvl8j7ox" path="res://assets/Textures/House4.png" id="1_80eh1"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_li2vw"]
size = Vector2(464, 557)
[node name="StaticBody2D" type="StaticBody2D"]
scale = Vector2(1.2, 1.2)
[node name="House4" type="Sprite2D" parent="."]
texture = ExtResource("1_80eh1")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_li2vw")

16
scenes/Kaktus.tscn 100644
View File

@ -0,0 +1,16 @@
[gd_scene load_steps=3 format=3 uid="uid://dajqv2v0slmvn"]
[ext_resource type="Texture2D" uid="uid://oxaew3t4pevy" path="res://assets/Textures/Kaktus.png" id="1_jsmpf"]
[sub_resource type="CircleShape2D" id="CircleShape2D_argff"]
radius = 36.0139
[node name="StaticBody2D" type="StaticBody2D"]
[node name="Kaktus" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = ExtResource("1_jsmpf")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-11, 1)
shape = SubResource("CircleShape2D_argff")

16
scenes/box.tscn 100644
View File

@ -0,0 +1,16 @@
[gd_scene load_steps=3 format=3 uid="uid://cyv58dh04hcau"]
[ext_resource type="Texture2D" uid="uid://ds5u8h3r3rm33" path="res://assets/Textures/Box.png" id="1_3inec"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3inec"]
size = Vector2(112, 110)
[node name="Box" type="StaticBody2D"]
collision_mask = 10
[node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.5, 0.5)
texture = ExtResource("1_3inec")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_3inec")

158
scenes/enemy.tscn 100644
View File

@ -0,0 +1,158 @@
[gd_scene load_steps=16 format=3 uid="uid://cllmxp5oqhs5a"]
[ext_resource type="Script" uid="uid://d00tcsqfapyp1" path="res://scripts/enemy.gd" id="1_4ra3w"]
[ext_resource type="Texture2D" uid="uid://dnu1wi2o77q83" path="res://assets/Textures/CowboyEnemy.png" id="1_7p1mj"]
[ext_resource type="Texture2D" uid="uid://bm00csi5uwmpy" path="res://assets/Textures/GunEnemy.png" id="2_md0e3"]
[ext_resource type="AudioStream" uid="uid://bxahpfo3u13ej" path="res://assets/Sfx/mask-grunt-sound-38713.mp3" id="4_5uy6h"]
[ext_resource type="AudioStream" uid="uid://mcywnc1a1hra" path="res://assets/Sfx/gun-shots-from-a-distance-5-96388.mp3" id="5_c4w8v"]
[ext_resource type="Texture2D" uid="uid://lpxchvf7lpl6" path="res://assets/Textures/ShotFlare.png" id="6_xwavj"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_7p1mj"]
radius = 192.0
height = 622.0
[sub_resource type="CircleShape2D" id="CircleShape2D_4ra3w"]
radius = 2486.02
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_5uy6h"]
radius = 185.0
height = 620.0
[sub_resource type="Animation" id="Animation_5uy6h"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_4ra3w"]
resource_name = "take_damage"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 0, 0, 1), Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_c4w8v"]
_data = {
&"RESET": SubResource("Animation_5uy6h"),
&"take_damage": SubResource("Animation_4ra3w")
}
[sub_resource type="Animation" id="Animation_md484"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 0.756863, 0.580392, 0)]
}
[sub_resource type="Animation" id="Animation_nenq2"]
resource_name = "enemy_gun_shot_flare"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0024982, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 0.756863, 0.580392, 0), Color(1, 0.756863, 0.580392, 1), Color(1, 0.756863, 0.580392, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ipns3"]
_data = {
&"RESET": SubResource("Animation_md484"),
&"enemy_gun_shot_flare": SubResource("Animation_nenq2")
}
[node name="Enemy" type="CharacterBody2D"]
scale = Vector2(0.2, 0.2)
collision_layer = 8
collision_mask = 13
script = ExtResource("1_4ra3w")
[node name="Body" type="Sprite2D" parent="."]
texture = ExtResource("1_7p1mj")
[node name="EnemyGun" type="Sprite2D" parent="Body"]
position = Vector2(350, 175)
rotation = -0.15708
texture = ExtResource("2_md0e3")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-47, -17)
shape = SubResource("CapsuleShape2D_7p1mj")
[node name="PlayerDetector" type="Area2D" parent="."]
collision_layer = 32
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerDetector"]
position = Vector2(-1, 0)
shape = SubResource("CircleShape2D_4ra3w")
[node name="HitBox" type="Area2D" parent="."]
collision_layer = 16
[node name="CollisionShape2D" type="CollisionShape2D" parent="HitBox"]
position = Vector2(-50, -15)
shape = SubResource("CapsuleShape2D_5uy6h")
[node name="ShootRaycast" type="RayCast2D" parent="."]
target_position = Vector2(2485, 0)
collision_mask = 3
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_c4w8v")
}
[node name="HurtSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("4_5uy6h")
volume_db = 9.143
[node name="EnemyShotSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("5_c4w8v")
[node name="ShotFlare" type="Sprite2D" parent="."]
modulate = Color(1, 0.756863, 0.580392, 0)
position = Vector2(500, 150)
rotation = -0.191986
scale = Vector2(0.527778, 0.361111)
texture = ExtResource("6_xwavj")
[node name="AnimationPlayerGun" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_ipns3")
}
[connection signal="body_entered" from="PlayerDetector" to="." method="_on_player_detector_body_entered"]
[connection signal="body_exited" from="PlayerDetector" to="." method="_on_player_detector_body_exited"]
[connection signal="body_entered" from="HitBox" to="." method="_on_hit_box_body_entered"]

13
scenes/hud.tscn 100644
View File

@ -0,0 +1,13 @@
[gd_scene load_steps=2 format=3 uid="uid://b4eh8y8nxy7lp"]
[ext_resource type="Script" uid="uid://jds7ynetjysj" path="res://scripts/hud.gd" id="1_ahhtf"]
[node name="HUD" type="Control"]
layout_mode = 3
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -68.0
offset_right = 249.0
grow_vertical = 0
script = ExtResource("1_ahhtf")

View File

@ -0,0 +1,37 @@
[gd_scene load_steps=4 format=3 uid="uid://b4eh8y8nxy7lp"]
[ext_resource type="Script" uid="uid://jds7ynetjysj" path="res://scripts/hud.gd" id="1_ahhtf"]
[sub_resource type="LabelSettings" id="LabelSettings_oo0fn"]
font_size = 35
[sub_resource type="GDScript" id="GDScript_toqtt"]
[node name="HUD" type="Control"]
layout_mode = 3
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -68.0
offset_right = 249.0
grow_vertical = 0
script = ExtResource("1_ahhtf")
[node name="lives" type="Label" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -126.5
offset_top = -61.0
offset_right = 144.5
offset_bottom = 34.0
grow_horizontal = 2
grow_vertical = 2
text = "A A A"
label_settings = SubResource("LabelSettings_oo0fn")
horizontal_alignment = 1
vertical_alignment = 1
script = SubResource("GDScript_toqtt")

View File

@ -0,0 +1,36 @@
[gd_scene load_steps=2 format=3 uid="uid://6f5bldqp1qr"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vue75"]
bg_color = Color(0.733998, 0.556958, 0.205958, 1)
corner_radius_top_left = 16
corner_radius_top_right = 16
corner_radius_bottom_right = 16
corner_radius_bottom_left = 16
shadow_size = 4
shadow_offset = Vector2(2, 2)
[node name="MainMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Button" type="Button" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -94.0
offset_top = -49.0
offset_right = 144.0
offset_bottom = 23.0
grow_horizontal = 2
grow_vertical = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 22
theme_override_styles/normal = SubResource("StyleBoxFlat_vue75")
text = "Start Game"

View File

@ -0,0 +1 @@
uid://bpnuvnt16ex0k

161
scenes/player.tscn 100644
View File

@ -0,0 +1,161 @@
[gd_scene load_steps=16 format=3 uid="uid://bq1odbf3aipjg"]
[ext_resource type="Script" uid="uid://dlsggvm2k67kh" path="res://scripts/player.gd" id="1_3vyb7"]
[ext_resource type="Texture2D" uid="uid://bjs3op5jofojm" path="res://assets/Textures/CowboyMain.png" id="2_qhqgy"]
[ext_resource type="Texture2D" uid="uid://ckw8npwiqciqe" path="res://assets/Textures/Gun.png" id="3_dqkch"]
[ext_resource type="AudioStream" uid="uid://bepk2tr7ahqrs" path="res://assets/Sfx/086409_retro-gun-shot-81545.mp3" id="4_dqkch"]
[ext_resource type="Texture2D" uid="uid://lpxchvf7lpl6" path="res://assets/Textures/ShotFlare.png" id="5_qlg0r"]
[ext_resource type="AudioStream" uid="uid://bt8cj5mfwwids" path="res://assets/Sfx/clean-revolver-reload-6889.mp3" id="6_tuyoq"]
[ext_resource type="AudioStream" uid="uid://rgdm55v4k4ut" path="res://assets/Sfx/empty-gun-shot-6209.mp3" id="7_fjrip"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_qhqgy"]
radius = 36.0
height = 124.0
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_dqkch"]
radius = 36.0
height = 124.0
[sub_resource type="Animation" id="Animation_tuyoq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_qlg0r"]
resource_name = "shot_flare"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0102053, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 0.945098, 0, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fjrip"]
_data = {
&"RESET": SubResource("Animation_tuyoq"),
&"shot_flare": SubResource("Animation_qlg0r")
}
[sub_resource type="Animation" id="Animation_fjrip"]
resource_name = "Hurt"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 0, 0, 1), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_smehm"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ur7pv"]
_data = {
&"Hurt": SubResource("Animation_fjrip"),
&"RESET": SubResource("Animation_smehm")
}
[node name="Player" type="CharacterBody2D"]
collision_layer = 2
collision_mask = 57
script = ExtResource("1_3vyb7")
[node name="Body" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = ExtResource("2_qhqgy")
[node name="Gun" type="Sprite2D" parent="Body"]
position = Vector2(350, 180)
rotation = -0.174533
scale = Vector2(0.344421, 0.531273)
texture = ExtResource("3_dqkch")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_qhqgy")
[node name="Camera2D" type="Camera2D" parent="."]
[node name="HitBox" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 72
[node name="CollisionShape2D2" type="CollisionShape2D" parent="HitBox"]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_dqkch")
debug_color = Color(0.965523, 0.158914, 0.253109, 0.42)
[node name="CameraRemoteTransform" type="RemoteTransform2D" parent="."]
[node name="ShootRaycast" type="RayCast2D" parent="."]
position = Vector2(26, 1)
target_position = Vector2(700, 0)
collision_mask = 9
collide_with_areas = true
[node name="ShotFlare" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
position = Vector2(100, 31)
rotation = -0.191986
scale = Vector2(0.124247, 0.0768767)
texture = ExtResource("5_qlg0r")
[node name="ShootSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("4_dqkch")
[node name="ReloadSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_tuyoq")
[node name="EmptyGunSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("7_fjrip")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_fjrip")
}
[node name="ReloadTimer" type="Timer" parent="."]
wait_time = 3.0
one_shot = true
[node name="AnimationPlayerHurt" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_ur7pv")
}
[connection signal="body_entered" from="HitBox" to="." method="_on_hit_box_body_entered"]

View File

@ -0,0 +1,161 @@
[gd_scene load_steps=16 format=3 uid="uid://bq1odbf3aipjg"]
[ext_resource type="Script" uid="uid://dlsggvm2k67kh" path="res://scripts/player.gd" id="1_3vyb7"]
[ext_resource type="Texture2D" uid="uid://bjs3op5jofojm" path="res://assets/Textures/CowboyMain.png" id="2_qhqgy"]
[ext_resource type="Texture2D" uid="uid://ckw8npwiqciqe" path="res://assets/Textures/Gun.png" id="3_dqkch"]
[ext_resource type="AudioStream" uid="uid://bepk2tr7ahqrs" path="res://assets/Sfx/086409_retro-gun-shot-81545.mp3" id="4_dqkch"]
[ext_resource type="Texture2D" uid="uid://lpxchvf7lpl6" path="res://assets/Textures/ShotFlare.png" id="5_qlg0r"]
[ext_resource type="AudioStream" uid="uid://bt8cj5mfwwids" path="res://assets/Sfx/clean-revolver-reload-6889.mp3" id="6_tuyoq"]
[ext_resource type="AudioStream" uid="uid://rgdm55v4k4ut" path="res://assets/Sfx/empty-gun-shot-6209.mp3" id="7_fjrip"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_qhqgy"]
radius = 36.0
height = 124.0
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_dqkch"]
radius = 36.0
height = 124.0
[sub_resource type="Animation" id="Animation_tuyoq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_qlg0r"]
resource_name = "shot_flare"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0102053, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 0.945098, 0, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fjrip"]
_data = {
&"RESET": SubResource("Animation_tuyoq"),
&"shot_flare": SubResource("Animation_qlg0r")
}
[sub_resource type="Animation" id="Animation_fjrip"]
resource_name = "Hurt"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 0, 0, 1), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_smehm"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ur7pv"]
_data = {
&"Hurt": SubResource("Animation_fjrip"),
&"RESET": SubResource("Animation_smehm")
}
[node name="Player" type="CharacterBody2D"]
collision_layer = 2
collision_mask = 57
script = ExtResource("1_3vyb7")
[node name="Body" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = ExtResource("2_qhqgy")
[node name="Gun" type="Sprite2D" parent="Body"]
position = Vector2(350, 180)
rotation = -0.174533
scale = Vector2(0.344421, 0.531273)
texture = ExtResource("3_dqkch")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_qhqgy")
[node name="Camera2D" type="Camera2D" parent="."]
[node name="HitBox" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 8
[node name="CollisionShape2D2" type="CollisionShape2D" parent="HitBox"]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_dqkch")
debug_color = Color(0.965523, 0.158914, 0.253109, 0.42)
[node name="CameraRemoteTransform" type="RemoteTransform2D" parent="."]
[node name="ShootRaycast" type="RayCast2D" parent="."]
position = Vector2(26, 1)
target_position = Vector2(700, 0)
collision_mask = 9
collide_with_areas = true
[node name="ShotFlare" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
position = Vector2(100, 31)
rotation = -0.191986
scale = Vector2(0.124247, 0.0768767)
texture = ExtResource("5_qlg0r")
[node name="ShootSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("4_dqkch")
[node name="ReloadSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_tuyoq")
[node name="EmptyGunSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("7_fjrip")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_fjrip")
}
[node name="ReloadTimer" type="Timer" parent="."]
wait_time = 3.0
one_shot = true
[node name="AnimationPlayerHurt" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_ur7pv")
}
[connection signal="body_entered" from="HitBox" to="." method="_on_hit_box_body_entered"]

View File

@ -0,0 +1,161 @@
[gd_scene load_steps=16 format=3 uid="uid://bq1odbf3aipjg"]
[ext_resource type="Script" uid="uid://dlsggvm2k67kh" path="res://scripts/player.gd" id="1_3vyb7"]
[ext_resource type="Texture2D" uid="uid://bjs3op5jofojm" path="res://assets/Textures/CowboyMain.png" id="2_qhqgy"]
[ext_resource type="Texture2D" uid="uid://ckw8npwiqciqe" path="res://assets/Textures/Gun.png" id="3_dqkch"]
[ext_resource type="AudioStream" uid="uid://bepk2tr7ahqrs" path="res://assets/Sfx/086409_retro-gun-shot-81545.mp3" id="4_dqkch"]
[ext_resource type="Texture2D" uid="uid://lpxchvf7lpl6" path="res://assets/Textures/ShotFlare.png" id="5_qlg0r"]
[ext_resource type="AudioStream" uid="uid://bt8cj5mfwwids" path="res://assets/Sfx/clean-revolver-reload-6889.mp3" id="6_tuyoq"]
[ext_resource type="AudioStream" uid="uid://rgdm55v4k4ut" path="res://assets/Sfx/empty-gun-shot-6209.mp3" id="7_fjrip"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_qhqgy"]
radius = 36.0
height = 124.0
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_dqkch"]
radius = 36.0
height = 124.0
[sub_resource type="Animation" id="Animation_tuyoq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_qlg0r"]
resource_name = "shot_flare"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0102053, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 0.945098, 0, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fjrip"]
_data = {
&"RESET": SubResource("Animation_tuyoq"),
&"shot_flare": SubResource("Animation_qlg0r")
}
[sub_resource type="Animation" id="Animation_fjrip"]
resource_name = "Hurt"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 0, 0, 1), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_smehm"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ur7pv"]
_data = {
&"Hurt": SubResource("Animation_fjrip"),
&"RESET": SubResource("Animation_smehm")
}
[node name="Player" type="CharacterBody2D"]
collision_layer = 2
collision_mask = 57
script = ExtResource("1_3vyb7")
[node name="Body" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = ExtResource("2_qhqgy")
[node name="Gun" type="Sprite2D" parent="Body"]
position = Vector2(350, 180)
rotation = -0.174533
scale = Vector2(0.344421, 0.531273)
texture = ExtResource("3_dqkch")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_qhqgy")
[node name="Camera2D" type="Camera2D" parent="."]
[node name="HitBox" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 8
[node name="CollisionShape2D2" type="CollisionShape2D" parent="HitBox"]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_dqkch")
debug_color = Color(0.965523, 0.158914, 0.253109, 0.42)
[node name="CameraRemoteTransform" type="RemoteTransform2D" parent="."]
[node name="ShootRaycast" type="RayCast2D" parent="."]
position = Vector2(26, 1)
target_position = Vector2(700, 0)
collision_mask = 9
collide_with_areas = true
[node name="ShotFlare" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
position = Vector2(100, 31)
rotation = -0.191986
scale = Vector2(0.124247, 0.0768767)
texture = ExtResource("5_qlg0r")
[node name="ShootSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("4_dqkch")
[node name="ReloadSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_tuyoq")
[node name="EmptyGunSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("7_fjrip")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_fjrip")
}
[node name="ReloadTimer" type="Timer" parent="."]
wait_time = 3.0
one_shot = true
[node name="AnimationPlayerHurt" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_ur7pv")
}
[connection signal="body_entered" from="HitBox" to="." method="_on_hit_box_body_entered"]

View File

@ -0,0 +1,161 @@
[gd_scene load_steps=16 format=3 uid="uid://bq1odbf3aipjg"]
[ext_resource type="Script" uid="uid://dlsggvm2k67kh" path="res://scripts/player.gd" id="1_3vyb7"]
[ext_resource type="Texture2D" uid="uid://bjs3op5jofojm" path="res://assets/Textures/CowboyMain.png" id="2_qhqgy"]
[ext_resource type="Texture2D" uid="uid://ckw8npwiqciqe" path="res://assets/Textures/Gun.png" id="3_dqkch"]
[ext_resource type="AudioStream" uid="uid://bepk2tr7ahqrs" path="res://assets/Sfx/086409_retro-gun-shot-81545.mp3" id="4_dqkch"]
[ext_resource type="Texture2D" uid="uid://lpxchvf7lpl6" path="res://assets/Textures/ShotFlare.png" id="5_qlg0r"]
[ext_resource type="AudioStream" uid="uid://bt8cj5mfwwids" path="res://assets/Sfx/clean-revolver-reload-6889.mp3" id="6_tuyoq"]
[ext_resource type="AudioStream" uid="uid://rgdm55v4k4ut" path="res://assets/Sfx/empty-gun-shot-6209.mp3" id="7_fjrip"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_qhqgy"]
radius = 36.0
height = 124.0
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_dqkch"]
radius = 36.0
height = 124.0
[sub_resource type="Animation" id="Animation_tuyoq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_qlg0r"]
resource_name = "shot_flare"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0102053, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 0.945098, 0, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fjrip"]
_data = {
&"RESET": SubResource("Animation_tuyoq"),
&"shot_flare": SubResource("Animation_qlg0r")
}
[sub_resource type="Animation" id="Animation_fjrip"]
resource_name = "Hurt"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 0, 0, 1), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_smehm"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ur7pv"]
_data = {
&"Hurt": SubResource("Animation_fjrip"),
&"RESET": SubResource("Animation_smehm")
}
[node name="Player" type="CharacterBody2D"]
collision_layer = 2
collision_mask = 57
script = ExtResource("1_3vyb7")
[node name="Body" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = ExtResource("2_qhqgy")
[node name="Gun" type="Sprite2D" parent="Body"]
position = Vector2(350, 180)
rotation = -0.174533
scale = Vector2(0.344421, 0.531273)
texture = ExtResource("3_dqkch")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_qhqgy")
[node name="Camera2D" type="Camera2D" parent="."]
[node name="HitBox" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 8
[node name="CollisionShape2D2" type="CollisionShape2D" parent="HitBox"]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_dqkch")
debug_color = Color(0.965523, 0.158914, 0.253109, 0.42)
[node name="CameraRemoteTransform" type="RemoteTransform2D" parent="."]
[node name="ShootRaycast" type="RayCast2D" parent="."]
position = Vector2(26, 1)
target_position = Vector2(700, 0)
collision_mask = 9
collide_with_areas = true
[node name="ShotFlare" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
position = Vector2(100, 31)
rotation = -0.191986
scale = Vector2(0.124247, 0.0768767)
texture = ExtResource("5_qlg0r")
[node name="ShootSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("4_dqkch")
[node name="ReloadSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_tuyoq")
[node name="EmptyGunSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("7_fjrip")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_fjrip")
}
[node name="ReloadTimer" type="Timer" parent="."]
wait_time = 3.0
one_shot = true
[node name="AnimationPlayerHurt" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_ur7pv")
}
[connection signal="body_entered" from="HitBox" to="." method="_on_hit_box_body_entered"]

View File

@ -0,0 +1,161 @@
[gd_scene load_steps=16 format=3 uid="uid://bq1odbf3aipjg"]
[ext_resource type="Script" uid="uid://dlsggvm2k67kh" path="res://scripts/player.gd" id="1_3vyb7"]
[ext_resource type="Texture2D" uid="uid://bjs3op5jofojm" path="res://assets/Textures/CowboyMain.png" id="2_qhqgy"]
[ext_resource type="Texture2D" uid="uid://ckw8npwiqciqe" path="res://assets/Textures/Gun.png" id="3_dqkch"]
[ext_resource type="AudioStream" uid="uid://bepk2tr7ahqrs" path="res://assets/Sfx/086409_retro-gun-shot-81545.mp3" id="4_dqkch"]
[ext_resource type="Texture2D" uid="uid://lpxchvf7lpl6" path="res://assets/Textures/ShotFlare.png" id="5_qlg0r"]
[ext_resource type="AudioStream" uid="uid://bt8cj5mfwwids" path="res://assets/Sfx/clean-revolver-reload-6889.mp3" id="6_tuyoq"]
[ext_resource type="AudioStream" uid="uid://rgdm55v4k4ut" path="res://assets/Sfx/empty-gun-shot-6209.mp3" id="7_fjrip"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_qhqgy"]
radius = 36.0
height = 124.0
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_dqkch"]
radius = 36.0
height = 124.0
[sub_resource type="Animation" id="Animation_tuyoq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_qlg0r"]
resource_name = "shot_flare"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ShotFlare:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0102053, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 0.945098, 0, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fjrip"]
_data = {
&"RESET": SubResource("Animation_tuyoq"),
&"shot_flare": SubResource("Animation_qlg0r")
}
[sub_resource type="Animation" id="Animation_fjrip"]
resource_name = "Hurt"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 0, 0, 1), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_smehm"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ur7pv"]
_data = {
&"Hurt": SubResource("Animation_fjrip"),
&"RESET": SubResource("Animation_smehm")
}
[node name="Player" type="CharacterBody2D"]
collision_layer = 2
collision_mask = 57
script = ExtResource("1_3vyb7")
[node name="Body" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = ExtResource("2_qhqgy")
[node name="Gun" type="Sprite2D" parent="Body"]
position = Vector2(350, 180)
rotation = -0.174533
scale = Vector2(0.344421, 0.531273)
texture = ExtResource("3_dqkch")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_qhqgy")
[node name="Camera2D" type="Camera2D" parent="."]
[node name="HitBox" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 8
[node name="CollisionShape2D2" type="CollisionShape2D" parent="HitBox"]
position = Vector2(-12, -4)
shape = SubResource("CapsuleShape2D_dqkch")
debug_color = Color(0.965523, 0.158914, 0.253109, 0.42)
[node name="CameraRemoteTransform" type="RemoteTransform2D" parent="."]
[node name="ShootRaycast" type="RayCast2D" parent="."]
position = Vector2(26, 1)
target_position = Vector2(700, 0)
collision_mask = 9
collide_with_areas = true
[node name="ShotFlare" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
position = Vector2(100, 31)
rotation = -0.191986
scale = Vector2(0.124247, 0.0768767)
texture = ExtResource("5_qlg0r")
[node name="ShootSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("4_dqkch")
[node name="ReloadSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_tuyoq")
[node name="EmptyGunSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("7_fjrip")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_fjrip")
}
[node name="ReloadTimer" type="Timer" parent="."]
wait_time = 3.0
one_shot = true
[node name="AnimationPlayerHurt" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_ur7pv")
}
[connection signal="body_entered" from="HitBox" to="." method="_on_hit_box_body_entered"]

View File

@ -0,0 +1,9 @@
[gd_scene load_steps=2 format=3 uid="uid://cuyslukg667iq"]
[ext_resource type="Texture2D" uid="uid://cs13khergutls" path="res://assets/Textures/Rolling grass.png" id="1_lp36u"]
[node name="StaticBody2D" type="StaticBody2D"]
[node name="RollingGrass" type="Sprite2D" parent="."]
scale = Vector2(0.357367, 0.383838)
texture = ExtResource("1_lp36u")

24
scenes/star.tscn 100644
View File

@ -0,0 +1,24 @@
[gd_scene load_steps=5 format=3 uid="uid://el4tpsvcf0ph"]
[ext_resource type="Texture2D" uid="uid://d14vbbllot6wo" path="res://assets/Textures/SheriffStar.png" id="1_j6vao"]
[ext_resource type="Script" uid="uid://dqlaal1fu87i7" path="res://scripts/star.gd" id="2_ef0hr"]
[ext_resource type="AudioStream" uid="uid://d1anpf3ejht4d" path="res://assets/Sfx/coin-recieved-230517.mp3" id="3_ef0hr"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_mcqwg"]
radius = 47.0
height = 114.0
[node name="Area2D" type="Area2D"]
collision_layer = 64
collision_mask = 6
script = ExtResource("2_ef0hr")
[node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.251627, 0.246914)
texture = ExtResource("1_j6vao")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_mcqwg")
[node name="CoinSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_ef0hr")

23
scenes/tavern.tscn 100644
View File

@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=3 uid="uid://0exwphbbiaxa"]
[ext_resource type="Texture2D" uid="uid://btki3nbkxml54" path="res://assets/Textures/Tavern.png" id="1_ydnal"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ejety"]
size = Vector2(740, 652)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ydnal"]
size = Vector2(147.5, 76)
[node name="StaticBody2D" type="StaticBody2D"]
[node name="Tavern" type="Sprite2D" parent="."]
scale = Vector2(1.5, 1.5)
texture = ExtResource("1_ydnal")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(5, -39)
shape = SubResource("RectangleShape2D_ejety")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="."]
position = Vector2(234.25, 325)
shape = SubResource("RectangleShape2D_ydnal")

View File

@ -0,0 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://b4hn065v361ha"]
[ext_resource type="Texture2D" uid="uid://bsxg617g5diih" path="res://assets/Textures/WaterStall.png" id="1_awefr"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ahs2c"]
size = Vector2(314, 64)
[node name="StaticBody2D" type="StaticBody2D"]
[node name="WaterStall" type="Sprite2D" parent="."]
texture = ExtResource("1_awefr")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_ahs2c")

View File

@ -0,0 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://chjw20nw0dpuf"]
[ext_resource type="Texture2D" uid="uid://bjsdt8s5iep2v" path="res://assets/Textures/WaterWell.png" id="1_tanvq"]
[sub_resource type="CircleShape2D" id="CircleShape2D_tmbtx"]
radius = 139.517
[node name="StaticBody2D" type="StaticBody2D"]
[node name="WaterWell" type="Sprite2D" parent="."]
texture = ExtResource("1_tanvq")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_tmbtx")

584
scenes/world.tscn 100644
View File

@ -0,0 +1,584 @@
[gd_scene load_steps=24 format=3 uid="uid://qijbxpxaa5q4"]
[ext_resource type="Script" uid="uid://b7ek5hwa3xnp" path="res://scripts/world.gd" id="1_k0juu"]
[ext_resource type="PackedScene" uid="uid://cyv58dh04hcau" path="res://scenes/box.tscn" id="1_rwgxs"]
[ext_resource type="PackedScene" uid="uid://bq1odbf3aipjg" path="res://scenes/player.tscn" id="2_4wyf3"]
[ext_resource type="PackedScene" uid="uid://b4eh8y8nxy7lp" path="res://scenes/hud.tscn" id="2_71j4m"]
[ext_resource type="PackedScene" uid="uid://cllmxp5oqhs5a" path="res://scenes/enemy.tscn" id="3_4wyf3"]
[ext_resource type="PackedScene" uid="uid://cuyslukg667iq" path="res://scenes/rollingGrass.tscn" id="5_4mrxx"]
[ext_resource type="PackedScene" uid="uid://0exwphbbiaxa" path="res://scenes/tavern.tscn" id="6_qfnet"]
[ext_resource type="PackedScene" uid="uid://bsyvwetid4lqe" path="res://scenes/CartA.tscn" id="7_i7141"]
[ext_resource type="PackedScene" uid="uid://crpvk6tytbe7c" path="res://scenes/House2.tscn" id="10_q5onr"]
[ext_resource type="PackedScene" uid="uid://cum0sxo2wf3tf" path="res://scenes/House3.tscn" id="11_jhx03"]
[ext_resource type="PackedScene" uid="uid://c8if6wexexfaq" path="res://scenes/House4.tscn" id="12_o8fc1"]
[ext_resource type="PackedScene" uid="uid://dvypdngwv4o" path="res://scenes/House1.tscn" id="13_jhx03"]
[ext_resource type="PackedScene" uid="uid://chjw20nw0dpuf" path="res://scenes/waterWell.tscn" id="14_o8fc1"]
[ext_resource type="PackedScene" uid="uid://b4hn065v361ha" path="res://scenes/waterStall.tscn" id="15_xo05s"]
[ext_resource type="PackedScene" uid="uid://c7e2t3w3nglwh" path="res://scenes/CartB.tscn" id="16_dss4m"]
[ext_resource type="PackedScene" uid="uid://el4tpsvcf0ph" path="res://scenes/star.tscn" id="17_7t5mc"]
[ext_resource type="AudioStream" uid="uid://belgyw5bcasel" path="res://assets/Sfx/success-fanfare-trumpets-6185.mp3" id="17_lakw3"]
[sub_resource type="LabelSettings" id="LabelSettings_71j4m"]
font_size = 30
outline_size = 3
outline_color = Color(0, 0, 0, 1)
[sub_resource type="LabelSettings" id="LabelSettings_qfnet"]
font_size = 30
outline_size = 3
outline_color = Color(0, 0, 0, 1)
shadow_size = 4
[sub_resource type="LabelSettings" id="LabelSettings_dss4m"]
font_size = 30
outline_size = 3
outline_color = Color(0, 0, 0, 1)
shadow_size = 4
[sub_resource type="LabelSettings" id="LabelSettings_7t5mc"]
font_size = 64
outline_size = 10
outline_color = Color(0, 0, 0, 1)
[sub_resource type="LabelSettings" id="LabelSettings_lakw3"]
font_size = 64
outline_size = 10
outline_color = Color(0, 0, 0, 1)
[sub_resource type="QuadMesh" id="QuadMesh_e5uuo"]
[node name="World" type="Node2D"]
script = ExtResource("1_k0juu")
[node name="UI" type="CanvasLayer" parent="."]
[node name="HUD" parent="UI" instance=ExtResource("2_71j4m")]
offset_left = 1.0
offset_top = -739.0
offset_right = 1131.0
offset_bottom = -26.0
[node name="HitPoints" type="Label" parent="UI/HUD"]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -126.0
offset_right = 228.0
grow_vertical = 0
label_settings = SubResource("LabelSettings_71j4m")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Bullets" type="Label" parent="UI/HUD"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -201.0
offset_top = -157.0
grow_horizontal = 0
grow_vertical = 0
label_settings = SubResource("LabelSettings_qfnet")
horizontal_alignment = 1
vertical_alignment = 1
[node name="StarsLeft" type="Label" parent="UI/HUD"]
layout_mode = 1
offset_left = 50.0
offset_top = 18.0
offset_right = 211.0
offset_bottom = 107.0
text = "Test"
label_settings = SubResource("LabelSettings_dss4m")
horizontal_alignment = 1
vertical_alignment = 2
[node name="YouWonLabel" type="Label" parent="UI/HUD"]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -155.0
offset_top = -41.5
offset_right = 155.0
offset_bottom = 41.5
grow_horizontal = 2
grow_vertical = 2
text = "YOU WON! "
label_settings = SubResource("LabelSettings_7t5mc")
horizontal_alignment = 1
vertical_alignment = 1
[node name="GameOverLabel" type="Label" parent="UI/HUD"]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -174.0
offset_top = -44.0
offset_right = 174.0
offset_bottom = 44.0
grow_horizontal = 2
grow_vertical = 2
text = "Game Over"
label_settings = SubResource("LabelSettings_lakw3")
horizontal_alignment = 1
vertical_alignment = 1
[node name="MeshInstance2D" type="MeshInstance2D" parent="."]
modulate = Color(1, 0.879678, 0.574319, 1)
position = Vector2(748.5, 648)
scale = Vector2(8899, 6418)
mesh = SubResource("QuadMesh_e5uuo")
metadata/_edit_lock_ = true
[node name="Box" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(270, 182)
rotation = -1.46433
[node name="Box2" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(456, 167)
[node name="Box13" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1341, -1339)
[node name="Box14" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1341, -1203)
rotation = -0.122173
[node name="Box15" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(2738, -1330)
rotation = -0.122173
[node name="Box18" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(2638, -1204)
[node name="Box16" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(2763, -1194)
rotation = 0.122173
[node name="Box17" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(2608, -1339)
rotation = -0.122173
[node name="CartA" parent="." instance=ExtResource("7_i7141")]
position = Vector2(-220, 621)
rotation = 0.0523599
[node name="StaticBody2D" parent="CartA" instance=ExtResource("5_4mrxx")]
position = Vector2(314.561, 250.881)
[node name="CartA5" parent="." instance=ExtResource("7_i7141")]
position = Vector2(486, 2146)
rotation = 0.0523599
[node name="StaticBody2D" parent="CartA5" instance=ExtResource("5_4mrxx")]
position = Vector2(314.561, 250.881)
[node name="CartA4" parent="." instance=ExtResource("7_i7141")]
position = Vector2(2441, -1175)
rotation = 1.5708
[node name="CartA3" parent="." instance=ExtResource("7_i7141")]
position = Vector2(892, -1219)
rotation = 0.0523599
[node name="StaticBody2D" parent="CartA3" instance=ExtResource("5_4mrxx")]
position = Vector2(-235.546, -99.8092)
[node name="CartA2" parent="." instance=ExtResource("7_i7141")]
position = Vector2(1829, 2688)
rotation = 0.0523599
[node name="StaticBody2D" parent="CartA2" instance=ExtResource("5_4mrxx")]
position = Vector2(224.734, -202.039)
[node name="Player" parent="." instance=ExtResource("2_4wyf3")]
position = Vector2(492, 337)
[node name="Enemy" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(874, -984)
rotation = 2.90074
[node name="Enemy2" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(1293, 708)
rotation = 3.70708
[node name="Enemy3" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(1119, 737)
rotation = 5.4943
[node name="Enemy12" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(2619, 2136)
rotation = 5.4943
[node name="Enemy13" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(2920, 2157)
rotation = 3.1765
[node name="Enemy14" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(3308, 1802)
rotation = 3.1765
[node name="Enemy15" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(1287, 2324)
rotation = 3.1765
[node name="Enemy16" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(-559, 2324)
rotation = -1.09432
[node name="Enemy4" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(-2089, 1582)
rotation = 5.4943
[node name="Enemy5" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(-1855, 1677)
rotation = 5.4943
[node name="Enemy6" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(-2222, -847)
rotation = 5.4943
[node name="Enemy7" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(-2044, -1125)
rotation = 0.975639
[node name="Enemy8" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(-1722, -1086)
rotation = 2.20086
[node name="Enemy9" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(1169, -1064)
rotation = 5.4943
[node name="Enemy10" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(2642, -858)
rotation = 2.68781
[node name="Enemy11" parent="." instance=ExtResource("3_4wyf3")]
position = Vector2(2393, -919)
rotation = 0.858702
[node name="MainCamera" type="Camera2D" parent="."]
[node name="Tavern" parent="." instance=ExtResource("6_qfnet")]
position = Vector2(519, -222)
[node name="Tavern3" parent="." instance=ExtResource("6_qfnet")]
position = Vector2(-359, 1093)
rotation = 3.14159
[node name="Tavern2" parent="." instance=ExtResource("6_qfnet")]
position = Vector2(-490, -213)
[node name="StaticBody2D" parent="." instance=ExtResource("10_q5onr")]
position = Vector2(1880, 841)
rotation = 1.5708
[node name="StaticBody2D" parent="StaticBody2D" instance=ExtResource("11_jhx03")]
position = Vector2(-1422.67, 383.339)
rotation = 1.5708
[node name="StaticBody2D" parent="StaticBody2D/StaticBody2D" instance=ExtResource("12_o8fc1")]
position = Vector2(758.002, 195.327)
rotation = 3.14159
[node name="StaticBody2D2" parent="StaticBody2D" instance=ExtResource("11_jhx03")]
position = Vector2(-494.671, -1082.66)
rotation = 1.5708
[node name="StaticBody2D" parent="StaticBody2D/StaticBody2D2" instance=ExtResource("12_o8fc1")]
position = Vector2(-126.672, -742.666)
rotation = 4.71239
[node name="StaticBody2D3" parent="StaticBody2D" instance=ExtResource("11_jhx03")]
position = Vector2(-1427.34, -548.662)
rotation = 1.5708
[node name="StaticBody2D" parent="StaticBody2D/StaticBody2D3" instance=ExtResource("12_o8fc1")]
position = Vector2(-819.334, -47.3273)
rotation = 3.14159
[node name="Box3" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(124, 1006)
rotation = 2.90597
[node name="Box19" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-1654, 2194)
rotation = 1.80816
[node name="Box22" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-1782, 2073)
rotation = 1.70868
[node name="Box20" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-1640, 2052)
rotation = 2.90597
[node name="Box21" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-1637, 1910)
rotation = 1.56381
[node name="Box23" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-1581, 965)
rotation = 1.56381
[node name="Box38" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-2430, 464)
rotation = 1.56381
[node name="Box39" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-2558, 457)
rotation = 0.0994838
[node name="Box24" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-1504, 1149)
rotation = 1.56381
[node name="Box25" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-1426, 1009)
rotation = 0.221657
[node name="Box40" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-20, 1543)
rotation = 0.221657
[node name="Box33" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(199, 2158)
rotation = 0.221657
[node name="Box34" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(49, 2154)
rotation = -1.60919
[node name="Box41" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-161, 1548)
rotation = -0.144862
[node name="Box35" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1672, 1709)
rotation = -1.60919
[node name="Box36" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1678, 1832)
rotation = -1.60919
[node name="Box37" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1535, 1763)
rotation = -2.95135
[node name="Box26" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-921, -1311)
rotation = 0.221657
[node name="Box27" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-750, -1335)
rotation = -0.144862
[node name="Box28" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-338, -1078)
rotation = -0.144862
[node name="Box29" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-2312, -1215)
rotation = -0.144862
[node name="Box30" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-1609, -1233)
rotation = 0.0994838
[node name="Box31" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-2333, -476)
rotation = 0.0994838
[node name="Box32" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(-2341, -610)
rotation = 1.56381
[node name="Box4" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(3408, 2594)
[node name="Box6" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(3648, 2528)
[node name="Box7" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(3765, 2592)
[node name="Box8" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(2481, 2393)
[node name="Box9" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1831, 2511)
[node name="Box10" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1949, 2515)
rotation = 1.5708
[node name="Box11" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1574, 2740)
rotation = 1.5708
[node name="Box12" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(1576, 2866)
rotation = 1.5708
[node name="Box5" parent="." instance=ExtResource("1_rwgxs")]
position = Vector2(3519, 2507)
rotation = 2.90597
[node name="StaticBody2D2" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(-655, -1681)
[node name="StaticBody2D3" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(-1280, -1580)
rotation = 1.5708
[node name="StaticBody2D4" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(-1277, -137)
rotation = 1.5708
[node name="StaticBody2D23" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(2050, 3227)
rotation = 1.5708
[node name="StaticBody2D24" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(-2806, 2640)
rotation = 1.5708
[node name="StaticBody2D25" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(-647, -2430)
rotation = 1.5708
[node name="StaticBody2D26" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(-3418, -607)
rotation = 1.5708
[node name="StaticBody2D27" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(-3424, 592)
rotation = 1.5708
[node name="StaticBody2D28" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(3762, -2209)
rotation = 1.5708
[node name="StaticBody2D32" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(2593, -2416)
[node name="StaticBody2D33" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(1370, -2404)
[node name="StaticBody2D29" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(4575, -87.0002)
rotation = 1.5708
[node name="StaticBody2D30" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(4575, 1228)
rotation = 1.5708
[node name="StaticBody2D31" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(4630, 2707)
[node name="StaticBody2D8" parent="." instance=ExtResource("13_jhx03")]
position = Vector2(-1934, 2547)
[node name="StaticBody2D5" parent="." instance=ExtResource("11_jhx03")]
position = Vector2(-2290, -1186)
rotation = 1.5708
scale = Vector2(1.6, 1.6)
[node name="StaticBody2D6" parent="." instance=ExtResource("14_o8fc1")]
position = Vector2(770, 1064)
[node name="StaticBody2D" parent="StaticBody2D6" instance=ExtResource("15_xo05s")]
position = Vector2(-1297, -944)
[node name="StaticBody2D2" parent="StaticBody2D6" instance=ExtResource("15_xo05s")]
position = Vector2(-3110, -53)
rotation = 1.5708
[node name="StaticBody2D17" parent="." instance=ExtResource("14_o8fc1")]
position = Vector2(-1922, -892)
rotation = 0.975639
[node name="StaticBody2D" parent="StaticBody2D17" instance=ExtResource("15_xo05s")]
position = Vector2(5444, 2825)
rotation = 1.5708
[node name="StaticBody2D7" parent="." instance=ExtResource("16_dss4m")]
position = Vector2(1580, 442)
rotation = 1.69297
[node name="StaticBody2D15" parent="." instance=ExtResource("16_dss4m")]
position = Vector2(172, 1319)
rotation = 1.69297
[node name="StaticBody2D22" parent="." instance=ExtResource("16_dss4m")]
position = Vector2(-1629, -122)
rotation = 1.5708
[node name="StaticBody2D21" parent="." instance=ExtResource("16_dss4m")]
position = Vector2(-2369, 2290)
rotation = 1.69297
[node name="StaticBody2D16" parent="." instance=ExtResource("16_dss4m")]
position = Vector2(3384, 254)
rotation = 1.69297
[node name="StaticBody2D18" parent="." instance=ExtResource("16_dss4m")]
position = Vector2(2179, -1121)
rotation = 1.69297
[node name="StaticBody2D10" parent="." instance=ExtResource("11_jhx03")]
position = Vector2(-814, 2443)
scale = Vector2(1.6, 1.6)
[node name="StaticBody2D9" parent="." instance=ExtResource("12_o8fc1")]
position = Vector2(-2563, -10)
rotation = 4.71239
scale = Vector2(1.7, 1.7)
[node name="Area2D" parent="." instance=ExtResource("17_7t5mc")]
position = Vector2(1170, -1250)
[node name="Area2D2" parent="." instance=ExtResource("17_7t5mc")]
position = Vector2(3305, 2153)
[node name="Area2D3" parent="." instance=ExtResource("17_7t5mc")]
position = Vector2(-2127, 2186)
[node name="StaticBody2D11" parent="." instance=ExtResource("10_q5onr")]
position = Vector2(734, 2714)
scale = Vector2(-1.5, -1.5)
[node name="StaticBody2D14" parent="." instance=ExtResource("10_q5onr")]
position = Vector2(3319, 2770)
scale = Vector2(-1.5, -1.5)
[node name="StaticBody2D12" parent="." instance=ExtResource("6_qfnet")]
position = Vector2(2133, 2042)
rotation = -1.5708
[node name="StaticBody2D19" parent="." instance=ExtResource("6_qfnet")]
position = Vector2(-2694, 910)
rotation = -1.5708
[node name="StaticBody2D20" parent="." instance=ExtResource("6_qfnet")]
position = Vector2(-2699, 1734)
rotation = -1.5708
[node name="StaticBody2D13" parent="." instance=ExtResource("6_qfnet")]
position = Vector2(3776, 2052)
rotation = -4.71239
[node name="WinSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("17_lakw3")

86
scripts/enemy.gd 100644
View File

@ -0,0 +1,86 @@
extends CharacterBody2D
class_name Enemy
@onready var animplayer = $AnimationPlayer
@onready var animplayerGun = $AnimationPlayerGun
@onready var shoot_raycast = $ShootRaycast
@onready var shoot_sound = $EnemyShotSound
@onready var hurt_sound = $HurtSound
var player: Player = null
var hit_chance: float = 0.3
var speed: float = 100.0
var direction := Vector2.ZERO
var stop_distance := 200.0
var hit_points: int = 3
var justShot: bool = false
func _process(delta: float) -> void:
if player != null:
look_at(player.global_position)
func _physics_process(delta: float) -> void:
if player != null:
var enemy_to_player = (player.global_position - global_position)
await get_tree().create_timer(0.5).timeout
enemy_shoot()
if enemy_to_player.length() > stop_distance:
direction = enemy_to_player.normalized()
else:
direction = Vector2.ZERO
if direction != Vector2.ZERO:
velocity = speed * direction
else:
velocity.x = move_toward(velocity.x, 0, speed)
velocity.y = move_toward(velocity.y, 0, speed)
move_and_slide()
#func _on_hit_box_body_entered(body: Node2D) -> void:
#pass
func _on_player_detector_body_entered(body: Node2D) -> void:
if body is Player:
if player == null:
player = body
print (name + " found the player")
func _on_player_detector_body_exited(body: Node2D) -> void:
if body is Player:
if player != null:
player = null
print (name + " lost the player")
func take_damage(amount: int):
if amount > 0:
hit_points -= amount
hurt_sound.play()
animplayer.play("take_damage")
if hit_points <= 0:
print(name +" died")
queue_free()
func enemy_shoot():
if justShot != true:
shoot_sound.play()
animplayerGun.play("enemy_gun_shot_flare")
enemy_shot_check()
justShot = true
await get_tree().create_timer(1.0).timeout
justShot = false
func enemy_shot_check():
if shoot_raycast.is_colliding():
var collider = shoot_raycast.get_collider()
if collider is StaticBody2D:
print("Shot a box!")
elif collider is Player:
if randf() < hit_chance:
print("Hit the Player!")
player.take_damage(1)
else:
print("Shot missed the Player!")

View File

@ -0,0 +1 @@
uid://d00tcsqfapyp1

21
scripts/hud.gd 100644
View File

@ -0,0 +1,21 @@
extends Control
@onready var hit_points_label = $HitPoints
@onready var bullets_label = $Bullets
@onready var stars_label = $StarsLeft
@onready var you_won_label = $YouWonLabel
@onready var game_over_label = $GameOverLabel
func update_values(hp: int, bullets: int) -> void:
hit_points_label.text = "HP: %d" % hp
bullets_label.text = "Bullets: %d" % bullets
func update_stars_left(count: int) -> void:
stars_label.text = "Stars: %d" % count
func show_you_won():
you_won_label.visible = true
func show_game_over():
game_over_label.visible = true

View File

@ -0,0 +1 @@
uid://jds7ynetjysj

99
scripts/player.gd 100644
View File

@ -0,0 +1,99 @@
extends CharacterBody2D
class_name Player
var speed = 300.0
var hit_points: int = 3
var bullets: int = 6
var isReloading: bool = false
var dash_just_used: bool = false
signal died
@onready var animplayer = $AnimationPlayer
@onready var camera_remote_transform = $CameraRemoteTransform
@onready var shoot_raycast = $ShootRaycast
@onready var shoot_sound = $ShootSound
@onready var reload_sound = $ReloadSound
@onready var empty_sound = $EmptyGunSound
@onready var reload_timer = $ReloadTimer
@onready var animplayer_hurt = $AnimationPlayerHurt
@warning_ignore("unused_parameter")
func _process(delta: float) -> void:
look_at(get_global_mouse_position())
if Input.is_action_just_pressed("quit"):
get_tree().quit()
if Input.is_action_just_pressed("shoot") && isReloading == false:
if bullets == 0:
empty_sound.play()
print("No more Bullets left!")
else:
shoot_sound.play()
animplayer.play("shot_flare")
bullets = bullets -1
if shoot_raycast.is_colliding():
var collider = shoot_raycast.get_collider()
if collider is StaticBody2D:
print("Shot a box!")
elif collider is Enemy:
print("Hit an Enemy!")
var e = collider as Enemy
e.player = self
e.take_damage(1)
if Input.is_action_just_pressed("reload") && isReloading == false && bullets != 6:
isReloading = true
reload_sound.play()
#reload_timer.start()
await get_tree().create_timer(3.0).timeout
bullets = 6
isReloading = false
print("Reloaded!")
func dash():
if dash_just_used != true:
speed = 1000
dash_just_used = true
await get_tree().create_timer(0.2).timeout
speed = 300
await get_tree().create_timer(1).timeout
dash_just_used = false
@warning_ignore("unused_parameter")
func _physics_process(delta: float) -> void:
var move_dir = Vector2(Input.get_axis("move_left", "move_right"),
Input.get_axis("move_up", "move_down"))
if Input.is_action_just_pressed("move_dash") && dash_just_used == false:
dash()
if move_dir != Vector2.ZERO:
velocity = speed * move_dir.normalized()
else:
velocity.x = move_toward(velocity.x, 0, speed)
velocity.y = move_toward(velocity.y, 0, speed)
move_and_slide()
func _on_hit_box_body_entered(body: Node2D) -> void:
if body is Enemy:
print("got hit!")
died.emit()
queue_free()
func take_damage(amount: int):
if amount > 0:
hit_points -= amount
animplayer_hurt.play("Hurt")
if hit_points <= 0:
print(name +" died")
died.emit()
queue_free()
func get_bullets():
return bullets
func get_hit_points():
return hit_points

View File

@ -0,0 +1 @@
uid://dlsggvm2k67kh

18
scripts/star.gd 100644
View File

@ -0,0 +1,18 @@
extends Area2D
@onready var coin_sound = $CoinSound
@onready var sprite = $Sprite2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body is Player:
sprite.hide()
coin_sound.play()
# Notify world
get_tree().current_scene.star_collected()
await coin_sound.finished
queue_free()

View File

@ -0,0 +1 @@
uid://dqlaal1fu87i7

43
scripts/world.gd 100644
View File

@ -0,0 +1,43 @@
extends Node2D
#@onready var player = $Player
@onready var main_camera = $MainCamera
@onready var hud = $UI/HUD
@onready var player: Player = $Player
@onready var win_sound = $WinSound
var stars_remaining: int = 3 # total at start
func _ready() -> void:
if player:
var hit_points: int = player.get_hit_points()
var bullets: int = player.get_bullets()
var kills: int = 0
hud.update_values(hit_points, bullets)
hud.update_stars_left(stars_remaining)
player.died.connect(_on_player_died)
player.camera_remote_transform.remote_path = main_camera.get_path()
func _process(_delta):
if player:
hud.update_values(player.get_hit_points(), player.get_bullets())
func star_collected():
stars_remaining -= 1
hud.update_stars_left(stars_remaining)
if stars_remaining == 0:
win_sound.play()
hud.show_you_won()
get_tree().paused = true
func _on_player_died():
print("game over")
hud.update_values(player.get_hit_points(), player.get_bullets())
hud.show_game_over()
get_tree().create_timer(3).timeout.connect(get_tree().reload_current_scene)

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