commit d5b62b0e4b5079da47658d0a0e8e35d1901bc4f9 Author: Moe Poi ~ Date: Fri Oct 6 16:40:11 2023 +0700 Initial Testing 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..884b2ac --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# Git +.git/ + +# Godot 4+ specific ignores +.godot/ +addons/ + +# Android SDK +android/ + +# Build +build/ \ No newline at end of file diff --git a/assets/icons/logo.png b/assets/icons/logo.png new file mode 100644 index 0000000..38fb793 Binary files /dev/null and b/assets/icons/logo.png differ diff --git a/assets/icons/logo.png.import b/assets/icons/logo.png.import new file mode 100644 index 0000000..e1608e3 --- /dev/null +++ b/assets/icons/logo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0tosekulqglv" +path="res://.godot/imported/logo.png-7a0fc559fcb721e289a661b90789984f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/logo.png" +dest_files=["res://.godot/imported/logo.png-7a0fc559fcb721e289a661b90789984f.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/icons/towers/cannon-1-disabled.png b/assets/icons/towers/cannon-1-disabled.png new file mode 100644 index 0000000..5425820 Binary files /dev/null and b/assets/icons/towers/cannon-1-disabled.png differ diff --git a/assets/icons/towers/cannon-1-disabled.png.import b/assets/icons/towers/cannon-1-disabled.png.import new file mode 100644 index 0000000..157bf24 --- /dev/null +++ b/assets/icons/towers/cannon-1-disabled.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dql0j3rmo6lt6" +path="res://.godot/imported/cannon-1-disabled.png-74d97cc25c0594f4c40968751a35ebcb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/cannon-1-disabled.png" +dest_files=["res://.godot/imported/cannon-1-disabled.png-74d97cc25c0594f4c40968751a35ebcb.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/icons/towers/cannon-1.png b/assets/icons/towers/cannon-1.png new file mode 100644 index 0000000..cbfb10d Binary files /dev/null and b/assets/icons/towers/cannon-1.png differ diff --git a/assets/icons/towers/cannon-1.png.import b/assets/icons/towers/cannon-1.png.import new file mode 100644 index 0000000..4750ba9 --- /dev/null +++ b/assets/icons/towers/cannon-1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtdqwc3d7abui" +path="res://.godot/imported/cannon-1.png-16a3e510d60d1ec8c156e98061bc8fcf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/cannon-1.png" +dest_files=["res://.godot/imported/cannon-1.png-16a3e510d60d1ec8c156e98061bc8fcf.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/icons/towers/cannon-2-disabled.png b/assets/icons/towers/cannon-2-disabled.png new file mode 100644 index 0000000..b8b5fb4 Binary files /dev/null and b/assets/icons/towers/cannon-2-disabled.png differ diff --git a/assets/icons/towers/cannon-2-disabled.png.import b/assets/icons/towers/cannon-2-disabled.png.import new file mode 100644 index 0000000..8df29ed --- /dev/null +++ b/assets/icons/towers/cannon-2-disabled.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsoyirg58ihic" +path="res://.godot/imported/cannon-2-disabled.png-ab4561a4d3ddfa53bb3f1ae582d4f362.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/cannon-2-disabled.png" +dest_files=["res://.godot/imported/cannon-2-disabled.png-ab4561a4d3ddfa53bb3f1ae582d4f362.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/icons/towers/cannon-2.png b/assets/icons/towers/cannon-2.png new file mode 100644 index 0000000..2cb5f75 Binary files /dev/null and b/assets/icons/towers/cannon-2.png differ diff --git a/assets/icons/towers/cannon-2.png.import b/assets/icons/towers/cannon-2.png.import new file mode 100644 index 0000000..47990c7 --- /dev/null +++ b/assets/icons/towers/cannon-2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhud8rafdqniv" +path="res://.godot/imported/cannon-2.png-a9ef811bbaa16a6e54bde9b89cf87a21.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/cannon-2.png" +dest_files=["res://.godot/imported/cannon-2.png-a9ef811bbaa16a6e54bde9b89cf87a21.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/icons/towers/cannon-3-disabled.png b/assets/icons/towers/cannon-3-disabled.png new file mode 100644 index 0000000..b35b7c6 Binary files /dev/null and b/assets/icons/towers/cannon-3-disabled.png differ diff --git a/assets/icons/towers/cannon-3-disabled.png.import b/assets/icons/towers/cannon-3-disabled.png.import new file mode 100644 index 0000000..b012614 --- /dev/null +++ b/assets/icons/towers/cannon-3-disabled.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dymcfaio088vv" +path="res://.godot/imported/cannon-3-disabled.png-bf99aafe1b3ba8452e0e498d946a689d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/cannon-3-disabled.png" +dest_files=["res://.godot/imported/cannon-3-disabled.png-bf99aafe1b3ba8452e0e498d946a689d.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/icons/towers/cannon-3.png b/assets/icons/towers/cannon-3.png new file mode 100644 index 0000000..7013047 Binary files /dev/null and b/assets/icons/towers/cannon-3.png differ diff --git a/assets/icons/towers/cannon-3.png.import b/assets/icons/towers/cannon-3.png.import new file mode 100644 index 0000000..163df21 --- /dev/null +++ b/assets/icons/towers/cannon-3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbxetx1b3tsnm" +path="res://.godot/imported/cannon-3.png-9d36b9f5f76a221ab715966981283ac2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/cannon-3.png" +dest_files=["res://.godot/imported/cannon-3.png-9d36b9f5f76a221ab715966981283ac2.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/icons/towers/railgun-1-disabled.png b/assets/icons/towers/railgun-1-disabled.png new file mode 100644 index 0000000..d5e3ff4 Binary files /dev/null and b/assets/icons/towers/railgun-1-disabled.png differ diff --git a/assets/icons/towers/railgun-1-disabled.png.import b/assets/icons/towers/railgun-1-disabled.png.import new file mode 100644 index 0000000..e32d6e3 --- /dev/null +++ b/assets/icons/towers/railgun-1-disabled.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rgnikuo8ht0w" +path="res://.godot/imported/railgun-1-disabled.png-cd088a8cd4ebd7f4fe900a7ec6c9dbbd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/railgun-1-disabled.png" +dest_files=["res://.godot/imported/railgun-1-disabled.png-cd088a8cd4ebd7f4fe900a7ec6c9dbbd.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/icons/towers/railgun-1.png b/assets/icons/towers/railgun-1.png new file mode 100644 index 0000000..b58b172 Binary files /dev/null and b/assets/icons/towers/railgun-1.png differ diff --git a/assets/icons/towers/railgun-1.png.import b/assets/icons/towers/railgun-1.png.import new file mode 100644 index 0000000..dfc55fa --- /dev/null +++ b/assets/icons/towers/railgun-1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmbg5sl1lrbj5" +path="res://.godot/imported/railgun-1.png-b4cff314598b192609bd471cde282fcd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/railgun-1.png" +dest_files=["res://.godot/imported/railgun-1.png-b4cff314598b192609bd471cde282fcd.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/icons/towers/railgun-2-disabled.png b/assets/icons/towers/railgun-2-disabled.png new file mode 100644 index 0000000..dd3cbdc Binary files /dev/null and b/assets/icons/towers/railgun-2-disabled.png differ diff --git a/assets/icons/towers/railgun-2-disabled.png.import b/assets/icons/towers/railgun-2-disabled.png.import new file mode 100644 index 0000000..a2736e7 --- /dev/null +++ b/assets/icons/towers/railgun-2-disabled.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://onausc5wx0pn" +path="res://.godot/imported/railgun-2-disabled.png-399600f1620defb37b2de112579abe2f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/railgun-2-disabled.png" +dest_files=["res://.godot/imported/railgun-2-disabled.png-399600f1620defb37b2de112579abe2f.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/icons/towers/railgun-2.png b/assets/icons/towers/railgun-2.png new file mode 100644 index 0000000..f940607 Binary files /dev/null and b/assets/icons/towers/railgun-2.png differ diff --git a/assets/icons/towers/railgun-2.png.import b/assets/icons/towers/railgun-2.png.import new file mode 100644 index 0000000..4b4d4db --- /dev/null +++ b/assets/icons/towers/railgun-2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dxlrim6se30pw" +path="res://.godot/imported/railgun-2.png-600bc3fa96338d3309cb8321a31943ba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/railgun-2.png" +dest_files=["res://.godot/imported/railgun-2.png-600bc3fa96338d3309cb8321a31943ba.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/icons/towers/railgun-3-disabled.png b/assets/icons/towers/railgun-3-disabled.png new file mode 100644 index 0000000..a0be69c Binary files /dev/null and b/assets/icons/towers/railgun-3-disabled.png differ diff --git a/assets/icons/towers/railgun-3-disabled.png.import b/assets/icons/towers/railgun-3-disabled.png.import new file mode 100644 index 0000000..db261d8 --- /dev/null +++ b/assets/icons/towers/railgun-3-disabled.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfx8kwu1074cs" +path="res://.godot/imported/railgun-3-disabled.png-880bdb664ce64c8ae397ee8283565629.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/railgun-3-disabled.png" +dest_files=["res://.godot/imported/railgun-3-disabled.png-880bdb664ce64c8ae397ee8283565629.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/icons/towers/railgun-3.png b/assets/icons/towers/railgun-3.png new file mode 100644 index 0000000..ba758b1 Binary files /dev/null and b/assets/icons/towers/railgun-3.png differ diff --git a/assets/icons/towers/railgun-3.png.import b/assets/icons/towers/railgun-3.png.import new file mode 100644 index 0000000..bff2611 --- /dev/null +++ b/assets/icons/towers/railgun-3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwd0r7jl1asjd" +path="res://.godot/imported/railgun-3.png-3639055eaf32f4f161905730987d9c78.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/towers/railgun-3.png" +dest_files=["res://.godot/imported/railgun-3.png-3639055eaf32f4f161905730987d9c78.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/icons/turret-1.png b/assets/icons/turret-1.png new file mode 100644 index 0000000..b51b06e Binary files /dev/null and b/assets/icons/turret-1.png differ diff --git a/assets/icons/turret-1.png.import b/assets/icons/turret-1.png.import new file mode 100644 index 0000000..b3629cf --- /dev/null +++ b/assets/icons/turret-1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c32fecgm7x7bi" +path="res://.godot/imported/turret-1.png-c8bfce5a2d3710a1c45093f7792d06d4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/turret-1.png" +dest_files=["res://.godot/imported/turret-1.png-c8bfce5a2d3710a1c45093f7792d06d4.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/spritesheets/bullet-1.png b/assets/spritesheets/bullet-1.png new file mode 100644 index 0000000..819d225 Binary files /dev/null and b/assets/spritesheets/bullet-1.png differ diff --git a/assets/spritesheets/bullet-1.png.import b/assets/spritesheets/bullet-1.png.import new file mode 100644 index 0000000..ca8b1ca --- /dev/null +++ b/assets/spritesheets/bullet-1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c57taqe4k3mi2" +path="res://.godot/imported/bullet-1.png-b428015b3d307dcbefb0f52dad90488d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/bullet-1.png" +dest_files=["res://.godot/imported/bullet-1.png-b428015b3d307dcbefb0f52dad90488d.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/spritesheets/enemies/cyclops.png b/assets/spritesheets/enemies/cyclops.png new file mode 100644 index 0000000..36bc38f Binary files /dev/null and b/assets/spritesheets/enemies/cyclops.png differ diff --git a/assets/spritesheets/enemies/cyclops.png.import b/assets/spritesheets/enemies/cyclops.png.import new file mode 100644 index 0000000..f939a36 --- /dev/null +++ b/assets/spritesheets/enemies/cyclops.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxkvhb7olncvm" +path="res://.godot/imported/cyclops.png-8f451fc4f2dfc9c9415fe3a62581966e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/enemies/cyclops.png" +dest_files=["res://.godot/imported/cyclops.png-8f451fc4f2dfc9c9415fe3a62581966e.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/spritesheets/enemies/demon-boar.png b/assets/spritesheets/enemies/demon-boar.png new file mode 100644 index 0000000..26353de Binary files /dev/null and b/assets/spritesheets/enemies/demon-boar.png differ diff --git a/assets/spritesheets/enemies/demon-boar.png.import b/assets/spritesheets/enemies/demon-boar.png.import new file mode 100644 index 0000000..cbbd5fc --- /dev/null +++ b/assets/spritesheets/enemies/demon-boar.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1q5q70hng32n" +path="res://.godot/imported/demon-boar.png-1c323451a963aa6f866d8033632ef24c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/enemies/demon-boar.png" +dest_files=["res://.godot/imported/demon-boar.png-1c323451a963aa6f866d8033632ef24c.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/spritesheets/enemies/demon-fungus.png b/assets/spritesheets/enemies/demon-fungus.png new file mode 100644 index 0000000..e591f8d Binary files /dev/null and b/assets/spritesheets/enemies/demon-fungus.png differ diff --git a/assets/spritesheets/enemies/demon-fungus.png.import b/assets/spritesheets/enemies/demon-fungus.png.import new file mode 100644 index 0000000..0bbe024 --- /dev/null +++ b/assets/spritesheets/enemies/demon-fungus.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfyws0srbawxx" +path="res://.godot/imported/demon-fungus.png-62eb55fc17811bda23087d4c3019a458.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/enemies/demon-fungus.png" +dest_files=["res://.godot/imported/demon-fungus.png-62eb55fc17811bda23087d4c3019a458.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/spritesheets/enemies/demon-shark.png b/assets/spritesheets/enemies/demon-shark.png new file mode 100644 index 0000000..bda0b1f Binary files /dev/null and b/assets/spritesheets/enemies/demon-shark.png differ diff --git a/assets/spritesheets/enemies/demon-shark.png.import b/assets/spritesheets/enemies/demon-shark.png.import new file mode 100644 index 0000000..a818807 --- /dev/null +++ b/assets/spritesheets/enemies/demon-shark.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgegmre1q57o5" +path="res://.godot/imported/demon-shark.png-e0d40f35f8c7b45c1170a6bb9f48d57d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/enemies/demon-shark.png" +dest_files=["res://.godot/imported/demon-shark.png-e0d40f35f8c7b45c1170a6bb9f48d57d.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/spritesheets/enemies/demon.png b/assets/spritesheets/enemies/demon.png new file mode 100644 index 0000000..74eeff1 Binary files /dev/null and b/assets/spritesheets/enemies/demon.png differ diff --git a/assets/spritesheets/enemies/demon.png.import b/assets/spritesheets/enemies/demon.png.import new file mode 100644 index 0000000..fff021c --- /dev/null +++ b/assets/spritesheets/enemies/demon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfdhwhurk5fbm" +path="res://.godot/imported/demon.png-d9eb63fbe59e951a91f2b4aa4c441fa7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/enemies/demon.png" +dest_files=["res://.godot/imported/demon.png-d9eb63fbe59e951a91f2b4aa4c441fa7.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/spritesheets/enemies/orc.png b/assets/spritesheets/enemies/orc.png new file mode 100644 index 0000000..f784a59 Binary files /dev/null and b/assets/spritesheets/enemies/orc.png differ diff --git a/assets/spritesheets/enemies/orc.png.import b/assets/spritesheets/enemies/orc.png.import new file mode 100644 index 0000000..dddf4cf --- /dev/null +++ b/assets/spritesheets/enemies/orc.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddot33oyu6vlh" +path="res://.godot/imported/orc.png-e9532a8163088a4f1facae1b0d71b989.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/enemies/orc.png" +dest_files=["res://.godot/imported/orc.png-e9532a8163088a4f1facae1b0d71b989.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/spritesheets/enemy-1.png b/assets/spritesheets/enemy-1.png new file mode 100644 index 0000000..e9502d2 Binary files /dev/null and b/assets/spritesheets/enemy-1.png differ diff --git a/assets/spritesheets/enemy-1.png.import b/assets/spritesheets/enemy-1.png.import new file mode 100644 index 0000000..894bc5f --- /dev/null +++ b/assets/spritesheets/enemy-1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b046l0oy0hyj2" +path="res://.godot/imported/enemy-1.png-835a2541b32bbfcfcec0ead00a64c1e0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/enemy-1.png" +dest_files=["res://.godot/imported/enemy-1.png-835a2541b32bbfcfcec0ead00a64c1e0.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/spritesheets/placement.png b/assets/spritesheets/placement.png new file mode 100644 index 0000000..e93789b Binary files /dev/null and b/assets/spritesheets/placement.png differ diff --git a/assets/spritesheets/placement.png.import b/assets/spritesheets/placement.png.import new file mode 100644 index 0000000..d52e3c5 --- /dev/null +++ b/assets/spritesheets/placement.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0cbsthay7e18" +path="res://.godot/imported/placement.png-e6ce97fc56bd7f8a816a3c9119a3a34e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/placement.png" +dest_files=["res://.godot/imported/placement.png-e6ce97fc56bd7f8a816a3c9119a3a34e.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/spritesheets/towers/cannon-1.png b/assets/spritesheets/towers/cannon-1.png new file mode 100644 index 0000000..7eeb375 Binary files /dev/null and b/assets/spritesheets/towers/cannon-1.png differ diff --git a/assets/spritesheets/towers/cannon-1.png.import b/assets/spritesheets/towers/cannon-1.png.import new file mode 100644 index 0000000..9e0640c --- /dev/null +++ b/assets/spritesheets/towers/cannon-1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2ovf2ymtftgo" +path="res://.godot/imported/cannon-1.png-eb71c710fae63edd411f760f6e45f60d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/towers/cannon-1.png" +dest_files=["res://.godot/imported/cannon-1.png-eb71c710fae63edd411f760f6e45f60d.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/spritesheets/towers/cannon-2.png b/assets/spritesheets/towers/cannon-2.png new file mode 100644 index 0000000..5cad5f1 Binary files /dev/null and b/assets/spritesheets/towers/cannon-2.png differ diff --git a/assets/spritesheets/towers/cannon-2.png.import b/assets/spritesheets/towers/cannon-2.png.import new file mode 100644 index 0000000..acc1b87 --- /dev/null +++ b/assets/spritesheets/towers/cannon-2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://br7wgq61n6ufv" +path="res://.godot/imported/cannon-2.png-b0cdf6e7c8b5fd4e205ebc0101a07816.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/towers/cannon-2.png" +dest_files=["res://.godot/imported/cannon-2.png-b0cdf6e7c8b5fd4e205ebc0101a07816.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/spritesheets/towers/cannon-3.png b/assets/spritesheets/towers/cannon-3.png new file mode 100644 index 0000000..9e10d1e Binary files /dev/null and b/assets/spritesheets/towers/cannon-3.png differ diff --git a/assets/spritesheets/towers/cannon-3.png.import b/assets/spritesheets/towers/cannon-3.png.import new file mode 100644 index 0000000..0b912c0 --- /dev/null +++ b/assets/spritesheets/towers/cannon-3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://by4hjrjfcxsdl" +path="res://.godot/imported/cannon-3.png-352c7d57fcde655d746559cabfc4bd9d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/towers/cannon-3.png" +dest_files=["res://.godot/imported/cannon-3.png-352c7d57fcde655d746559cabfc4bd9d.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/spritesheets/towers/railgun-1.png b/assets/spritesheets/towers/railgun-1.png new file mode 100644 index 0000000..1207be3 Binary files /dev/null and b/assets/spritesheets/towers/railgun-1.png differ diff --git a/assets/spritesheets/towers/railgun-1.png.import b/assets/spritesheets/towers/railgun-1.png.import new file mode 100644 index 0000000..da1e805 --- /dev/null +++ b/assets/spritesheets/towers/railgun-1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c02ebkmjpxium" +path="res://.godot/imported/railgun-1.png-ea7912caaa62d9953502e0944514aafa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/towers/railgun-1.png" +dest_files=["res://.godot/imported/railgun-1.png-ea7912caaa62d9953502e0944514aafa.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/spritesheets/towers/railgun-2.png b/assets/spritesheets/towers/railgun-2.png new file mode 100644 index 0000000..3a27fde Binary files /dev/null and b/assets/spritesheets/towers/railgun-2.png differ diff --git a/assets/spritesheets/towers/railgun-2.png.import b/assets/spritesheets/towers/railgun-2.png.import new file mode 100644 index 0000000..d3cffb5 --- /dev/null +++ b/assets/spritesheets/towers/railgun-2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0dawx5rlcyo3" +path="res://.godot/imported/railgun-2.png-0e991516f3e5f5e72a5f41a800dfbc25.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/towers/railgun-2.png" +dest_files=["res://.godot/imported/railgun-2.png-0e991516f3e5f5e72a5f41a800dfbc25.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/spritesheets/towers/railgun-3.png b/assets/spritesheets/towers/railgun-3.png new file mode 100644 index 0000000..da02db7 Binary files /dev/null and b/assets/spritesheets/towers/railgun-3.png differ diff --git a/assets/spritesheets/towers/railgun-3.png.import b/assets/spritesheets/towers/railgun-3.png.import new file mode 100644 index 0000000..3899ae7 --- /dev/null +++ b/assets/spritesheets/towers/railgun-3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dk3toqlc7igld" +path="res://.godot/imported/railgun-3.png-864e34e68f2f64e04a37d8c1b4c493c0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheets/towers/railgun-3.png" +dest_files=["res://.godot/imported/railgun-3.png-864e34e68f2f64e04a37d8c1b4c493c0.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/tileset/ashlands/tf_A5_ashlands_3.png b/assets/tileset/ashlands/tf_A5_ashlands_3.png new file mode 100644 index 0000000..792cdf4 Binary files /dev/null and b/assets/tileset/ashlands/tf_A5_ashlands_3.png differ diff --git a/assets/tileset/ashlands/tf_A5_ashlands_3.png.import b/assets/tileset/ashlands/tf_A5_ashlands_3.png.import new file mode 100644 index 0000000..5a596b9 --- /dev/null +++ b/assets/tileset/ashlands/tf_A5_ashlands_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnxj0mf3luxo" +path="res://.godot/imported/tf_A5_ashlands_3.png-e66be35b9faba40cbbb4d85bdaae6d7d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/tileset/ashlands/tf_A5_ashlands_3.png" +dest_files=["res://.godot/imported/tf_A5_ashlands_3.png-e66be35b9faba40cbbb4d85bdaae6d7d.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/tileset/ashlands/tf_B_ashlands_3.png b/assets/tileset/ashlands/tf_B_ashlands_3.png new file mode 100644 index 0000000..f10d45a Binary files /dev/null and b/assets/tileset/ashlands/tf_B_ashlands_3.png differ diff --git a/assets/tileset/ashlands/tf_B_ashlands_3.png.import b/assets/tileset/ashlands/tf_B_ashlands_3.png.import new file mode 100644 index 0000000..cd85c35 --- /dev/null +++ b/assets/tileset/ashlands/tf_B_ashlands_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://danbfdqmqu23q" +path="res://.godot/imported/tf_B_ashlands_3.png-dd50ea298442e2255d3462626f18c19d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/tileset/ashlands/tf_B_ashlands_3.png" +dest_files=["res://.godot/imported/tf_B_ashlands_3.png-dd50ea298442e2255d3462626f18c19d.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/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..b1df2ad --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,201 @@ +[preset.0] + +name="Android" +platform="Android" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="build/android/Frontier-of-Hell.apk" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +gradle_build/use_gradle_build=true +gradle_build/export_format=0 +gradle_build/min_sdk="" +gradle_build/target_sdk="" +architectures/armeabi-v7a=true +architectures/arm64-v8a=true +architectures/x86=true +architectures/x86_64=true +version/code=1 +version/name="0.1.0" +package/unique_name="dev.moepoi.frontierofhell" +package/name="Frontier of Hell" +package/signed=true +package/app_category=2 +package/retain_data_on_uninstall=false +package/exclude_from_recents=false +launcher_icons/main_192x192="res://assets/icons/logo.png" +launcher_icons/adaptive_foreground_432x432="" +launcher_icons/adaptive_background_432x432="" +graphics/opengl_debug=false +xr_features/xr_mode=0 +xr_features/hand_tracking=0 +xr_features/hand_tracking_frequency=0 +xr_features/passthrough=0 +screen/immersive_mode=true +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +user_data_backup/allow=false +command_line/extra_args="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +permissions/custom_permissions=PackedStringArray() +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=true +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/manage_external_storage=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=false +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..b370ceb --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..9177acc --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjb5vn0pvgbow" +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..c5b7bff --- /dev/null +++ b/project.godot @@ -0,0 +1,33 @@ +; 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="Frontier of Hell" +run/main_scene="res://scenes/stages/stage 1/stage-1.tscn" +config/features=PackedStringArray("4.1", "Mobile") +boot_splash/bg_color=Color(0.141176, 0.141176, 0.141176, 1) +boot_splash/image="res://assets/icons/logo.png" +config/icon="res://icon.svg" +boot_splash/minimum_display_time=3 + +[display] + +window/stretch/mode="viewport" + +[layer_names] + +2d_physics/layer_1="Objects" +2d_physics/layer_2="Enemy" + +[rendering] + +renderer/rendering_method="mobile" +textures/vram_compression/import_etc2_astc=true diff --git a/scenes/bullets/bullet-1.gd b/scenes/bullets/bullet-1.gd new file mode 100644 index 0000000..fd9cf10 --- /dev/null +++ b/scenes/bullets/bullet-1.gd @@ -0,0 +1,17 @@ +extends Area2D + +const right = Vector2.RIGHT +@export var speed : int = 200 +@export var damage : int = 20 + +func _physics_process(delta): + var movement = right.rotated(rotation) * speed * delta + global_position += movement + +func _on_VisibilityNotifier2D_screen_exited(): + queue_free() + +func _on_Bullet_body_entered(body): + if body.is_in_group("Enemy"): + body.hit(damage) + queue_free() diff --git a/scenes/bullets/bullet-1.tscn b/scenes/bullets/bullet-1.tscn new file mode 100644 index 0000000..85b3afa --- /dev/null +++ b/scenes/bullets/bullet-1.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=3 uid="uid://dqa80ptcc8p70"] + +[ext_resource type="Script" path="res://scenes/bullets/bullet-1.gd" id="1_tbola"] +[ext_resource type="Texture2D" uid="uid://c57taqe4k3mi2" path="res://assets/spritesheets/bullet-1.png" id="2_r8hed"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_3cgpo"] +radius = 6.0 + +[node name="bullet-2" type="Area2D"] +script = ExtResource("1_tbola") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_r8hed") +hframes = 2 +frame = 1 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_3cgpo") + +[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."] + +[connection signal="body_entered" from="." to="." method="_on_Bullet_body_entered"] +[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_VisibilityNotifier2D_screen_exited"] diff --git a/scenes/enemies/enemy-1.tscn b/scenes/enemies/enemy-1.tscn new file mode 100644 index 0000000..7672603 --- /dev/null +++ b/scenes/enemies/enemy-1.tscn @@ -0,0 +1,112 @@ +[gd_scene load_steps=15 format=3 uid="uid://clceqphyig48x"] + +[ext_resource type="Script" path="res://scripts/stages/stage 1/walk.gd" id="1_ic50n"] +[ext_resource type="Script" path="res://scripts/enemies/enemy-1.gd" id="2_2ldr2"] +[ext_resource type="Texture2D" uid="uid://b046l0oy0hyj2" path="res://assets/spritesheets/enemy-1.png" id="2_ndkpn"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_17kv3"] +atlas = ExtResource("2_ndkpn") +region = Rect2(0, 1, 188, 188) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1wwrx"] +atlas = ExtResource("2_ndkpn") +region = Rect2(188, 1, 188, 188) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xvkeb"] +atlas = ExtResource("2_ndkpn") +region = Rect2(376, 1, 188, 188) + +[sub_resource type="AtlasTexture" id="AtlasTexture_usecb"] +atlas = ExtResource("2_ndkpn") +region = Rect2(564, 1, 188, 188) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pq6ve"] +atlas = ExtResource("2_ndkpn") +region = Rect2(752, 1, 188, 188) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ni7yh"] +atlas = ExtResource("2_ndkpn") +region = Rect2(0, 189, 188, 188) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kmn0w"] +atlas = ExtResource("2_ndkpn") +region = Rect2(188, 189, 188, 188) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v3qv0"] +atlas = ExtResource("2_ndkpn") +region = Rect2(376, 189, 188, 188) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hmvpc"] +atlas = ExtResource("2_ndkpn") +region = Rect2(564, 189, 188, 188) + +[sub_resource type="SpriteFrames" id="SpriteFrames_kipn1"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_17kv3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1wwrx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xvkeb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_usecb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pq6ve") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ni7yh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kmn0w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_v3qv0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hmvpc") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_5hy1j"] +radius = 18.9995 +height = 39.999 + +[node name="PathFollow2D" type="PathFollow2D"] +rotation = 0.00699289 +loop = false +script = ExtResource("1_ic50n") + +[node name="enemy" type="CharacterBody2D" parent="." groups=["Enemy"]] +script = ExtResource("2_2ldr2") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="enemy"] +position = Vector2(9.15527e-05, 0.00012207) +scale = Vector2(0.176347, 0.175058) +sprite_frames = SubResource("SpriteFrames_kipn1") +autoplay = "default" +frame_progress = 0.735051 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="enemy"] +position = Vector2(-0.992983, 1.00696) +shape = SubResource("CapsuleShape2D_5hy1j") + +[node name="HealthBar" type="ProgressBar" parent="enemy"] +modulate = Color(0.431373, 0.815686, 0, 1) +offset_left = -15.1814 +offset_top = -25.8945 +offset_right = 86.8186 +offset_bottom = 1.10553 +scale = Vector2(0.3, 0.3) +show_percentage = false + +[node name="_Timer_66182" type="Timer" parent="."] +wait_time = 0.2 +one_shot = true diff --git a/scenes/stages/stage 1/stage-1.tscn b/scenes/stages/stage 1/stage-1.tscn new file mode 100644 index 0000000..f10986f --- /dev/null +++ b/scenes/stages/stage 1/stage-1.tscn @@ -0,0 +1,561 @@ +[gd_scene load_steps=12 format=3 uid="uid://btdewn34d67m"] + +[ext_resource type="Texture2D" uid="uid://cnxj0mf3luxo" path="res://assets/tileset/ashlands/tf_A5_ashlands_3.png" id="1_rhsei"] +[ext_resource type="Script" path="res://scripts/stages/stage 1/GameManager.gd" id="1_yugmb"] +[ext_resource type="Texture2D" uid="uid://danbfdqmqu23q" path="res://assets/tileset/ashlands/tf_B_ashlands_3.png" id="2_ao304"] +[ext_resource type="Script" path="res://scripts/stages/stage 1/summon.gd" id="3_wqx3u"] +[ext_resource type="PackedScene" uid="uid://clceqphyig48x" path="res://scenes/enemies/enemy-1.tscn" id="4_iivll"] +[ext_resource type="PackedScene" uid="uid://cd5r1v6f8hahx" path="res://scenes/ui/tower-menu.tscn" id="6_p2t31"] +[ext_resource type="PackedScene" uid="uid://bvoenhbaqiqj2" path="res://scenes/towers/placement/placement.tscn" id="8_ftqhi"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_7yb1o"] +texture = ExtResource("1_rhsei") +texture_region_size = Vector2i(48, 48) +1:0/0 = 0 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +2:0/0 = 0 +2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/0/physics_layer_0/angular_velocity = 0.0 +3:0/0 = 0 +3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/0/physics_layer_0/angular_velocity = 0.0 +4:0/0 = 0 +4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:0/0/physics_layer_0/angular_velocity = 0.0 +5:0/0 = 0 +5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:0/0/physics_layer_0/angular_velocity = 0.0 +6:0/0 = 0 +6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:0/0/physics_layer_0/angular_velocity = 0.0 +7:0/0 = 0 +7:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:0/0/physics_layer_0/angular_velocity = 0.0 +0:1/0 = 0 +0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/0/physics_layer_0/angular_velocity = 0.0 +1:1/0 = 0 +1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/0/physics_layer_0/angular_velocity = 0.0 +2:1/0 = 0 +2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/0/physics_layer_0/angular_velocity = 0.0 +3:1/0 = 0 +3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:1/0/physics_layer_0/angular_velocity = 0.0 +4:1/0 = 0 +4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:1/0/physics_layer_0/angular_velocity = 0.0 +5:1/0 = 0 +5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:1/0/physics_layer_0/angular_velocity = 0.0 +6:1/0 = 0 +6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:1/0/physics_layer_0/angular_velocity = 0.0 +7:1/0 = 0 +7:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:1/0/physics_layer_0/angular_velocity = 0.0 +0:2/0 = 0 +0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0 = 0 +1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/0/physics_layer_0/angular_velocity = 0.0 +2:2/0 = 0 +2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:2/0/physics_layer_0/angular_velocity = 0.0 +3:2/0 = 0 +3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/0/physics_layer_0/angular_velocity = 0.0 +4:2/0 = 0 +4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:2/0/physics_layer_0/angular_velocity = 0.0 +5:2/0 = 0 +5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:2/0/physics_layer_0/angular_velocity = 0.0 +6:2/0 = 0 +6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:2/0/physics_layer_0/angular_velocity = 0.0 +7:2/0 = 0 +7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:2/0/physics_layer_0/angular_velocity = 0.0 +0:3/0 = 0 +0:3/0/terrain_set = 0 +0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/0/physics_layer_0/angular_velocity = 0.0 +0:3/0/terrains_peering_bit/bottom_right_corner = 0 +1:3/0 = 0 +1:3/0/terrain_set = 0 +1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/0/physics_layer_0/angular_velocity = 0.0 +1:3/0/terrains_peering_bit/bottom_right_corner = 0 +1:3/0/terrains_peering_bit/bottom_side = 0 +1:3/0/terrains_peering_bit/bottom_left_corner = 0 +2:3/0 = 0 +2:3/0/terrain_set = 0 +2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:3/0/physics_layer_0/angular_velocity = 0.0 +2:3/0/terrains_peering_bit/bottom_left_corner = 0 +3:3/0 = 0 +3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:3/0/physics_layer_0/angular_velocity = 0.0 +4:3/0 = 0 +4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:3/0/physics_layer_0/angular_velocity = 0.0 +5:3/0 = 0 +5:3/0/terrain_set = 0 +5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:3/0/physics_layer_0/angular_velocity = 0.0 +5:3/0/terrains_peering_bit/bottom_right_corner = 1 +6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:3/0/physics_layer_0/angular_velocity = 0.0 +6:3/0/terrains_peering_bit/bottom_right_corner = 1 +6:3/0/terrains_peering_bit/bottom_side = 1 +6:3/0/terrains_peering_bit/bottom_left_corner = 1 +7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:3/0/physics_layer_0/angular_velocity = 0.0 +7:3/0/terrains_peering_bit/bottom_left_corner = 1 +0:4/0 = 0 +0:4/0/terrain_set = 0 +0:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:4/0/physics_layer_0/angular_velocity = 0.0 +0:4/0/terrains_peering_bit/right_side = 0 +0:4/0/terrains_peering_bit/bottom_right_corner = 0 +0:4/0/terrains_peering_bit/top_right_corner = 0 +1:4/0 = 0 +1:4/0/terrain_set = 0 +1:4/0/terrain = 0 +1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:4/0/physics_layer_0/angular_velocity = 0.0 +1:4/0/terrains_peering_bit/right_side = 0 +1:4/0/terrains_peering_bit/bottom_right_corner = 0 +1:4/0/terrains_peering_bit/bottom_side = 0 +1:4/0/terrains_peering_bit/bottom_left_corner = 0 +1:4/0/terrains_peering_bit/left_side = 0 +1:4/0/terrains_peering_bit/top_left_corner = 0 +1:4/0/terrains_peering_bit/top_side = 0 +1:4/0/terrains_peering_bit/top_right_corner = 0 +2:4/0 = 0 +2:4/0/terrain_set = 0 +2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:4/0/physics_layer_0/angular_velocity = 0.0 +2:4/0/terrains_peering_bit/bottom_left_corner = 0 +2:4/0/terrains_peering_bit/left_side = 0 +2:4/0/terrains_peering_bit/top_left_corner = 0 +3:4/0 = 0 +3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:4/0/physics_layer_0/angular_velocity = 0.0 +4:4/0 = 0 +4:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:4/0/physics_layer_0/angular_velocity = 0.0 +5:4/0 = 0 +5:4/0/terrain_set = 0 +5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:4/0/physics_layer_0/angular_velocity = 0.0 +5:4/0/terrains_peering_bit/right_side = 1 +5:4/0/terrains_peering_bit/bottom_right_corner = 1 +5:4/0/terrains_peering_bit/top_right_corner = 1 +6:4/0 = 0 +6:4/0/terrain_set = 0 +6:4/0/terrain = 1 +6:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:4/0/physics_layer_0/angular_velocity = 0.0 +6:4/0/terrains_peering_bit/right_side = 1 +6:4/0/terrains_peering_bit/bottom_right_corner = 1 +6:4/0/terrains_peering_bit/bottom_side = 1 +6:4/0/terrains_peering_bit/bottom_left_corner = 1 +6:4/0/terrains_peering_bit/left_side = 1 +6:4/0/terrains_peering_bit/top_left_corner = 1 +6:4/0/terrains_peering_bit/top_side = 1 +6:4/0/terrains_peering_bit/top_right_corner = 1 +7:4/0 = 0 +7:4/0/terrain_set = 0 +7:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:4/0/physics_layer_0/angular_velocity = 0.0 +7:4/0/terrains_peering_bit/bottom_left_corner = 1 +7:4/0/terrains_peering_bit/left_side = 1 +7:4/0/terrains_peering_bit/top_left_corner = 1 +0:5/0 = 0 +0:5/0/terrain_set = 0 +0:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:5/0/physics_layer_0/angular_velocity = 0.0 +0:5/0/terrains_peering_bit/top_right_corner = 0 +1:5/0 = 0 +1:5/0/terrain_set = 0 +1:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:5/0/physics_layer_0/angular_velocity = 0.0 +1:5/0/terrains_peering_bit/top_left_corner = 0 +1:5/0/terrains_peering_bit/top_side = 0 +1:5/0/terrains_peering_bit/top_right_corner = 0 +2:5/0 = 0 +2:5/0/terrain_set = 0 +2:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:5/0/physics_layer_0/angular_velocity = 0.0 +2:5/0/terrains_peering_bit/top_left_corner = 0 +3:5/0 = 0 +3:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:5/0/physics_layer_0/angular_velocity = 0.0 +4:5/0 = 0 +4:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:5/0/physics_layer_0/angular_velocity = 0.0 +5:5/0 = 0 +5:5/0/terrain_set = 0 +5:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:5/0/physics_layer_0/angular_velocity = 0.0 +5:5/0/terrains_peering_bit/top_right_corner = 1 +6:5/0 = 0 +6:5/0/terrain_set = 0 +6:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:5/0/physics_layer_0/angular_velocity = 0.0 +6:5/0/terrains_peering_bit/top_left_corner = 1 +6:5/0/terrains_peering_bit/top_side = 1 +6:5/0/terrains_peering_bit/top_right_corner = 1 +7:5/0 = 0 +7:5/0/terrain_set = 0 +7:5/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:5/0/physics_layer_0/angular_velocity = 0.0 +7:5/0/terrains_peering_bit/top_left_corner = 1 +0:6/0 = 0 +0:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:6/0/physics_layer_0/angular_velocity = 0.0 +1:6/0 = 0 +1:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:6/0/physics_layer_0/angular_velocity = 0.0 +2:6/0 = 0 +2:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:6/0/physics_layer_0/angular_velocity = 0.0 +3:6/0 = 0 +3:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:6/0/physics_layer_0/angular_velocity = 0.0 +4:6/0 = 0 +4:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:6/0/physics_layer_0/angular_velocity = 0.0 +5:6/0 = 0 +5:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:6/0/physics_layer_0/angular_velocity = 0.0 +6:6/0 = 0 +6:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:6/0/physics_layer_0/angular_velocity = 0.0 +7:6/0 = 0 +7:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:6/0/physics_layer_0/angular_velocity = 0.0 +0:7/0 = 0 +0:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:7/0/physics_layer_0/angular_velocity = 0.0 +2:7/0 = 0 +2:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:7/0/physics_layer_0/angular_velocity = 0.0 +3:7/0 = 0 +3:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:7/0/physics_layer_0/angular_velocity = 0.0 +4:7/0 = 0 +4:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:7/0/physics_layer_0/angular_velocity = 0.0 +5:7/0 = 0 +5:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:7/0/physics_layer_0/angular_velocity = 0.0 +6:7/0 = 0 +6:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:7/0/physics_layer_0/angular_velocity = 0.0 +7:7/0 = 0 +7:7/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:7/0/physics_layer_0/angular_velocity = 0.0 +0:8/0 = 0 +0:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:8/0/physics_layer_0/angular_velocity = 0.0 +1:8/0 = 0 +1:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:8/0/physics_layer_0/angular_velocity = 0.0 +2:8/0 = 0 +2:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:8/0/physics_layer_0/angular_velocity = 0.0 +3:8/0 = 0 +3:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:8/0/physics_layer_0/angular_velocity = 0.0 +4:8/0 = 0 +4:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:8/0/physics_layer_0/angular_velocity = 0.0 +5:8/0 = 0 +5:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:8/0/physics_layer_0/angular_velocity = 0.0 +6:8/0 = 0 +6:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:8/0/physics_layer_0/angular_velocity = 0.0 +7:8/0 = 0 +7:8/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:8/0/physics_layer_0/angular_velocity = 0.0 +0:9/0 = 0 +0:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:9/0/physics_layer_0/angular_velocity = 0.0 +1:9/0 = 0 +1:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:9/0/physics_layer_0/angular_velocity = 0.0 +2:9/0 = 0 +2:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:9/0/physics_layer_0/angular_velocity = 0.0 +3:9/0 = 0 +3:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:9/0/physics_layer_0/angular_velocity = 0.0 +4:9/0 = 0 +4:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:9/0/physics_layer_0/angular_velocity = 0.0 +5:9/0 = 0 +5:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:9/0/physics_layer_0/angular_velocity = 0.0 +6:9/0 = 0 +6:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:9/0/physics_layer_0/angular_velocity = 0.0 +7:9/0 = 0 +7:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:9/0/physics_layer_0/angular_velocity = 0.0 +0:10/0 = 0 +0:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:10/0/physics_layer_0/angular_velocity = 0.0 +1:10/0 = 0 +1:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:10/0/physics_layer_0/angular_velocity = 0.0 +2:10/0 = 0 +2:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:10/0/physics_layer_0/angular_velocity = 0.0 +3:10/0 = 0 +3:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:10/0/physics_layer_0/angular_velocity = 0.0 +4:10/0 = 0 +4:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:10/0/physics_layer_0/angular_velocity = 0.0 +5:10/0 = 0 +5:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:10/0/physics_layer_0/angular_velocity = 0.0 +6:10/0 = 0 +6:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:10/0/physics_layer_0/angular_velocity = 0.0 +7:10/0 = 0 +7:10/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:10/0/physics_layer_0/angular_velocity = 0.0 +0:11/0 = 0 +0:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:11/0/physics_layer_0/angular_velocity = 0.0 +1:11/0 = 0 +1:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:11/0/physics_layer_0/angular_velocity = 0.0 +2:11/0 = 0 +2:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:11/0/physics_layer_0/angular_velocity = 0.0 +3:11/0 = 0 +3:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:11/0/physics_layer_0/angular_velocity = 0.0 +4:11/0 = 0 +4:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:11/0/physics_layer_0/angular_velocity = 0.0 +5:11/0 = 0 +5:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:11/0/physics_layer_0/angular_velocity = 0.0 +6:11/0 = 0 +6:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:11/0/physics_layer_0/angular_velocity = 0.0 +7:11/0 = 0 +7:11/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:11/0/physics_layer_0/angular_velocity = 0.0 +0:12/0 = 0 +0:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:12/0/physics_layer_0/angular_velocity = 0.0 +1:12/0 = 0 +1:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:12/0/physics_layer_0/angular_velocity = 0.0 +2:12/0 = 0 +2:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:12/0/physics_layer_0/angular_velocity = 0.0 +3:12/0 = 0 +3:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:12/0/physics_layer_0/angular_velocity = 0.0 +4:12/0 = 0 +4:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:12/0/physics_layer_0/angular_velocity = 0.0 +5:12/0 = 0 +5:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:12/0/physics_layer_0/angular_velocity = 0.0 +6:12/0 = 0 +6:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:12/0/physics_layer_0/angular_velocity = 0.0 +7:12/0 = 0 +7:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:12/0/physics_layer_0/angular_velocity = 0.0 +0:13/0 = 0 +0:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:13/0/physics_layer_0/angular_velocity = 0.0 +1:13/0 = 0 +1:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:13/0/physics_layer_0/angular_velocity = 0.0 +2:13/0 = 0 +2:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:13/0/physics_layer_0/angular_velocity = 0.0 +3:13/0 = 0 +3:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:13/0/physics_layer_0/angular_velocity = 0.0 +4:13/0 = 0 +4:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:13/0/physics_layer_0/angular_velocity = 0.0 +5:13/0 = 0 +5:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:13/0/physics_layer_0/angular_velocity = 0.0 +6:13/0 = 0 +6:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:13/0/physics_layer_0/angular_velocity = 0.0 +7:13/0 = 0 +7:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:13/0/physics_layer_0/angular_velocity = 0.0 +0:14/0 = 0 +0:14/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:14/0/physics_layer_0/angular_velocity = 0.0 +1:14/0 = 0 +1:14/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:14/0/physics_layer_0/angular_velocity = 0.0 +2:14/0 = 0 +2:14/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:14/0/physics_layer_0/angular_velocity = 0.0 +3:14/0 = 0 +3:14/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:14/0/physics_layer_0/angular_velocity = 0.0 +4:14/0 = 0 +4:14/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:14/0/physics_layer_0/angular_velocity = 0.0 +5:14/0 = 0 +5:14/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:14/0/physics_layer_0/angular_velocity = 0.0 +6:14/0 = 0 +6:14/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:14/0/physics_layer_0/angular_velocity = 0.0 +7:14/0 = 0 +7:14/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:14/0/physics_layer_0/angular_velocity = 0.0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_knagf"] +texture = ExtResource("2_ao304") +texture_region_size = Vector2i(48, 48) +4:6/size_in_atlas = Vector2i(4, 5) +4:6/0 = 0 +4:6/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:6/0/physics_layer_0/angular_velocity = 0.0 +0:9/size_in_atlas = Vector2i(1, 2) +0:9/0 = 0 +0:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:9/0/physics_layer_0/angular_velocity = 0.0 +1:9/size_in_atlas = Vector2i(1, 2) +1:9/0 = 0 +1:9/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:9/0/physics_layer_0/angular_velocity = 0.0 +5:4/size_in_atlas = Vector2i(3, 2) +5:4/0 = 0 +5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:4/0/physics_layer_0/angular_velocity = 0.0 +3:4/size_in_atlas = Vector2i(2, 2) +3:4/0 = 0 +3:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:4/0/physics_layer_0/angular_velocity = 0.0 +1:0/0 = 0 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +2:0/0 = 0 +2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/0/physics_layer_0/angular_velocity = 0.0 +3:0/0 = 0 +3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/0/physics_layer_0/angular_velocity = 0.0 +4:0/0 = 0 +4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:0/0/physics_layer_0/angular_velocity = 0.0 +5:1/0 = 0 +5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:1/0/physics_layer_0/angular_velocity = 0.0 +6:1/size_in_atlas = Vector2i(2, 1) +6:1/0 = 0 +6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:1/0/physics_layer_0/angular_velocity = 0.0 +2:4/size_in_atlas = Vector2i(1, 2) +2:4/0 = 0 +2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:4/0/physics_layer_0/angular_velocity = 0.0 +0:12/0 = 0 +0:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:12/0/physics_layer_0/angular_velocity = 0.0 +1:12/0 = 0 +1:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:12/0/physics_layer_0/angular_velocity = 0.0 +2:12/0 = 0 +2:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:12/0/physics_layer_0/angular_velocity = 0.0 +3:12/0 = 0 +3:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:12/0/physics_layer_0/angular_velocity = 0.0 +4:12/0 = 0 +4:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:12/0/physics_layer_0/angular_velocity = 0.0 +5:12/0 = 0 +5:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:12/0/physics_layer_0/angular_velocity = 0.0 +6:12/0 = 0 +6:12/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:12/0/physics_layer_0/angular_velocity = 0.0 +0:13/size_in_atlas = Vector2i(3, 3) +0:13/0 = 0 +0:13/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:13/0/physics_layer_0/angular_velocity = 0.0 + +[sub_resource type="TileSet" id="TileSet_eqd70"] +tile_size = Vector2i(48, 48) +physics_layer_0/collision_layer = 1 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "Path" +terrain_set_0/terrain_0/color = Color(0.407843, 0.407843, 0.407843, 1) +terrain_set_0/terrain_1/name = "Ground" +terrain_set_0/terrain_1/color = Color(0.345098, 0.254902, 0.196078, 1) +sources/0 = SubResource("TileSetAtlasSource_7yb1o") +sources/2 = SubResource("TileSetAtlasSource_knagf") + +[sub_resource type="Curve2D" id="Curve2D_csucy"] +_data = { +"points": PackedVector2Array(0, 0, 0, 0, -25, 212, 0, 0, 0, 0, 547, 216, 0, 0, 0, 0, 542, 498, 0, 0, 0, 0, 1176, 500) +} +point_count = 4 + +[node name="GameManager" type="Node2D"] +script = ExtResource("1_yugmb") + +[node name="TileMap" type="TileMap" parent="."] +tile_set = SubResource("TileSet_eqd70") +format = 2 +layer_0/name = "Background" +layer_0/tile_data = PackedInt32Array(786454, 393216, 4, 786455, 458752, 4, 851991, 458752, 5, 851990, 393216, 5, 851989, 393216, 5, 786453, 393216, 4, 851988, 393216, 5, 786452, 393216, 4, 851987, 393216, 5, 786451, 393216, 4, 851986, 393216, 5, 786450, 393216, 4, 851985, 393216, 5, 786449, 393216, 4, 851984, 393216, 5, 786448, 393216, 4, 851983, 393216, 5, 786447, 393216, 4, 851982, 393216, 5, 786446, 393216, 4, 851981, 393216, 5, 786445, 393216, 4, 851980, 393216, 5, 786444, 393216, 4, 851979, 393216, 5, 786443, 393216, 4, 851978, 393216, 5, 786442, 393216, 4, 851977, 393216, 5, 786441, 393216, 4, 851976, 393216, 5, 786440, 393216, 4, 851975, 393216, 5, 786439, 393216, 4, 720903, 393216, 4, 851974, 393216, 5, 786438, 393216, 4, 720902, 393216, 4, 851973, 393216, 5, 786437, 393216, 4, 720901, 393216, 4, 851972, 393216, 5, 786436, 393216, 4, 720900, 393216, 4, 851971, 393216, 5, 786435, 393216, 4, 720899, 393216, 4, 851970, 393216, 5, 786434, 393216, 4, 720898, 393216, 4, 851969, 393216, 5, 786433, 393216, 4, 720897, 393216, 4, 851968, 327680, 5, 786432, 327680, 4, 720896, 327680, 4, 655360, 327680, 4, 655361, 393216, 4, 655362, 393216, 4, 589824, 327680, 4, 589825, 393216, 4, 589826, 393216, 4, 524288, 327680, 4, 524289, 393216, 4, 524290, 393216, 4, 458752, 327680, 4, 458753, 393216, 4, 458754, 393216, 4, 393216, 327680, 4, 393217, 393216, 4, 262144, 65536, 4, 262145, 65536, 4, 262146, 65536, 4, 65536, 327680, 4, 65537, 393216, 4, 65538, 393216, 4, 0, 327680, 3, 1, 393216, 3, 2, 393216, 3, 65539, 393216, 4, 3, 393216, 3, 65540, 393216, 4, 4, 393216, 3, 65541, 393216, 4, 5, 393216, 3, 65542, 393216, 4, 6, 393216, 3, 65543, 393216, 4, 7, 393216, 3, 65544, 393216, 4, 8, 393216, 3, 65545, 393216, 4, 9, 393216, 3, 65546, 393216, 4, 10, 393216, 3, 12, 393216, 3, 65549, 393216, 4, 13, 393216, 3, 65550, 393216, 4, 14, 393216, 3, 65551, 393216, 4, 131087, 393216, 4, 15, 393216, 3, 65552, 393216, 4, 16, 393216, 3, 65553, 393216, 4, 17, 393216, 3, 65554, 393216, 4, 131090, 393216, 4, 18, 393216, 3, 65555, 393216, 4, 19, 393216, 3, 65556, 393216, 4, 131092, 393216, 4, 20, 393216, 3, 65557, 393216, 4, 131093, 393216, 4, 21, 393216, 3, 65558, 393216, 4, 131094, 393216, 4, 22, 393216, 3, 65559, 458752, 4, 131095, 458752, 4, 23, 458752, 3, 196631, 458752, 4, 196630, 393216, 4, 196629, 393216, 4, 262167, 458752, 4, 262166, 393216, 4, 262165, 393216, 4, 327703, 458752, 4, 327702, 393216, 4, 327701, 393216, 4, 393239, 458752, 4, 393238, 393216, 4, 393237, 393216, 4, 458775, 458752, 4, 458774, 393216, 4, 458773, 393216, 4, 524311, 458752, 4, 524310, 393216, 4, 655383, 65536, 4, 655382, 65536, 4, 655381, 65536, 4, 131091, 393216, 4, 655378, 65536, 4, 655379, 65536, 4, 655380, 65536, 4, 589843, 65536, 3, 589844, 65536, 3, 589842, 65536, 3, 655377, 65536, 4, 655376, 65536, 4, 655375, 65536, 4, 655371, 65536, 4, 589835, 65536, 4, 524299, 65536, 4, 524300, 131072, 4, 458763, 65536, 4, 393227, 65536, 4, 393228, 131072, 4, 458764, 131072, 4, 262152, 65536, 4, 262151, 65536, 4, 262150, 65536, 4, 262149, 65536, 4, 262148, 65536, 4, 262147, 65536, 4, 327684, 65536, 5, 327685, 65536, 5, 327686, 65536, 5, 327687, 65536, 5, 327688, 65536, 5, 65547, 393216, 4, 327690, 65536, 4, 262155, 65536, 4, 262153, 65536, 4, 262154, 65536, 4, 327689, 65536, 5, 327691, 65536, 4, 327692, 131072, 4, 720911, 65536, 5, 720913, 65536, 5, 720914, 65536, 5, 720907, 65536, 5, 720906, 0, 5, 262156, 131072, 4, 196611, 65536, 3, 196612, 65536, 3, 196613, 65536, 3, 196614, 65536, 3, 196615, 65536, 3, 196616, 65536, 3, 196617, 65536, 3, 196618, 65536, 3, 196619, 65536, 3, 393226, 0, 4, 589834, 0, 4, 458762, 0, 4, 524298, 0, 4, 655370, 0, 4, 720912, 65536, 5, 589840, 65536, 3, 589841, 65536, 3, 655372, 65536, 4, 720909, 65536, 5, 720908, 65536, 5, 655374, 65536, 4, 720910, 65536, 5, 589836, 65536, 4, 655373, 65536, 4, 589838, 65536, 3, 589839, 65536, 3, 589837, 65536, 3, 589845, 65536, 3, 720917, 65536, 5, 720916, 65536, 5, 720915, 65536, 5, 720918, 65536, 5, 589846, 65536, 3, 589847, 65536, 3, 720919, 65536, 5, 196609, 65536, 3, 196610, 65536, 3, 196608, 65536, 3, 327682, 65536, 5, 327681, 65536, 5, 327680, 65536, 5, 327683, 65536, 5, 196628, 393216, 4, 262164, 393216, 4, 262163, 393216, 4, 196627, 393216, 4, 327700, 393216, 4, 327699, 393216, 4, 262162, 393216, 4, 196626, 393216, 4, 262161, 393216, 4, 196625, 393216, 4, 131089, 393216, 4, 262160, 393216, 4, 196624, 393216, 4, 131088, 393216, 4, 327698, 393216, 4, 327697, 393216, 4, 327696, 393216, 4, 327695, 393216, 4, 262159, 393216, 4, 196623, 393216, 4, 327694, 393216, 4, 262158, 393216, 4, 196622, 393216, 4, 393236, 393216, 4, 393235, 393216, 4, 458772, 393216, 4, 458771, 393216, 4, 458770, 393216, 4, 393234, 393216, 4, 458769, 393216, 4, 393233, 393216, 4, 458768, 393216, 4, 393232, 393216, 4, 458767, 393216, 4, 393231, 393216, 4, 393230, 393216, 4, 458766, 393216, 4, 393229, 393216, 4, 327693, 393216, 4, 262157, 393216, 4, 458765, 393216, 4, 196621, 393216, 4, 131085, 393216, 4, 131084, 393216, 4, 65548, 393216, 4, 131083, 393216, 4, 11, 393216, 3, 131082, 393216, 4, 131081, 393216, 4, 131080, 393216, 4, 131079, 393216, 4, 131078, 393216, 4, 131077, 393216, 4, 131076, 393216, 4, 131075, 393216, 4, 131074, 393216, 4, 131073, 393216, 4, 131072, 327680, 5, 131086, 393216, 4, 655363, 393216, 4, 655364, 393216, 4, 589827, 393216, 4, 589828, 393216, 4, 524291, 393216, 4, 524292, 393216, 4, 589829, 393216, 4, 655365, 393216, 4, 458755, 393216, 4, 458756, 393216, 4, 393218, 393216, 4, 393219, 393216, 4, 393220, 393216, 4, 458757, 393216, 4, 393221, 393216, 4, 524293, 393216, 4, 458758, 393216, 4, 524294, 393216, 4, 393222, 393216, 4, 458759, 393216, 4, 524295, 393216, 4, 393223, 393216, 4, 458760, 393216, 4, 524296, 393216, 4, 393224, 393216, 4, 458761, 393216, 4, 524297, 393216, 4, 393225, 393216, 4, 589833, 393216, 4, 589832, 393216, 4, 589831, 393216, 4, 589830, 393216, 4, 655367, 393216, 4, 655366, 393216, 4, 655368, 393216, 4, 655369, 393216, 4, 720904, 393216, 4, 720905, 393216, 4, 524309, 393216, 4, 524308, 393216, 4, 524301, 393216, 4, 524302, 393216, 4, 524303, 393216, 4, 524304, 393216, 4, 524305, 393216, 4, 524306, 393216, 4, 524307, 393216, 4, 196620, 131072, 3, 327679, 0, 4, 655384, 65536, 4) +layer_1/name = "Obstacle" +layer_1/enabled = true +layer_1/modulate = Color(1, 1, 1, 1) +layer_1/y_sort_enabled = false +layer_1/y_sort_origin = 0 +layer_1/z_index = 0 +layer_1/tile_data = PackedInt32Array(196628, 262146, 6, 131089, 2, 13, 720899, 327682, 4, 655364, 196610, 4, 589826, 262146, 12, 589830, 196610, 12) + +[node name="Path2D" type="Path2D" parent="."] +curve = SubResource("Curve2D_csucy") +script = ExtResource("3_wqx3u") +enemy = ExtResource("4_iivll") + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="TowerMenu" parent="CanvasLayer" instance=ExtResource("6_p2t31")] +visible = false + +[node name="Placements" type="Node2D" parent="."] + +[node name="placement" parent="Placements" instance=ExtResource("8_ftqhi")] +position = Vector2(313, 326) + +[node name="placement2" parent="Placements" instance=ExtResource("8_ftqhi")] +position = Vector2(676, 192) + +[node name="placement3" parent="Placements" instance=ExtResource("8_ftqhi")] +position = Vector2(844, 393) diff --git a/scenes/towers/cannon-1.tscn b/scenes/towers/cannon-1.tscn new file mode 100644 index 0000000..f243cb1 --- /dev/null +++ b/scenes/towers/cannon-1.tscn @@ -0,0 +1,95 @@ +[gd_scene load_steps=14 format=3 uid="uid://bexddlltacp6k"] + +[ext_resource type="Script" path="res://scripts/towers/tower.gd" id="1_qd0ev"] +[ext_resource type="PackedScene" uid="uid://dqa80ptcc8p70" path="res://scenes/bullets/bullet-1.tscn" id="2_86sw3"] +[ext_resource type="Texture2D" uid="uid://2ovf2ymtftgo" path="res://assets/spritesheets/towers/cannon-1.png" id="3_rql5q"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_3x0a2"] +atlas = ExtResource("3_rql5q") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n8n18"] +atlas = ExtResource("3_rql5q") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_emmfr"] +atlas = ExtResource("3_rql5q") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_epw5k"] +atlas = ExtResource("3_rql5q") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1wfiw"] +atlas = ExtResource("3_rql5q") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mv4my"] +atlas = ExtResource("3_rql5q") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2wil8"] +atlas = ExtResource("3_rql5q") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_i6shl"] +atlas = ExtResource("3_rql5q") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="SpriteFrames" id="SpriteFrames_5xwnf"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_3x0a2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_n8n18") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_emmfr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_epw5k") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1wfiw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mv4my") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2wil8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_i6shl") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_wmsbt"] +radius = 138.293 + +[node name="cannon-1" type="Node2D" groups=["Towers"]] +script = ExtResource("1_qd0ev") +bullet = ExtResource("2_86sw3") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +position = Vector2(-1, 0) +rotation = 1.5708 +sprite_frames = SubResource("SpriteFrames_5xwnf") +frame_progress = 0.648704 + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_wmsbt") + +[node name="RayCast2D" type="RayCast2D" parent="."] + +[node name="Timer" type="Timer" parent="."] +one_shot = true + +[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"] +[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"] diff --git a/scenes/towers/cannon-2.tscn b/scenes/towers/cannon-2.tscn new file mode 100644 index 0000000..dfc5e4f --- /dev/null +++ b/scenes/towers/cannon-2.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=14 format=3 uid="uid://dij57511gfg4t"] + +[ext_resource type="Script" path="res://scripts/towers/tower.gd" id="1_2xepw"] +[ext_resource type="PackedScene" uid="uid://dqa80ptcc8p70" path="res://scenes/bullets/bullet-1.tscn" id="2_v72iu"] +[ext_resource type="Texture2D" uid="uid://br7wgq61n6ufv" path="res://assets/spritesheets/towers/cannon-2.png" id="3_u5fqp"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_74asi"] +atlas = ExtResource("3_u5fqp") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ug5lf"] +atlas = ExtResource("3_u5fqp") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vs27q"] +atlas = ExtResource("3_u5fqp") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h1use"] +atlas = ExtResource("3_u5fqp") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3rr0n"] +atlas = ExtResource("3_u5fqp") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_w8pr4"] +atlas = ExtResource("3_u5fqp") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bagik"] +atlas = ExtResource("3_u5fqp") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tv6sf"] +atlas = ExtResource("3_u5fqp") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="SpriteFrames" id="SpriteFrames_gp0wd"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_74asi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ug5lf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vs27q") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_h1use") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3rr0n") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_w8pr4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bagik") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tv6sf") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_wmsbt"] +radius = 138.293 + +[node name="cannon-2" type="Node2D" groups=["Towers"]] +script = ExtResource("1_2xepw") +bullet = ExtResource("2_v72iu") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +position = Vector2(-1, 0) +rotation = 1.5708 +sprite_frames = SubResource("SpriteFrames_gp0wd") + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_wmsbt") + +[node name="RayCast2D" type="RayCast2D" parent="."] + +[node name="Timer" type="Timer" parent="."] +one_shot = true + +[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"] +[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"] diff --git a/scenes/towers/cannon-3.tscn b/scenes/towers/cannon-3.tscn new file mode 100644 index 0000000..975d961 --- /dev/null +++ b/scenes/towers/cannon-3.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=14 format=3 uid="uid://mxre00inxhlf"] + +[ext_resource type="Script" path="res://scripts/towers/tower.gd" id="1_8bvcy"] +[ext_resource type="PackedScene" uid="uid://dqa80ptcc8p70" path="res://scenes/bullets/bullet-1.tscn" id="2_pqmds"] +[ext_resource type="Texture2D" uid="uid://by4hjrjfcxsdl" path="res://assets/spritesheets/towers/cannon-3.png" id="3_k5iet"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_roben"] +atlas = ExtResource("3_k5iet") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uo3hi"] +atlas = ExtResource("3_k5iet") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_85qm5"] +atlas = ExtResource("3_k5iet") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tv0aa"] +atlas = ExtResource("3_k5iet") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1ttn5"] +atlas = ExtResource("3_k5iet") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vpsw3"] +atlas = ExtResource("3_k5iet") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rp8py"] +atlas = ExtResource("3_k5iet") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e6hsk"] +atlas = ExtResource("3_k5iet") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="SpriteFrames" id="SpriteFrames_ta4uo"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_roben") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uo3hi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_85qm5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tv0aa") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1ttn5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vpsw3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rp8py") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_e6hsk") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_wmsbt"] +radius = 138.293 + +[node name="cannon-3" type="Node2D" groups=["Towers"]] +script = ExtResource("1_8bvcy") +bullet = ExtResource("2_pqmds") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +position = Vector2(-1, 0) +rotation = 1.5708 +sprite_frames = SubResource("SpriteFrames_ta4uo") + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_wmsbt") + +[node name="RayCast2D" type="RayCast2D" parent="."] + +[node name="Timer" type="Timer" parent="."] +one_shot = true + +[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"] +[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"] diff --git a/scenes/towers/placement/placement.tscn b/scenes/towers/placement/placement.tscn new file mode 100644 index 0000000..45150cf --- /dev/null +++ b/scenes/towers/placement/placement.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://bvoenhbaqiqj2"] + +[ext_resource type="Script" path="res://scripts/towers/placement/placement.gd" id="1_4v8tt"] +[ext_resource type="Texture2D" uid="uid://0cbsthay7e18" path="res://assets/spritesheets/placement.png" id="2_06tg2"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_hi6ti"] +radius = 18.1108 + +[node name="placement" type="StaticBody2D"] +input_pickable = true +script = ExtResource("1_4v8tt") + +[node name="Sprite2D" type="Sprite2D" parent="."] +scale = Vector2(0.03, 0.03) +texture = ExtResource("2_06tg2") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_hi6ti") + +[connection signal="input_event" from="." to="." method="_on_input_event"] diff --git a/scenes/towers/railgun-1.tscn b/scenes/towers/railgun-1.tscn new file mode 100644 index 0000000..d3fe3ed --- /dev/null +++ b/scenes/towers/railgun-1.tscn @@ -0,0 +1,95 @@ +[gd_scene load_steps=14 format=3 uid="uid://biyhuyx177dw8"] + +[ext_resource type="Script" path="res://scripts/towers/tower.gd" id="1_1kehv"] +[ext_resource type="PackedScene" uid="uid://dqa80ptcc8p70" path="res://scenes/bullets/bullet-1.tscn" id="2_stgpo"] +[ext_resource type="Texture2D" uid="uid://c02ebkmjpxium" path="res://assets/spritesheets/towers/railgun-1.png" id="3_ibkbv"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_60mof"] +atlas = ExtResource("3_ibkbv") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_etl58"] +atlas = ExtResource("3_ibkbv") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3ojyw"] +atlas = ExtResource("3_ibkbv") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4nido"] +atlas = ExtResource("3_ibkbv") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6l18x"] +atlas = ExtResource("3_ibkbv") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fcrte"] +atlas = ExtResource("3_ibkbv") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c4er5"] +atlas = ExtResource("3_ibkbv") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v35ak"] +atlas = ExtResource("3_ibkbv") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="SpriteFrames" id="SpriteFrames_geya5"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_60mof") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_etl58") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3ojyw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4nido") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6l18x") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fcrte") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c4er5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_v35ak") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_wmsbt"] +radius = 138.293 + +[node name="railgun-1" type="Node2D" groups=["Towers"]] +script = ExtResource("1_1kehv") +bullet = ExtResource("2_stgpo") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +position = Vector2(-1, 0) +rotation = 1.5708 +sprite_frames = SubResource("SpriteFrames_geya5") +frame_progress = 0.769467 + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_wmsbt") + +[node name="RayCast2D" type="RayCast2D" parent="."] + +[node name="Timer" type="Timer" parent="."] +one_shot = true + +[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"] +[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"] diff --git a/scenes/towers/railgun-2.tscn b/scenes/towers/railgun-2.tscn new file mode 100644 index 0000000..e16a8e8 --- /dev/null +++ b/scenes/towers/railgun-2.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=14 format=3 uid="uid://ctnlfsnc2gl03"] + +[ext_resource type="Script" path="res://scripts/towers/tower.gd" id="1_th1rt"] +[ext_resource type="PackedScene" uid="uid://dqa80ptcc8p70" path="res://scenes/bullets/bullet-1.tscn" id="2_nr2g5"] +[ext_resource type="Texture2D" uid="uid://b0dawx5rlcyo3" path="res://assets/spritesheets/towers/railgun-2.png" id="3_uumfa"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_fss1a"] +atlas = ExtResource("3_uumfa") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6n843"] +atlas = ExtResource("3_uumfa") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xjwev"] +atlas = ExtResource("3_uumfa") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g520l"] +atlas = ExtResource("3_uumfa") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_os6e1"] +atlas = ExtResource("3_uumfa") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_whr0e"] +atlas = ExtResource("3_uumfa") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m7sk4"] +atlas = ExtResource("3_uumfa") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1jok4"] +atlas = ExtResource("3_uumfa") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="SpriteFrames" id="SpriteFrames_xw8jx"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_fss1a") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6n843") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xjwev") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_g520l") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_os6e1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_whr0e") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_m7sk4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1jok4") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_wmsbt"] +radius = 138.293 + +[node name="railgun-2" type="Node2D" groups=["Towers"]] +script = ExtResource("1_th1rt") +bullet = ExtResource("2_nr2g5") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +position = Vector2(-1, 0) +rotation = 1.5708 +sprite_frames = SubResource("SpriteFrames_xw8jx") + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_wmsbt") + +[node name="RayCast2D" type="RayCast2D" parent="."] + +[node name="Timer" type="Timer" parent="."] +one_shot = true + +[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"] +[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"] diff --git a/scenes/towers/railgun-3.tscn b/scenes/towers/railgun-3.tscn new file mode 100644 index 0000000..3ec2469 --- /dev/null +++ b/scenes/towers/railgun-3.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=14 format=3 uid="uid://cfelbpijg3dp0"] + +[ext_resource type="Script" path="res://scripts/towers/tower.gd" id="1_0tcnl"] +[ext_resource type="PackedScene" uid="uid://dqa80ptcc8p70" path="res://scenes/bullets/bullet-1.tscn" id="2_xodqu"] +[ext_resource type="Texture2D" uid="uid://dk3toqlc7igld" path="res://assets/spritesheets/towers/railgun-3.png" id="3_unh2r"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_g3wst"] +atlas = ExtResource("3_unh2r") +region = Rect2(0, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kpvk8"] +atlas = ExtResource("3_unh2r") +region = Rect2(128, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xv60f"] +atlas = ExtResource("3_unh2r") +region = Rect2(256, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hocp4"] +atlas = ExtResource("3_unh2r") +region = Rect2(384, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_00rie"] +atlas = ExtResource("3_unh2r") +region = Rect2(512, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fqp56"] +atlas = ExtResource("3_unh2r") +region = Rect2(640, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_42mkq"] +atlas = ExtResource("3_unh2r") +region = Rect2(768, 0, 128, 128) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cj5ok"] +atlas = ExtResource("3_unh2r") +region = Rect2(896, 0, 128, 128) + +[sub_resource type="SpriteFrames" id="SpriteFrames_olaum"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_g3wst") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kpvk8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xv60f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hocp4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_00rie") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fqp56") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_42mkq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cj5ok") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_wmsbt"] +radius = 138.293 + +[node name="railgun-3" type="Node2D" groups=["Towers"]] +script = ExtResource("1_0tcnl") +bullet = ExtResource("2_xodqu") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +position = Vector2(-1, 0) +rotation = 1.5708 +sprite_frames = SubResource("SpriteFrames_olaum") + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_wmsbt") + +[node name="RayCast2D" type="RayCast2D" parent="."] + +[node name="Timer" type="Timer" parent="."] +one_shot = true + +[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"] +[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"] diff --git a/scenes/ui/main.tscn b/scenes/ui/main.tscn new file mode 100644 index 0000000..603cb3e --- /dev/null +++ b/scenes/ui/main.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://dj4fkk406l1o1"] + +[node name="Main" type="Node2D"] diff --git a/scenes/ui/themes/leltres.tres b/scenes/ui/themes/leltres.tres new file mode 100644 index 0000000..40a51cc --- /dev/null +++ b/scenes/ui/themes/leltres.tres @@ -0,0 +1,3 @@ +[gd_resource type="Theme" format=3 uid="uid://d4fqih4gmaixt"] + +[resource] diff --git a/scenes/ui/tower-menu.tscn b/scenes/ui/tower-menu.tscn new file mode 100644 index 0000000..cd523c4 --- /dev/null +++ b/scenes/ui/tower-menu.tscn @@ -0,0 +1,107 @@ +[gd_scene load_steps=7 format=3 uid="uid://cd5r1v6f8hahx"] + +[ext_resource type="Script" path="res://scripts/ui/tower-menu.gd" id="1_h1oqf"] +[ext_resource type="Theme" uid="uid://d4fqih4gmaixt" path="res://scenes/ui/themes/leltres.tres" id="1_s4ty6"] +[ext_resource type="Texture2D" uid="uid://dql0j3rmo6lt6" path="res://assets/icons/towers/cannon-1-disabled.png" id="3_3pes3"] +[ext_resource type="Texture2D" uid="uid://rgnikuo8ht0w" path="res://assets/icons/towers/railgun-1-disabled.png" id="4_8q3ud"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_55n31"] +bg_color = Color(0.12549, 0.12549, 0.12549, 1) +corner_radius_top_left = 15 +corner_radius_top_right = 15 +corner_radius_bottom_right = 15 +corner_radius_bottom_left = 15 +corner_detail = 20 + +[sub_resource type="Theme" id="Theme_6r0bt"] + +[node name="TowerMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_h1oqf") + +[node name="Panel" type="Panel" 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 = -161.0 +offset_top = -141.0 +offset_right = 156.0 +offset_bottom = 184.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_55n31") + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_s4ty6") +theme_override_constants/separation = 30 + +[node name="Top" type="HBoxContainer" parent="Panel/VBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 125 + +[node name="MenuTitle" type="Label" parent="Panel/VBoxContainer/Top"] +layout_mode = 2 +text = " Build/Upgrade Tower" + +[node name="Close" type="Button" parent="Panel/VBoxContainer/Top"] +layout_mode = 2 +text = "X" +flat = true + +[node name="Middle" type="HBoxContainer" parent="Panel/VBoxContainer"] +layout_mode = 2 +alignment = 1 + +[node name="TowerOption" type="TextureButton" parent="Panel/VBoxContainer/Middle"] +layout_mode = 2 +theme = SubResource("Theme_6r0bt") +texture_normal = ExtResource("3_3pes3") + +[node name="TowerOption2" type="TextureButton" parent="Panel/VBoxContainer/Middle"] +layout_mode = 2 +theme = SubResource("Theme_6r0bt") +texture_normal = ExtResource("4_8q3ud") + +[node name="Bottom" type="HBoxContainer" parent="Panel/VBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 60 +alignment = 1 + +[node name="TowerName" type="Label" parent="Panel/VBoxContainer/Bottom"] +layout_mode = 2 +text = "Cannon" + +[node name="TowerName2" type="Label" parent="Panel/VBoxContainer/Bottom"] +layout_mode = 2 +text = "Railgun" + +[node name="Nether" type="HBoxContainer" parent="Panel/VBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 75 +alignment = 1 + +[node name="TowerPrice" type="Label" parent="Panel/VBoxContainer/Nether"] +layout_mode = 2 +text = "10000" + +[node name="TowerPrice2" type="Label" parent="Panel/VBoxContainer/Nether"] +layout_mode = 2 +text = "20000" + +[connection signal="pressed" from="Panel/VBoxContainer/Top/Close" to="." method="_on_close_pressed"] +[connection signal="pressed" from="Panel/VBoxContainer/Middle/TowerOption" to="." method="_on_tower_option_pressed"] +[connection signal="pressed" from="Panel/VBoxContainer/Middle/TowerOption2" to="." method="_on_tower_option_2_pressed"] diff --git a/scripts/enemies/enemy-1.gd b/scripts/enemies/enemy-1.gd new file mode 100644 index 0000000..d09f076 --- /dev/null +++ b/scripts/enemies/enemy-1.gd @@ -0,0 +1,19 @@ +extends CharacterBody2D + +@export var health : int = 100 + +func _process(delta): + update_healthbar() + if health <= 0: + queue_free() + +func update_healthbar(): + $HealthBar.value = health + + if health >= 100: + $HealthBar.visible = false + else: + $HealthBar.visible = true + +func hit(damage : int): + health = health - damage diff --git a/scripts/stages/stage 1/Config.gd b/scripts/stages/stage 1/Config.gd new file mode 100644 index 0000000..8ac58d2 --- /dev/null +++ b/scripts/stages/stage 1/Config.gd @@ -0,0 +1,87 @@ +extends Node + +class_name Config + +var menu = [ + { + "name": "Cannon", + "image": load("res://assets/icons/towers/cannon-1.png"), + "image_disabled": load("res://assets/icons/towers/cannon-1-disabled.png"), + "price": 10 + }, + { + "name": "Railgun", + "image": load("res://assets/icons/towers/railgun-1.png"), + "image_disabled": load("res://assets/icons/towers/railgun-1-disabled.png"), + "price": 20 + }, + { + "name": "Cannon (V2)", + "image": load("res://assets/icons/towers/cannon-2.png"), + "image_disabled": load("res://assets/icons/towers/cannon-2-disabled.png"), + "price": 50 + }, + { + "name": "Railgun (V2)", + "image": load("res://assets/icons/towers/railgun-2.png"), + "image_disabled": load("res://assets/icons/towers/railgun-2-disabled.png"), + "price": 60 + }, + { + "name": "Cannon (V3)", + "image": load("res://assets/icons/towers/cannon-3.png"), + "image_disabled": load("res://assets/icons/towers/cannon-3-disabled.png"), + "price": 90 + }, + { + "name": "Railgun (V3)", + "image": load("res://assets/icons/towers/railgun-3.png"), + "image_disabled": load("res://assets/icons/towers/railgun-3-disabled.png"), + "price": 100 + } +] + +var tower = [ + { + "name": "Cannon", + "asset": preload("res://scenes/towers/cannon-1.tscn"), + "timer": 0.2, + "speed": 200, + "damage": 30 + }, + { + "name": "Railgun", + "asset": preload("res://scenes/towers/railgun-1.tscn"), + "timer": 0.2, + "speed": 200, + "damage": 40 + }, + { + "name": "Cannon (V2)", + "asset": preload("res://scenes/towers/cannon-2.tscn"), + "timer": 0.2, + "speed": 200, + "damage": 40 + }, + { + "name": "Railgun (V2)", + "asset": preload("res://scenes/towers/railgun-2.tscn"), + "timer": 0.2, + "speed": 200, + "damage": 40 + }, + { + "name": "Cannon (V3)", + "asset": preload("res://scenes/towers/cannon-3.tscn"), + "timer": 0.2, + "speed": 200, + "damage": 40 + }, + { + "name": "Railgun (V3)", + "asset": preload("res://scenes/towers/railgun-3.tscn"), + "timer": 0.2, + "speed": 200, + "damage": 40 + } +] diff --git a/scripts/stages/stage 1/GameManager.gd b/scripts/stages/stage 1/GameManager.gd new file mode 100644 index 0000000..a1ff0c3 --- /dev/null +++ b/scripts/stages/stage 1/GameManager.gd @@ -0,0 +1,62 @@ +extends Node2D + +class_name GameManager + +var config = load("res://scripts/stages/stage 1/Config.gd").new() + +var data = { + "tower": {}, + "health": 6, + "resource": 100 +} + +func _ready(): + var placements = $Placements.get_children() + for placement in placements: + placement.connect("on_placement", on_game_placement) + $CanvasLayer/TowerMenu.connect("build_tower", on_build_tower) + +func _process(delta): + pass + +func on_game_placement(pos, tower_placement_id): + var tower_id = null + var disabled = false + var disabled_2 = false + if data['tower'].has(str(tower_placement_id)): + match data['tower'][str(tower_placement_id)]['id']: + 0: + tower_id = 2 + 1: + tower_id = 3 + 2: + tower_id = 4 + 3: + tower_id = 5 + _: + tower_id = null + + if data['resource'] < config.menu[tower_id]['price']: + disabled = true + else: + if data['resource'] < config.menu[0]['price']: + disabled = true + if data['resource'] < config.menu[1]['price']: + disabled_2 = true + $CanvasLayer/TowerMenu.show_menu(tower_id, pos, tower_placement_id, disabled, disabled_2) + print(data) + +func on_build_tower(pos, tower_id, tower_placement_id): + if data['tower'].has(str(tower_placement_id)): + var current_tower = get_tree().current_scene.get_node(str(data['tower'][str(tower_placement_id)]['name'])) + current_tower.queue_free() + else: + data['tower'][str(tower_placement_id)] = {} + + var tower = config.tower[tower_id]['asset'].instantiate() + get_tree().current_scene.add_child(tower) + tower.global_position = pos + + data['tower'][str(tower_placement_id)]['id'] = tower_id + data['tower'][str(tower_placement_id)]['name'] = tower.name + data['resource'] -= config.menu[tower_id]['price'] diff --git a/scripts/stages/stage 1/summon.gd b/scripts/stages/stage 1/summon.gd new file mode 100644 index 0000000..03f8bcb --- /dev/null +++ b/scripts/stages/stage 1/summon.gd @@ -0,0 +1,24 @@ +extends Path2D + +var timer = 0 +@export var spawnTime = 3 +var spawn_first: bool = true + +@export var enemy: PackedScene = null + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + timer += delta + + if spawn_first: + add_child(enemy.instantiate()) + spawn_first = false + + if timer > spawnTime: + add_child(enemy.instantiate()) + timer = 0 diff --git a/scripts/stages/stage 1/walk.gd b/scripts/stages/stage 1/walk.gd new file mode 100644 index 0000000..19f50da --- /dev/null +++ b/scripts/stages/stage 1/walk.gd @@ -0,0 +1,11 @@ +extends PathFollow2D + +@export var speed = 30 + +func _ready(): + var rng = RandomNumberGenerator.new() + set_v_offset(rng.randf_range(-30.0, 30.0)) + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + set_progress(get_progress() + speed * delta) diff --git a/scripts/towers/placement/placement.gd b/scripts/towers/placement/placement.gd new file mode 100644 index 0000000..682eb61 --- /dev/null +++ b/scripts/towers/placement/placement.gd @@ -0,0 +1,16 @@ +extends StaticBody2D + +signal on_placement(pos: Vector2, tower_placement_id: int) + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + +func _on_input_event(viewport, event, shape_idx): + var mouse_click = event as InputEventMouseButton + if mouse_click and mouse_click.button_index == 1 and mouse_click.pressed: + on_placement.emit(global_position, get_instance_id()) diff --git a/scripts/towers/tower.gd b/scripts/towers/tower.gd new file mode 100644 index 0000000..4fe52ac --- /dev/null +++ b/scripts/towers/tower.gd @@ -0,0 +1,39 @@ +extends Node2D + +@onready var rayCast = $RayCast2D +@onready var timer = $Timer + +@export var bullet: PackedScene = null + +var config = load("res://scripts/stages/stage 1/Config.gd").new() + +var is_shoot: bool = true + +var enemies = [] + +func _update_look_at(enemy: Vector2): + look_at(enemy) + +func _physics_process(_delta): + if enemies.is_empty(): + $AnimatedSprite2D.stop() + else: + _update_look_at(enemies[0].global_position) + if timer.is_stopped(): + $AnimatedSprite2D.play("default") + _shoot() + +func _shoot(): + if bullet: + var bullet_instance: Node2D = bullet.instantiate() + get_tree().current_scene.add_child(bullet_instance) + bullet_instance.global_position = global_position + bullet_instance.global_rotation = rayCast.global_rotation + 0.1 + timer.start() + +func _on_body_entered(body): + if body.is_in_group("Enemy"): + enemies.append(body.get_parent()) + +func _on_body_exited(body): + enemies.erase(body.get_parent()) diff --git a/scripts/ui/tower-menu.gd b/scripts/ui/tower-menu.gd new file mode 100644 index 0000000..5102fba --- /dev/null +++ b/scripts/ui/tower-menu.gd @@ -0,0 +1,69 @@ +extends Control + + +var config = load("res://scripts/stages/stage 1/Config.gd").new() + +signal build_tower(pos, tower_id, tower_placement_id) + +var current_pos: Vector2 = Vector2(0,0) +var current_tower_id: int = 0 +var current_tower_id_2: int = 1 +var current_tower_placement_id = 0 +var current_disabled = false +var current_disabled_2 = false + +func _ready(): + hide() + +func _process(delta): + pass + +func _on_close_pressed(): + hide() + +func _on_tower_option_pressed(): + if !current_disabled: + build_tower.emit(current_pos, current_tower_id, current_tower_placement_id) + hide() + +func _on_tower_option_2_pressed(): + if !current_disabled_2: + build_tower.emit(current_pos, current_tower_id_2, current_tower_placement_id) + hide() + +func show_menu(tower_id, pos, tower_placement_id, disabled, disabled_2): + current_pos = pos + current_tower_placement_id = tower_placement_id + current_tower_id = 0 + current_tower_id_2 = 1 + current_disabled = disabled + current_disabled_2 = disabled_2 + + if tower_id != null: + current_tower_id = tower_id + + $Panel/VBoxContainer/Middle/TowerOption2.hide() + $Panel/VBoxContainer/Bottom/TowerName2.hide() + $Panel/VBoxContainer/Nether/TowerPrice2.hide() + else: + $Panel/VBoxContainer/Middle/TowerOption2.show() + $Panel/VBoxContainer/Bottom/TowerName2.show() + $Panel/VBoxContainer/Nether/TowerPrice2.show() + + var image = config.menu[current_tower_id]['image'] + if current_disabled: + image = config.menu[current_tower_id]['image_disabled'] + + $Panel/VBoxContainer/Middle/TowerOption.set_texture_normal(image) + $Panel/VBoxContainer/Bottom/TowerName.text = config.menu[current_tower_id]['name'] + $Panel/VBoxContainer/Nether/TowerPrice.text = str(config.menu[current_tower_id]['price']) + + var image_2 = config.menu[current_tower_id_2]['image'] + if current_disabled_2: + image_2 = config.menu[current_tower_id_2]['image_disabled'] + + $Panel/VBoxContainer/Middle/TowerOption2.set_texture_normal(image_2) + $Panel/VBoxContainer/Bottom/TowerName2.text = config.menu[current_tower_id_2]['name'] + $Panel/VBoxContainer/Nether/TowerPrice2.text = str(config.menu[current_tower_id_2]['price']) + + show()