commit 02fdfafeba7c6fb3f4675d7b8b7be2fbc987ae1c Author: Laurent Date: Wed May 21 23:27:16 2025 +0200 Initial commit - Godot game uploaded diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/assets/CowboyEnemy.png b/assets/CowboyEnemy.png new file mode 100644 index 0000000..444c3cb Binary files /dev/null and b/assets/CowboyEnemy.png differ diff --git a/assets/CowboyEnemy.png.import b/assets/CowboyEnemy.png.import new file mode 100644 index 0000000..f2eb587 --- /dev/null +++ b/assets/CowboyEnemy.png.import @@ -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 diff --git a/assets/CowboyMain.png b/assets/CowboyMain.png new file mode 100644 index 0000000..cf1902c Binary files /dev/null and b/assets/CowboyMain.png differ diff --git a/assets/CowboyMain.png.import b/assets/CowboyMain.png.import new file mode 100644 index 0000000..3312cbc --- /dev/null +++ b/assets/CowboyMain.png.import @@ -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 diff --git a/assets/Sfx/086409_retro-gun-shot-81545.mp3 b/assets/Sfx/086409_retro-gun-shot-81545.mp3 new file mode 100644 index 0000000..689da2b Binary files /dev/null and b/assets/Sfx/086409_retro-gun-shot-81545.mp3 differ diff --git a/assets/Sfx/086409_retro-gun-shot-81545.mp3.import b/assets/Sfx/086409_retro-gun-shot-81545.mp3.import new file mode 100644 index 0000000..809c73f --- /dev/null +++ b/assets/Sfx/086409_retro-gun-shot-81545.mp3.import @@ -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 diff --git a/assets/Sfx/clean-revolver-reload-6889.mp3 b/assets/Sfx/clean-revolver-reload-6889.mp3 new file mode 100644 index 0000000..c40862e Binary files /dev/null and b/assets/Sfx/clean-revolver-reload-6889.mp3 differ diff --git a/assets/Sfx/clean-revolver-reload-6889.mp3.import b/assets/Sfx/clean-revolver-reload-6889.mp3.import new file mode 100644 index 0000000..f543024 --- /dev/null +++ b/assets/Sfx/clean-revolver-reload-6889.mp3.import @@ -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 diff --git a/assets/Sfx/coin-recieved-230517.mp3 b/assets/Sfx/coin-recieved-230517.mp3 new file mode 100644 index 0000000..4a3fa57 Binary files /dev/null and b/assets/Sfx/coin-recieved-230517.mp3 differ diff --git a/assets/Sfx/coin-recieved-230517.mp3.import b/assets/Sfx/coin-recieved-230517.mp3.import new file mode 100644 index 0000000..1ccc263 --- /dev/null +++ b/assets/Sfx/coin-recieved-230517.mp3.import @@ -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 diff --git a/assets/Sfx/empty-gun-shot-6209.mp3 b/assets/Sfx/empty-gun-shot-6209.mp3 new file mode 100644 index 0000000..647ec60 Binary files /dev/null and b/assets/Sfx/empty-gun-shot-6209.mp3 differ diff --git a/assets/Sfx/empty-gun-shot-6209.mp3.import b/assets/Sfx/empty-gun-shot-6209.mp3.import new file mode 100644 index 0000000..0d0b276 --- /dev/null +++ b/assets/Sfx/empty-gun-shot-6209.mp3.import @@ -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 diff --git a/assets/Sfx/grunt-1-85280.mp3 b/assets/Sfx/grunt-1-85280.mp3 new file mode 100644 index 0000000..9205dcd Binary files /dev/null and b/assets/Sfx/grunt-1-85280.mp3 differ diff --git a/assets/Sfx/grunt-1-85280.mp3.import b/assets/Sfx/grunt-1-85280.mp3.import new file mode 100644 index 0000000..6a90835 --- /dev/null +++ b/assets/Sfx/grunt-1-85280.mp3.import @@ -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 diff --git a/assets/Sfx/gun-shots-from-a-distance-5-96388.mp3 b/assets/Sfx/gun-shots-from-a-distance-5-96388.mp3 new file mode 100644 index 0000000..fa5cffc Binary files /dev/null and b/assets/Sfx/gun-shots-from-a-distance-5-96388.mp3 differ diff --git a/assets/Sfx/gun-shots-from-a-distance-5-96388.mp3.import b/assets/Sfx/gun-shots-from-a-distance-5-96388.mp3.import new file mode 100644 index 0000000..11e97c6 --- /dev/null +++ b/assets/Sfx/gun-shots-from-a-distance-5-96388.mp3.import @@ -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 diff --git a/assets/Sfx/mask-grunt-sound-38713.mp3 b/assets/Sfx/mask-grunt-sound-38713.mp3 new file mode 100644 index 0000000..eada02e Binary files /dev/null and b/assets/Sfx/mask-grunt-sound-38713.mp3 differ diff --git a/assets/Sfx/mask-grunt-sound-38713.mp3.import b/assets/Sfx/mask-grunt-sound-38713.mp3.import new file mode 100644 index 0000000..34fa2e3 --- /dev/null +++ b/assets/Sfx/mask-grunt-sound-38713.mp3.import @@ -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 diff --git a/assets/Sfx/success-fanfare-trumpets-6185.mp3 b/assets/Sfx/success-fanfare-trumpets-6185.mp3 new file mode 100644 index 0000000..68dad2d Binary files /dev/null and b/assets/Sfx/success-fanfare-trumpets-6185.mp3 differ diff --git a/assets/Sfx/success-fanfare-trumpets-6185.mp3.import b/assets/Sfx/success-fanfare-trumpets-6185.mp3.import new file mode 100644 index 0000000..f9a66ad --- /dev/null +++ b/assets/Sfx/success-fanfare-trumpets-6185.mp3.import @@ -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 diff --git a/assets/Textures/Box.png b/assets/Textures/Box.png new file mode 100644 index 0000000..9025db9 Binary files /dev/null and b/assets/Textures/Box.png differ diff --git a/assets/Textures/Box.png.import b/assets/Textures/Box.png.import new file mode 100644 index 0000000..7ef35d6 --- /dev/null +++ b/assets/Textures/Box.png.import @@ -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 diff --git a/assets/Textures/Cart.png b/assets/Textures/Cart.png new file mode 100644 index 0000000..6c34167 Binary files /dev/null and b/assets/Textures/Cart.png differ diff --git a/assets/Textures/Cart.png.import b/assets/Textures/Cart.png.import new file mode 100644 index 0000000..4f31728 --- /dev/null +++ b/assets/Textures/Cart.png.import @@ -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 diff --git a/assets/Textures/CartB.png b/assets/Textures/CartB.png new file mode 100644 index 0000000..cdc64f5 Binary files /dev/null and b/assets/Textures/CartB.png differ diff --git a/assets/Textures/CartB.png.import b/assets/Textures/CartB.png.import new file mode 100644 index 0000000..c869fef --- /dev/null +++ b/assets/Textures/CartB.png.import @@ -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 diff --git a/assets/Textures/CowboyEnemy.png b/assets/Textures/CowboyEnemy.png new file mode 100644 index 0000000..82eea45 Binary files /dev/null and b/assets/Textures/CowboyEnemy.png differ diff --git a/assets/Textures/CowboyEnemy.png.import b/assets/Textures/CowboyEnemy.png.import new file mode 100644 index 0000000..676d9f6 --- /dev/null +++ b/assets/Textures/CowboyEnemy.png.import @@ -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 diff --git a/assets/Textures/CowboyMain.png b/assets/Textures/CowboyMain.png new file mode 100644 index 0000000..837659e Binary files /dev/null and b/assets/Textures/CowboyMain.png differ diff --git a/assets/Textures/CowboyMain.png.import b/assets/Textures/CowboyMain.png.import new file mode 100644 index 0000000..be6ed45 --- /dev/null +++ b/assets/Textures/CowboyMain.png.import @@ -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 diff --git a/assets/Textures/Gun.png b/assets/Textures/Gun.png new file mode 100644 index 0000000..8efaac8 Binary files /dev/null and b/assets/Textures/Gun.png differ diff --git a/assets/Textures/Gun.png.import b/assets/Textures/Gun.png.import new file mode 100644 index 0000000..4e7115e --- /dev/null +++ b/assets/Textures/Gun.png.import @@ -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 diff --git a/assets/Textures/GunEnemy.png b/assets/Textures/GunEnemy.png new file mode 100644 index 0000000..826b943 Binary files /dev/null and b/assets/Textures/GunEnemy.png differ diff --git a/assets/Textures/GunEnemy.png.import b/assets/Textures/GunEnemy.png.import new file mode 100644 index 0000000..edfb281 --- /dev/null +++ b/assets/Textures/GunEnemy.png.import @@ -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 diff --git a/assets/Textures/House 3.png b/assets/Textures/House 3.png new file mode 100644 index 0000000..5662fbb Binary files /dev/null and b/assets/Textures/House 3.png differ diff --git a/assets/Textures/House 3.png.import b/assets/Textures/House 3.png.import new file mode 100644 index 0000000..6d0c1a8 --- /dev/null +++ b/assets/Textures/House 3.png.import @@ -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 diff --git a/assets/Textures/House1.png b/assets/Textures/House1.png new file mode 100644 index 0000000..12c390b Binary files /dev/null and b/assets/Textures/House1.png differ diff --git a/assets/Textures/House1.png.import b/assets/Textures/House1.png.import new file mode 100644 index 0000000..a19cb58 --- /dev/null +++ b/assets/Textures/House1.png.import @@ -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 diff --git a/assets/Textures/House2.png b/assets/Textures/House2.png new file mode 100644 index 0000000..2000cf5 Binary files /dev/null and b/assets/Textures/House2.png differ diff --git a/assets/Textures/House2.png.import b/assets/Textures/House2.png.import new file mode 100644 index 0000000..00a06b1 --- /dev/null +++ b/assets/Textures/House2.png.import @@ -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 diff --git a/assets/Textures/House4.png b/assets/Textures/House4.png new file mode 100644 index 0000000..ef48c2a Binary files /dev/null and b/assets/Textures/House4.png differ diff --git a/assets/Textures/House4.png.import b/assets/Textures/House4.png.import new file mode 100644 index 0000000..617a401 --- /dev/null +++ b/assets/Textures/House4.png.import @@ -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 diff --git a/assets/Textures/Kaktus.png b/assets/Textures/Kaktus.png new file mode 100644 index 0000000..c0a16a4 Binary files /dev/null and b/assets/Textures/Kaktus.png differ diff --git a/assets/Textures/Kaktus.png.import b/assets/Textures/Kaktus.png.import new file mode 100644 index 0000000..078b303 --- /dev/null +++ b/assets/Textures/Kaktus.png.import @@ -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 diff --git a/assets/Textures/Rolling grass.png b/assets/Textures/Rolling grass.png new file mode 100644 index 0000000..13ab748 Binary files /dev/null and b/assets/Textures/Rolling grass.png differ diff --git a/assets/Textures/Rolling grass.png.import b/assets/Textures/Rolling grass.png.import new file mode 100644 index 0000000..6e82eea --- /dev/null +++ b/assets/Textures/Rolling grass.png.import @@ -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 diff --git a/assets/Textures/SheriffStar.png b/assets/Textures/SheriffStar.png new file mode 100644 index 0000000..731687c Binary files /dev/null and b/assets/Textures/SheriffStar.png differ diff --git a/assets/Textures/SheriffStar.png.import b/assets/Textures/SheriffStar.png.import new file mode 100644 index 0000000..97fcaa3 --- /dev/null +++ b/assets/Textures/SheriffStar.png.import @@ -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 diff --git a/assets/Textures/ShotFlare.png b/assets/Textures/ShotFlare.png new file mode 100644 index 0000000..1b040cf Binary files /dev/null and b/assets/Textures/ShotFlare.png differ diff --git a/assets/Textures/ShotFlare.png.import b/assets/Textures/ShotFlare.png.import new file mode 100644 index 0000000..4b3eaba --- /dev/null +++ b/assets/Textures/ShotFlare.png.import @@ -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 diff --git a/assets/Textures/Stones1.png b/assets/Textures/Stones1.png new file mode 100644 index 0000000..9392c87 Binary files /dev/null and b/assets/Textures/Stones1.png differ diff --git a/assets/Textures/Stones1.png.import b/assets/Textures/Stones1.png.import new file mode 100644 index 0000000..e834ee9 --- /dev/null +++ b/assets/Textures/Stones1.png.import @@ -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 diff --git a/assets/Textures/Stones2.png b/assets/Textures/Stones2.png new file mode 100644 index 0000000..b23dda5 Binary files /dev/null and b/assets/Textures/Stones2.png differ diff --git a/assets/Textures/Stones2.png.import b/assets/Textures/Stones2.png.import new file mode 100644 index 0000000..9b826a8 --- /dev/null +++ b/assets/Textures/Stones2.png.import @@ -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 diff --git a/assets/Textures/Tavern.png b/assets/Textures/Tavern.png new file mode 100644 index 0000000..dce8067 Binary files /dev/null and b/assets/Textures/Tavern.png differ diff --git a/assets/Textures/Tavern.png.import b/assets/Textures/Tavern.png.import new file mode 100644 index 0000000..fb96405 --- /dev/null +++ b/assets/Textures/Tavern.png.import @@ -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 diff --git a/assets/Textures/WaterStall.png b/assets/Textures/WaterStall.png new file mode 100644 index 0000000..ff39157 Binary files /dev/null and b/assets/Textures/WaterStall.png differ diff --git a/assets/Textures/WaterStall.png.import b/assets/Textures/WaterStall.png.import new file mode 100644 index 0000000..3615f87 --- /dev/null +++ b/assets/Textures/WaterStall.png.import @@ -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 diff --git a/assets/Textures/WaterWell.png b/assets/Textures/WaterWell.png new file mode 100644 index 0000000..1c8a07a Binary files /dev/null and b/assets/Textures/WaterWell.png differ diff --git a/assets/Textures/WaterWell.png.import b/assets/Textures/WaterWell.png.import new file mode 100644 index 0000000..2a09587 --- /dev/null +++ b/assets/Textures/WaterWell.png.import @@ -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 diff --git a/assets/Textures/mask-grunt-sound-38713.mp3.import b/assets/Textures/mask-grunt-sound-38713.mp3.import new file mode 100644 index 0000000..4b35e67 --- /dev/null +++ b/assets/Textures/mask-grunt-sound-38713.mp3.import @@ -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 diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..9d8b7fa --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..a150173 --- /dev/null +++ b/icon.svg.import @@ -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 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..e62640f --- /dev/null +++ b/project.godot @@ -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" diff --git a/scenes/CartA.tscn b/scenes/CartA.tscn new file mode 100644 index 0000000..4d56096 --- /dev/null +++ b/scenes/CartA.tscn @@ -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") diff --git a/scenes/CartB.tscn b/scenes/CartB.tscn new file mode 100644 index 0000000..556747b --- /dev/null +++ b/scenes/CartB.tscn @@ -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") diff --git a/scenes/House1.tscn b/scenes/House1.tscn new file mode 100644 index 0000000..6f30ccf --- /dev/null +++ b/scenes/House1.tscn @@ -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") diff --git a/scenes/House2.tscn b/scenes/House2.tscn new file mode 100644 index 0000000..01a82e5 --- /dev/null +++ b/scenes/House2.tscn @@ -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") diff --git a/scenes/House3.tscn b/scenes/House3.tscn new file mode 100644 index 0000000..0da5331 --- /dev/null +++ b/scenes/House3.tscn @@ -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") diff --git a/scenes/House4.tscn b/scenes/House4.tscn new file mode 100644 index 0000000..b5ffe4d --- /dev/null +++ b/scenes/House4.tscn @@ -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") diff --git a/scenes/Kaktus.tscn b/scenes/Kaktus.tscn new file mode 100644 index 0000000..674ddd6 --- /dev/null +++ b/scenes/Kaktus.tscn @@ -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") diff --git a/scenes/box.tscn b/scenes/box.tscn new file mode 100644 index 0000000..6578dd5 --- /dev/null +++ b/scenes/box.tscn @@ -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") diff --git a/scenes/enemy.tscn b/scenes/enemy.tscn new file mode 100644 index 0000000..cc8adcc --- /dev/null +++ b/scenes/enemy.tscn @@ -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"] diff --git a/scenes/hud.tscn b/scenes/hud.tscn new file mode 100644 index 0000000..d0666bc --- /dev/null +++ b/scenes/hud.tscn @@ -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") diff --git a/scenes/hud.tscn3236613196.tmp b/scenes/hud.tscn3236613196.tmp new file mode 100644 index 0000000..f10ffc8 --- /dev/null +++ b/scenes/hud.tscn3236613196.tmp @@ -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") diff --git a/scenes/main_menu.tscn b/scenes/main_menu.tscn new file mode 100644 index 0000000..52fef08 --- /dev/null +++ b/scenes/main_menu.tscn @@ -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" diff --git a/scenes/player.gd.uid b/scenes/player.gd.uid new file mode 100644 index 0000000..6a43f42 --- /dev/null +++ b/scenes/player.gd.uid @@ -0,0 +1 @@ +uid://bpnuvnt16ex0k diff --git a/scenes/player.tscn b/scenes/player.tscn new file mode 100644 index 0000000..6d53ffe --- /dev/null +++ b/scenes/player.tscn @@ -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"] diff --git a/scenes/player.tscn4327382365.tmp b/scenes/player.tscn4327382365.tmp new file mode 100644 index 0000000..42bbb50 --- /dev/null +++ b/scenes/player.tscn4327382365.tmp @@ -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"] diff --git a/scenes/player.tscn4356502432.tmp b/scenes/player.tscn4356502432.tmp new file mode 100644 index 0000000..42bbb50 --- /dev/null +++ b/scenes/player.tscn4356502432.tmp @@ -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"] diff --git a/scenes/player.tscn4385504122.tmp b/scenes/player.tscn4385504122.tmp new file mode 100644 index 0000000..42bbb50 --- /dev/null +++ b/scenes/player.tscn4385504122.tmp @@ -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"] diff --git a/scenes/player.tscn4397091181.tmp b/scenes/player.tscn4397091181.tmp new file mode 100644 index 0000000..42bbb50 --- /dev/null +++ b/scenes/player.tscn4397091181.tmp @@ -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"] diff --git a/scenes/rollingGrass.tscn b/scenes/rollingGrass.tscn new file mode 100644 index 0000000..282f69e --- /dev/null +++ b/scenes/rollingGrass.tscn @@ -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") diff --git a/scenes/star.tscn b/scenes/star.tscn new file mode 100644 index 0000000..cac3971 --- /dev/null +++ b/scenes/star.tscn @@ -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") diff --git a/scenes/tavern.tscn b/scenes/tavern.tscn new file mode 100644 index 0000000..73ef680 --- /dev/null +++ b/scenes/tavern.tscn @@ -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") diff --git a/scenes/waterStall.tscn b/scenes/waterStall.tscn new file mode 100644 index 0000000..4948a31 --- /dev/null +++ b/scenes/waterStall.tscn @@ -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") diff --git a/scenes/waterWell.tscn b/scenes/waterWell.tscn new file mode 100644 index 0000000..57b3f84 --- /dev/null +++ b/scenes/waterWell.tscn @@ -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") diff --git a/scenes/world.tscn b/scenes/world.tscn new file mode 100644 index 0000000..c41653f --- /dev/null +++ b/scenes/world.tscn @@ -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") diff --git a/scripts/enemy.gd b/scripts/enemy.gd new file mode 100644 index 0000000..43951ac --- /dev/null +++ b/scripts/enemy.gd @@ -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!") diff --git a/scripts/enemy.gd.uid b/scripts/enemy.gd.uid new file mode 100644 index 0000000..30cd302 --- /dev/null +++ b/scripts/enemy.gd.uid @@ -0,0 +1 @@ +uid://d00tcsqfapyp1 diff --git a/scripts/hud.gd b/scripts/hud.gd new file mode 100644 index 0000000..cba7f76 --- /dev/null +++ b/scripts/hud.gd @@ -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 diff --git a/scripts/hud.gd.uid b/scripts/hud.gd.uid new file mode 100644 index 0000000..e1b42c4 --- /dev/null +++ b/scripts/hud.gd.uid @@ -0,0 +1 @@ +uid://jds7ynetjysj diff --git a/scripts/player.gd b/scripts/player.gd new file mode 100644 index 0000000..59493ad --- /dev/null +++ b/scripts/player.gd @@ -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 diff --git a/scripts/player.gd.uid b/scripts/player.gd.uid new file mode 100644 index 0000000..23ed28f --- /dev/null +++ b/scripts/player.gd.uid @@ -0,0 +1 @@ +uid://dlsggvm2k67kh diff --git a/scripts/star.gd b/scripts/star.gd new file mode 100644 index 0000000..b53cb98 --- /dev/null +++ b/scripts/star.gd @@ -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() diff --git a/scripts/star.gd.uid b/scripts/star.gd.uid new file mode 100644 index 0000000..0f33d8e --- /dev/null +++ b/scripts/star.gd.uid @@ -0,0 +1 @@ +uid://dqlaal1fu87i7 diff --git a/scripts/world.gd b/scripts/world.gd new file mode 100644 index 0000000..178498d --- /dev/null +++ b/scripts/world.gd @@ -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) diff --git a/scripts/world.gd.uid b/scripts/world.gd.uid new file mode 100644 index 0000000..58c0aae --- /dev/null +++ b/scripts/world.gd.uid @@ -0,0 +1 @@ +uid://b7ek5hwa3xnp