Compare commits

..

4 commits

Author SHA1 Message Date
3964e4a1f9 .gitea/workflows/build.yml gelöscht 2023-10-28 10:30:00 +00:00
21ebb20856 „.gitea/workflows/test.yml“ löschen
Some checks are pending
Export Game
2023-05-14 14:17:35 +00:00
74cf2f2bbc „.gitea/workflows/test.yml“ ändern
Some checks are pending
Export Game
2023-05-14 14:09:46 +00:00
44ff5f654a adding experimental new build workflow
Some checks are pending
Export Game
2023-05-14 14:08:45 +00:00
54 changed files with 603 additions and 1588 deletions

View file

@ -1,99 +0,0 @@
name: "godot-ci export"
on:
push:
branches:
- stable
jobs:
export_game:
runs-on: ubuntu-latest
name: Export Game
steps:
- name: Checkout
uses: https://github.com/actions/checkout@v3.3.0
- name: Install Packages
id: wine_install
run: |
apt update -y && apt upgrade -y
apt install -y wine64 nodejs p7zip-full ca-certificates tree jq curl zip
echo "WINE_PATH=$(which wine64)" >> $GITHUB_OUTPUT
- name: Download Godot build-libs
run: |
mkdir -p /root/.local/share/godot/
wget -nv https://github.com/godotengine/godot/releases/download/4.0.2-stable/Godot_v4.0.2-stable_linux.x86_64.zip -O "/root/.local/share/godot/godot.zip"
wget -nv https://github.com/godotengine/godot/releases/download/4.0.2-stable/Godot_v4.0.2-stable_export_templates.tpz -O /root/.local/share/godot/godot_templates.tpz
- name: Setup Godot build-libs
run: |
7z x /root/.local/share/godot/godot.zip -o/root/.local/share/godot/godot_executable -y
chmod +x /root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64
unzip /root/.local/share/godot/godot_templates.tpz -d /root/.local/share/godot
mv /root/.local/share/godot/templates /root/.local/share/godot/4.0.2.stable
mkdir -p /root/.local/share/godot/export_templates
mv /root/.local/share/godot/4.0.2.stable /root/.local/share/godot/export_templates
/root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64 --version
- name: Export for Web
run: |
mkdir -p ./builds/web/
/root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64 /var/lib/actions/project.godot -q --headless --export-release "Web" ./builds/web/Game.html
- name: Package for Web
run: |
cd builds
tar -czvf web.zip -C web/ .
- name: Export for Linux
run: |
mkdir -p ./builds/linux/
/root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64 /var/lib/actions/project.godot -q --headless --export-release "Linux/X11" ./builds/linux/Game.x86_64
- name: Package for Linux
run: |
cd builds
tar -czvf linux.tar.gz -C linux/ .
- name: Export for Windows
run: |
mkdir -p ./builds/windows/
/root/.local/share/godot/godot_executable/Godot_v4.0.2-stable_linux.x86_64 /var/lib/actions/project.godot -q --headless --export-release "Windows Desktop" ./builds/windows/Game.exe
- name: Package for Windows
run: |
cd builds
cd windows; zip -r ../windows.zip *
cd ..
- name: Create Release
run: |
echo "Getting last Release Tag"
VERSION=$(curl -X 'GET' 'https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases?page=1&limit=1' -H 'accept: application/json' -H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' )
echo $VERSION | jq -r '.[0].tag_name'
VERSION=$(echo $VERSION | jq -r '.[0].tag_name' | awk -F. -v OFS=. '{$NF += 1 ; print}')
echo "Generate new Release with tag: $VERSION"
ID=$(curl -X 'POST' \
'https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' \
-d "{
\"body\": \"Automated Build\",
\"draft\": true,
\"name\": \"Automated Release $VERSION\",
\"prerelease\": true,
\"tag_name\": \"$VERSION\"
}")
ID=$(echo $ID | jq -r '.id')
echo $ID Upload Web
curl -X 'POST' \
"https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases/$ID/assets?name=Web.zip" \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' \
-F 'attachment=@./builds/web.zip;type=application/gzip'
echo $ID Upload Linux
curl -X 'POST' \
"https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases/$ID/assets?name=Linux.tar.gz" \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' \
-F 'attachment=@./builds/linux.tar.gz;type=application/gzip'
echo $ID Upload Windows
curl -X 'POST' \
"https://git.euph.dev/api/v1/repos/${{ github.repository }}/releases/$ID/assets?name=Windows.zip" \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-H 'Authorization: token ${{ secrets.RELEASE_TOKEN }}' \
-F 'attachment=@./builds/windows.zip;type=application/gzip'

View file

@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dornq2kwau6bg"
path="res://.godot/imported/Throw Variation 1.wav-cb6e200c1a7508bd3b1eaae71204fc57.sample"
[deps]
source_file="res://Assets/SFX/Jesus/Projectile/Throw Variation 1.wav"
dest_files=["res://.godot/imported/Throw Variation 1.wav-cb6e200c1a7508bd3b1eaae71204fc57.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View file

@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://b2pd7efb2r7g5"
path="res://.godot/imported/Throw Variation 2.wav-29a6debbe12d45d7a1d5ed60acdd2d8f.sample"
[deps]
source_file="res://Assets/SFX/Jesus/Projectile/Throw Variation 2.wav"
dest_files=["res://.godot/imported/Throw Variation 2.wav-29a6debbe12d45d7a1d5ed60acdd2d8f.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View file

@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cqxnclejfbmvb"
path="res://.godot/imported/Throw Variation 3.wav-6149b642d398d05b4c6ebfab8846c3e5.sample"
[deps]
source_file="res://Assets/SFX/Jesus/Projectile/Throw Variation 3.wav"
dest_files=["res://.godot/imported/Throw Variation 3.wav-6149b642d398d05b4c6ebfab8846c3e5.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 714 B

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

View file

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

View file

@ -1,14 +1,12 @@
[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://bj7uu2180mie3"]
[gd_resource type="TileSet" load_steps=4 format=3 uid="uid://bj7uu2180mie3"]
[ext_resource type="Texture2D" uid="uid://dl2qogjortsbo" path="res://Assets/Sprites/TileMap.png" id="1_cl3se"]
[sub_resource type="NavigationPolygon" id="NavigationPolygon_l6uwm"]
[sub_resource type="NavigationPolygon" id="NavigationPolygon_fhapu"]
vertices = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
outlines = Array[PackedVector2Array]([PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)])
[sub_resource type="NavigationPolygon" id="NavigationPolygon_dkm5b"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_mgef5"]
texture = ExtResource("1_cl3se")
texture_region_size = Vector2i(32, 32)
@ -18,14 +16,12 @@ texture_region_size = Vector2i(32, 32)
0:0/0/probability = 2.0
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
0:0/0/physics_layer_0/angular_velocity = 0.0
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -6, 16, -6, 16, 16, -16, 16)
0:0/0/terrains_peering_bit/bottom_side = 0
1:0/0 = 0
1:0/0/terrain_set = 0
1:0/0/terrain = 0
1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
1:0/0/physics_layer_0/angular_velocity = 0.0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
1:0/0/terrains_peering_bit/right_side = 0
1:0/0/terrains_peering_bit/bottom_side = 0
2:0/0 = 0
@ -33,7 +29,6 @@ texture_region_size = Vector2i(32, 32)
2:0/0/terrain = 0
2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
2:0/0/physics_layer_0/angular_velocity = 0.0
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
2:0/0/terrains_peering_bit/right_side = 0
2:0/0/terrains_peering_bit/bottom_side = 0
2:0/0/terrains_peering_bit/left_side = 0
@ -42,7 +37,6 @@ texture_region_size = Vector2i(32, 32)
3:0/0/terrain = 0
3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
3:0/0/physics_layer_0/angular_velocity = 0.0
3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
3:0/0/terrains_peering_bit/bottom_side = 0
3:0/0/terrains_peering_bit/left_side = 0
4:0/0 = 0
@ -50,7 +44,6 @@ texture_region_size = Vector2i(32, 32)
4:0/0/terrain = 0
4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
4:0/0/physics_layer_0/angular_velocity = 0.0
4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
4:0/0/terrains_peering_bit/right_side = 0
4:0/0/terrains_peering_bit/bottom_side = 0
4:0/0/terrains_peering_bit/left_side = 0
@ -61,7 +54,6 @@ texture_region_size = Vector2i(32, 32)
5:0/0/terrain = 0
5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
5:0/0/physics_layer_0/angular_velocity = 0.0
5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -5, 16, 16, -3, 16, -16, -1)
5:0/0/terrains_peering_bit/right_side = 0
5:0/0/terrains_peering_bit/bottom_right_corner = 0
5:0/0/terrains_peering_bit/bottom_side = 0
@ -71,7 +63,6 @@ texture_region_size = Vector2i(32, 32)
6:0/0/terrain = 0
6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
6:0/0/physics_layer_0/angular_velocity = 0.0
6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -5, -16, 16, 4, 16, 16, -1)
6:0/0/terrains_peering_bit/right_side = 0
6:0/0/terrains_peering_bit/bottom_side = 0
6:0/0/terrains_peering_bit/bottom_left_corner = 0
@ -81,7 +72,6 @@ texture_region_size = Vector2i(32, 32)
7:0/0/terrain = 0
7:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
7:0/0/physics_layer_0/angular_velocity = 0.0
7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
7:0/0/terrains_peering_bit/right_side = 0
7:0/0/terrains_peering_bit/bottom_side = 0
7:0/0/terrains_peering_bit/left_side = 0
@ -102,7 +92,6 @@ texture_region_size = Vector2i(32, 32)
9:0/0/terrain = 0
9:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
9:0/0/physics_layer_0/angular_velocity = 0.0
9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
9:0/0/terrains_peering_bit/right_side = 0
9:0/0/terrains_peering_bit/bottom_right_corner = 0
9:0/0/terrains_peering_bit/bottom_side = 0
@ -135,7 +124,6 @@ texture_region_size = Vector2i(32, 32)
0:1/0/terrain = 0
0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
0:1/0/physics_layer_0/angular_velocity = 0.0
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
0:1/0/terrains_peering_bit/bottom_side = 0
0:1/0/terrains_peering_bit/top_side = 0
1:1/0 = 0
@ -143,7 +131,6 @@ texture_region_size = Vector2i(32, 32)
1:1/0/terrain = 0
1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
1:1/0/physics_layer_0/angular_velocity = 0.0
1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
1:1/0/terrains_peering_bit/right_side = 0
1:1/0/terrains_peering_bit/bottom_side = 0
1:1/0/terrains_peering_bit/top_side = 0
@ -152,7 +139,6 @@ texture_region_size = Vector2i(32, 32)
2:1/0/terrain = 0
2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
2:1/0/physics_layer_0/angular_velocity = 0.0
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
2:1/0/terrains_peering_bit/right_side = 0
2:1/0/terrains_peering_bit/bottom_side = 0
2:1/0/terrains_peering_bit/left_side = 0
@ -162,7 +148,6 @@ texture_region_size = Vector2i(32, 32)
3:1/0/terrain = 0
3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
3:1/0/physics_layer_0/angular_velocity = 0.0
3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
3:1/0/terrains_peering_bit/bottom_side = 0
3:1/0/terrains_peering_bit/left_side = 0
3:1/0/terrains_peering_bit/top_side = 0
@ -171,7 +156,6 @@ texture_region_size = Vector2i(32, 32)
4:1/0/terrain = 0
4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
4:1/0/physics_layer_0/angular_velocity = 0.0
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -3, 16, -16, -8.5)
4:1/0/terrains_peering_bit/right_side = 0
4:1/0/terrains_peering_bit/bottom_right_corner = 0
4:1/0/terrains_peering_bit/bottom_side = 0
@ -181,7 +165,6 @@ texture_region_size = Vector2i(32, 32)
5:1/0/terrain = 0
5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
5:1/0/physics_layer_0/angular_velocity = 0.0
5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, 16, 16, 16, -16, -3, -16, -16, -5)
5:1/0/terrains_peering_bit/right_side = 0
5:1/0/terrains_peering_bit/bottom_right_corner = 0
5:1/0/terrains_peering_bit/bottom_side = 0
@ -194,7 +177,6 @@ texture_region_size = Vector2i(32, 32)
6:1/0/terrain = 0
6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
6:1/0/physics_layer_0/angular_velocity = 0.0
6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, -16, 16, -16, -16, 4, -16, 16, -5)
6:1/0/terrains_peering_bit/right_side = 0
6:1/0/terrains_peering_bit/bottom_right_corner = 0
6:1/0/terrains_peering_bit/bottom_side = 0
@ -207,7 +189,6 @@ texture_region_size = Vector2i(32, 32)
7:1/0/terrain = 0
7:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
7:1/0/physics_layer_0/angular_velocity = 0.0
7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 4, 16, 16, -2.5)
7:1/0/terrains_peering_bit/bottom_side = 0
7:1/0/terrains_peering_bit/bottom_left_corner = 0
7:1/0/terrains_peering_bit/left_side = 0
@ -228,7 +209,6 @@ texture_region_size = Vector2i(32, 32)
9:1/0/terrain = 0
9:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
9:1/0/physics_layer_0/angular_velocity = 0.0
9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -5, -3, -16, 16, -16, 16, -1, 4, 16, -16, 16)
9:1/0/terrains_peering_bit/right_side = 0
9:1/0/terrains_peering_bit/bottom_side = 0
9:1/0/terrains_peering_bit/bottom_left_corner = 0
@ -240,7 +220,6 @@ texture_region_size = Vector2i(32, 32)
11:1/0/terrain = 0
11:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
11:1/0/physics_layer_0/angular_velocity = 0.0
11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 4, 16, 4, -1, 16, -1)
11:1/0/terrains_peering_bit/right_side = 0
11:1/0/terrains_peering_bit/bottom_side = 0
11:1/0/terrains_peering_bit/bottom_left_corner = 0
@ -253,14 +232,12 @@ texture_region_size = Vector2i(32, 32)
0:2/0/probability = 2.0
0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
0:2/0/physics_layer_0/angular_velocity = 0.0
0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1, -16, -1)
0:2/0/terrains_peering_bit/top_side = 0
1:2/0 = 0
1:2/0/terrain_set = 0
1:2/0/terrain = 0
1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
1:2/0/physics_layer_0/angular_velocity = 0.0
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1, -16, -1)
1:2/0/terrains_peering_bit/right_side = 0
1:2/0/terrains_peering_bit/top_side = 0
2:2/0 = 0
@ -268,7 +245,6 @@ texture_region_size = Vector2i(32, 32)
2:2/0/terrain = 0
2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
2:2/0/physics_layer_0/angular_velocity = 0.0
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1, -16, -1)
2:2/0/terrains_peering_bit/right_side = 0
2:2/0/terrains_peering_bit/left_side = 0
2:2/0/terrains_peering_bit/top_side = 0
@ -277,7 +253,6 @@ texture_region_size = Vector2i(32, 32)
3:2/0/terrain = 0
3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
3:2/0/physics_layer_0/angular_velocity = 0.0
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1, -16, -1)
3:2/0/terrains_peering_bit/left_side = 0
3:2/0/terrains_peering_bit/top_side = 0
4:2/0 = 0
@ -285,7 +260,6 @@ texture_region_size = Vector2i(32, 32)
4:2/0/terrain = 0
4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
4:2/0/physics_layer_0/angular_velocity = 0.0
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, 16, 16, 16, -16, -3, -16, -16, 2.5)
4:2/0/terrains_peering_bit/right_side = 0
4:2/0/terrains_peering_bit/bottom_side = 0
4:2/0/terrains_peering_bit/top_side = 0
@ -295,7 +269,6 @@ texture_region_size = Vector2i(32, 32)
5:2/0/terrain = 0
5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
5:2/0/physics_layer_0/angular_velocity = 0.0
5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -3, 16, -16, -1)
5:2/0/terrains_peering_bit/right_side = 0
5:2/0/terrains_peering_bit/bottom_right_corner = 0
5:2/0/terrains_peering_bit/bottom_side = 0
@ -308,7 +281,6 @@ texture_region_size = Vector2i(32, 32)
6:2/0/terrain = 0
6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
6:2/0/physics_layer_0/angular_velocity = 0.0
6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 4, 16, 16, -1)
6:2/0/terrains_peering_bit/right_side = 0
6:2/0/terrains_peering_bit/bottom_side = 0
6:2/0/terrains_peering_bit/bottom_left_corner = 0
@ -321,7 +293,6 @@ texture_region_size = Vector2i(32, 32)
7:2/0/terrain = 0
7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
7:2/0/physics_layer_0/angular_velocity = 0.0
7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, -16, 16, -16, -16, 4, -16, 16, 2.5)
7:2/0/terrains_peering_bit/bottom_side = 0
7:2/0/terrains_peering_bit/left_side = 0
7:2/0/terrains_peering_bit/top_left_corner = 0
@ -331,7 +302,6 @@ texture_region_size = Vector2i(32, 32)
8:2/0/terrain = 0
8:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
8:2/0/physics_layer_0/angular_velocity = 0.0
8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -3, 16, -3, -1, -16, -1)
8:2/0/terrains_peering_bit/right_side = 0
8:2/0/terrains_peering_bit/bottom_right_corner = 0
8:2/0/terrains_peering_bit/bottom_side = 0
@ -358,7 +328,6 @@ texture_region_size = Vector2i(32, 32)
10:2/0/terrain = 0
10:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
10:2/0/physics_layer_0/angular_velocity = 0.0
10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -5, 4, -16, -16, -16, -16, -1, -3, 16, 16, 16)
10:2/0/terrains_peering_bit/right_side = 0
10:2/0/terrains_peering_bit/bottom_right_corner = 0
10:2/0/terrains_peering_bit/bottom_side = 0
@ -382,21 +351,18 @@ texture_region_size = Vector2i(32, 32)
0:3/0/probability = 2.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/physics_layer_0/polygon_0/points = PackedVector2Array(12, -16, -12, -16, -12, -1, 12, -1)
1:3/0 = 0
1:3/0/terrain_set = 0
1:3/0/terrain = 0
1:3/0/probability = 2.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/physics_layer_0/polygon_0/points = PackedVector2Array(-4, -16, 16, -16, 16, -1, -4, -1)
1:3/0/terrains_peering_bit/right_side = 0
2:3/0 = 0
2:3/0/terrain_set = 0
2:3/0/terrain = 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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1, -16, -1)
2:3/0/terrains_peering_bit/right_side = 0
2:3/0/terrains_peering_bit/left_side = 0
3:3/0 = 0
@ -405,14 +371,12 @@ texture_region_size = Vector2i(32, 32)
3:3/0/probability = 2.0
3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
3:3/0/physics_layer_0/angular_velocity = 0.0
3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(4, -16, -16, -16, -16, -1, 4, -1)
3:3/0/terrains_peering_bit/left_side = 0
4:3/0 = 0
4:3/0/terrain_set = 0
4:3/0/terrain = 0
4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
4:3/0/physics_layer_0/angular_velocity = 0.0
4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1, 4, 16, -16, 16)
4:3/0/terrains_peering_bit/right_side = 0
4:3/0/terrains_peering_bit/bottom_side = 0
4:3/0/terrains_peering_bit/bottom_left_corner = 0
@ -423,7 +387,6 @@ texture_region_size = Vector2i(32, 32)
5:3/0/terrain = 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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1, -16, -1)
5:3/0/terrains_peering_bit/right_side = 0
5:3/0/terrains_peering_bit/left_side = 0
5:3/0/terrains_peering_bit/top_side = 0
@ -433,7 +396,6 @@ texture_region_size = Vector2i(32, 32)
6:3/0/terrain = 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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1, -16, -1)
6:3/0/terrains_peering_bit/right_side = 0
6:3/0/terrains_peering_bit/left_side = 0
6:3/0/terrains_peering_bit/top_left_corner = 0
@ -443,7 +405,6 @@ texture_region_size = Vector2i(32, 32)
7:3/0/terrain = 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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -3, 16, -4, 7, -16, -1)
7:3/0/terrains_peering_bit/right_side = 0
7:3/0/terrains_peering_bit/bottom_right_corner = 0
7:3/0/terrains_peering_bit/bottom_side = 0
@ -455,7 +416,7 @@ texture_region_size = Vector2i(32, 32)
8:3/0/probability = 2.0
8:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
8:3/0/physics_layer_0/angular_velocity = 0.0
8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -16, 16, -16, 16, -1, -3, -1)
8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, -1, -4, -1, -4, -16)
8:3/0/terrains_peering_bit/right_side = 0
8:3/0/terrains_peering_bit/top_side = 0
8:3/0/terrains_peering_bit/top_right_corner = 0
@ -470,13 +431,11 @@ texture_region_size = Vector2i(32, 32)
9:3/0/terrains_peering_bit/top_left_corner = 0
9:3/0/terrains_peering_bit/top_side = 0
9:3/0/terrains_peering_bit/top_right_corner = 0
9:3/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_dkm5b")
10:3/0 = 0
10:3/0/terrain_set = 0
10:3/0/terrain = 0
10:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
10:3/0/physics_layer_0/angular_velocity = 0.0
10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
10:3/0/terrains_peering_bit/right_side = 0
10:3/0/terrains_peering_bit/bottom_side = 0
10:3/0/terrains_peering_bit/left_side = 0
@ -493,21 +452,12 @@ texture_region_size = Vector2i(32, 32)
11:3/0/terrains_peering_bit/left_side = 0
11:3/0/terrains_peering_bit/top_left_corner = 0
11:3/0/terrains_peering_bit/top_side = 0
10:1/next_alternative_id = 11
10:1/0 = 0
10:1/0/terrain_set = 0
10:1/0/terrain = 1
10:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
10:1/0/physics_layer_0/angular_velocity = 0.0
10:1/0/terrains_peering_bit/right_side = 1
10:1/0/terrains_peering_bit/bottom_right_corner = 1
10:1/0/terrains_peering_bit/bottom_side = 1
10:1/0/terrains_peering_bit/bottom_left_corner = 1
10:1/0/terrains_peering_bit/left_side = 1
10:1/0/terrains_peering_bit/top_left_corner = 1
10:1/0/terrains_peering_bit/top_side = 1
10:1/0/terrains_peering_bit/top_right_corner = 1
10:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_l6uwm")
10:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_fhapu")
[resource]
tile_size = Vector2i(32, 32)

View file

@ -1,4 +1,4 @@
[gd_resource type="Theme" load_steps=47 format=3 uid="uid://b0b3fxesfrpb7"]
[gd_resource type="Theme" load_steps=47 format=3 uid="uid://babphdknr2kkd"]
[ext_resource type="StyleBox" uid="uid://bmeh7kt6t886w" path="res://Assets/UI/Button/disabled.tres" id="1_n3up8"]
[ext_resource type="StyleBox" uid="uid://gxy851bdkmb0" path="res://Assets/UI/Button/focus.tres" id="2_ukct7"]
@ -41,7 +41,7 @@
[ext_resource type="StyleBox" uid="uid://0jfr1uwuog0s" path="res://Assets/UI/Slider/v/background.tres" id="39_dl1e4"]
[ext_resource type="FontFile" uid="uid://dqdeftjkwxe64" path="res://Assets/Fonts/Dogica/dogicapixel.ttf" id="40_bmcvq"]
[sub_resource type="Image" id="Image_r3hqn"]
[sub_resource type="Image" id="Image_fjlcl"]
data = {
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 64, 255, 255, 255, 64, 255, 255, 255, 0),
"format": "RGBA8",
@ -51,7 +51,7 @@ data = {
}
[sub_resource type="ImageTexture" id="ImageTexture_g5bup"]
image = SubResource("Image_r3hqn")
image = SubResource("Image_fjlcl")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_sj7h5"]

View file

@ -1,29 +1,28 @@
[gd_scene load_steps=6 format=3 uid="uid://btxarutbkchmb"]
[gd_scene load_steps=5 format=3 uid="uid://cbfcolm6mjolp"]
[ext_resource type="Script" path="res://Scripts/UI/SettingsMenu.gd" id="1_2rgd2"]
[ext_resource type="Script" path="res://Scripts/UI/Remaping/RemapController.gd" id="2_2f8ap"]
[ext_resource type="Script" path="res://Scripts/UI/Remaping/RemapButton.gd" id="2_4asaa"]
[ext_resource type="Theme" uid="uid://b0b3fxesfrpb7" path="res://Assets/UI/Theme.tres" id="3_ajuuh"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_02uod"]
bg_color = Color(0.439216, 0.631373, 0.537255, 1)
[node name="SettingsMenu" type="Node" node_paths=PackedStringArray("back_button", "tab_container", "bottom_item_video", "bottom_item_audio", "bottom_item_controls", "remap_controller", "display_options_button", "vsync_toggle", "resolutions_options_button", "master_volume_slider", "music_volume_slider", "sfx_volume_slider")]
script = ExtResource("1_2rgd2")
back_button = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/MarginContainer/Back Button")
tab_container = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs")
bottom_item_video = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/ResolutionsOptions")
bottom_item_audio = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/SFXVolSlider")
bottom_item_controls = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackRemapButton")
back_button = NodePath("Panel/MarginContainer/VBoxContainer/MarginContainer/Back Button")
tab_container = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs")
bottom_item_video = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/ResolutionsOptions")
bottom_item_audio = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/SFXVolSlider")
bottom_item_controls = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackRemapButton")
remap_controller = NodePath("Remap Controller")
display_options_button = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/DisplayModeOptions")
vsync_toggle = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/VsyncButton")
resolutions_options_button = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/ResolutionsOptions")
master_volume_slider = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MasterVolumeSlider")
music_volume_slider = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MusicVolSlider")
sfx_volume_slider = NodePath("CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/SFXVolSlider")
display_options_button = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/DisplayModeOptions")
vsync_toggle = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/VsyncButton")
resolutions_options_button = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/ResolutionsOptions")
master_volume_slider = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MasterVolumeSlider")
music_volume_slider = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MusicVolSlider")
sfx_volume_slider = NodePath("Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/SFXVolSlider")
[node name="Remap Controller" type="Control" parent="." node_paths=PackedStringArray("remap_buttons_holder")]
[node name="Remap Controller" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 0
@ -32,22 +31,16 @@ offset_top = 12.0
offset_right = 12.0
offset_bottom = 12.0
script = ExtResource("2_2f8ap")
remap_buttons_holder = NodePath("../CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
process_mode = 3
[node name="Panel" type="Panel" parent="CanvasLayer"]
process_mode = 3
[node name="Panel" type="Panel" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("3_ajuuh")
theme_override_styles/panel = SubResource("StyleBoxFlat_02uod")
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/Panel"]
[node name="MarginContainer" type="MarginContainer" parent="Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@ -59,25 +52,26 @@ theme_override_constants/margin_top = 32
theme_override_constants/margin_right = 32
theme_override_constants/margin_bottom = 32
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Panel/MarginContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/MarginContainer"]
layout_mode = 2
[node name="SettingsTabs" type="TabContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer"]
[node name="SettingsTabs" type="TabContainer" parent="Panel/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
tabs_rearrange_group = 0
[node name="Video" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs"]
[node name="Video" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs"]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 4
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 4
theme_override_constants/margin_bottom = 4
[node name="ScrollView" type="ScrollContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video"]
[node name="ScrollView" type="ScrollContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView"]
[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView"]
clip_contents = true
custom_minimum_size = Vector2(0, 425)
layout_mode = 2
@ -88,45 +82,45 @@ theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer"]
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer"]
layout_mode = 2
[node name="Label" type="VBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer"]
[node name="Label" type="VBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 14
[node name="TopMargin" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="TopMargin" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Label"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_top = 8
[node name="DisplayMode" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Label/TopMargin"]
[node name="DisplayMode" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Label/TopMargin"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Display Mode"
[node name="VSync" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="VSync" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "VSync
"
[node name="Resolutions" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="Resolutions" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Resolutions
"
[node name="Spacer" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer"]
[node name="Spacer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Item" type="VBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer"]
[node name="Item" type="VBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="DisplayModeOptions" type="OptionButton" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item"]
[node name="DisplayModeOptions" type="OptionButton" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text_overrun_behavior = 1
@ -144,18 +138,18 @@ popup/item_3/id = 3
popup/item_4/text = "Exclusive Full-Screen"
popup/item_4/id = 4
[node name="VsyncButton" type="CheckButton" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item"]
[node name="VsyncButton" type="CheckButton" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Vsync"
[node name="ResolutionsOptions" type="OptionButton" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item"]
[node name="ResolutionsOptions" type="OptionButton" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
focus_neighbor_bottom = NodePath("../../../../../../../MarginContainer/Back Button")
fit_to_longest_item = false
[node name="Audio" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs"]
[node name="Audio" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs"]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 4
@ -163,10 +157,10 @@ theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 4
theme_override_constants/margin_bottom = 4
[node name="ScrollView" type="ScrollContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio"]
[node name="ScrollView" type="ScrollContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView"]
[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView"]
clip_contents = true
custom_minimum_size = Vector2(0, 425)
layout_mode = 2
@ -177,59 +171,59 @@ theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer"]
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer"]
layout_mode = 2
[node name="Label" type="VBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer"]
[node name="Label" type="VBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 14
[node name="TopMargin" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="TopMargin" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Label"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_top = 8
[node name="MasterVol" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Label/TopMargin"]
[node name="MasterVol" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Label/TopMargin"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Master Volume
"
[node name="MusicVol" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="MusicVol" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Music Volume
"
[node name="SFXVol" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="SFXVol" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "SFX Volume"
[node name="Spacer" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer"]
[node name="Spacer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer"]
custom_minimum_size = Vector2(64, 0)
layout_mode = 2
[node name="Item" type="VBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer"]
[node name="Item" type="VBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="MasterVolumeSlider" type="HSlider" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item"]
[node name="MasterVolumeSlider" type="HSlider" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
min_value = -72.0
max_value = 0.0
[node name="MusicVolSlider" type="HSlider" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item"]
[node name="MusicVolSlider" type="HSlider" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
min_value = -72.0
max_value = 0.0
[node name="SFXVolSlider" type="HSlider" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item"]
[node name="SFXVolSlider" type="HSlider" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
@ -237,18 +231,17 @@ focus_neighbor_bottom = NodePath("../../../../../../../MarginContainer/Back Butt
min_value = -72.0
max_value = 0.0
[node name="Controls" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs"]
visible = false
[node name="Controls" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs"]
layout_mode = 2
theme_override_constants/margin_left = 4
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 4
theme_override_constants/margin_bottom = 4
[node name="ScrollView" type="ScrollContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls"]
[node name="ScrollView" type="ScrollContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView"]
[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@ -257,276 +250,255 @@ theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer"]
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer"]
layout_mode = 2
[node name="Label" type="VBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer"]
[node name="Label" type="VBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 14
[node name="TopMargin" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="TopMargin" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_top = 8
[node name="MoveUp" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label/TopMargin"]
[node name="MoveUp" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label/TopMargin"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Move Up"
[node name="MoveLeft" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="MoveLeft" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Move Left"
[node name="MoveDown" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="MoveDown" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Move Down"
[node name="MoveRight" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="MoveRight" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Move Right"
[node name="Attack" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="Attack" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Attack
"
[node name="Spacer" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="Spacer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 32)
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveUpController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="MoveUpController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Move Up Controller
"
[node name="MoveDownController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="MoveDownController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Move Down Controller"
[node name="MoveLeftController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="MoveLeftController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Move Left Controller"
[node name="MoveRightController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="MoveRightController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Move Right Controller"
[node name="AimUpController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="AimUpController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Aim Up Controller
"
[node name="AimDownController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="AimDownController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Aim Down Controller"
[node name="AimLeftController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="AimLeftController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Aim Left Controller"
[node name="AimRightController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="AimRightController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Aim Right Controller"
[node name="AttackController" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
[node name="AttackController" type="Label" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Attack Controller
"
[node name="Spacer2" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 32)
[node name="Spacer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="ResetLabel" type="Label" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Label"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Reset to Defaults"
[node name="Spacer" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Item" type="VBoxContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer"]
[node name="Item" type="VBoxContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="MoveUpRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="MoveUpRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
script = ExtResource("2_4asaa")
input_action_name = "move_up"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="MoveLeftRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="MoveLeftRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
script = ExtResource("2_4asaa")
input_action_name = "move_left"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="MoveDownRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="MoveDownRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
script = ExtResource("2_4asaa")
input_action_name = "move_down"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="MoveRightRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="MoveRightRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
focus_neighbor_bottom = NodePath("../../../../../../../MarginContainer/Back Button")
script = ExtResource("2_4asaa")
input_action_name = "move_right"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="AttackRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="AttackRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
focus_neighbor_bottom = NodePath("../../../../../../../MarginContainer/Back Button")
script = ExtResource("2_4asaa")
input_action_name = "attack"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="Spacers" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item"]
[node name="Spacers" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(0, 32)
layout_mode = 2
size_flags_horizontal = 3
[node name="MoveUpControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="MoveUpControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
script = ExtResource("2_4asaa")
input_action_name = "move_up_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="MoveDownControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="MoveDownControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
script = ExtResource("2_4asaa")
input_action_name = "move_down_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="MoveLeftControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="MoveLeftControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
script = ExtResource("2_4asaa")
input_action_name = "move_left_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="MoveRightControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="MoveRightControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
focus_neighbor_bottom = NodePath("../../../../../../../MarginContainer/Back Button")
script = ExtResource("2_4asaa")
input_action_name = "move_right_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="AimUpControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="AimUpControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
script = ExtResource("2_4asaa")
input_action_name = "aim_up_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="AimDownControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="AimDownControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
script = ExtResource("2_4asaa")
input_action_name = "aim_down_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="AimLeftControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="AimLeftControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
script = ExtResource("2_4asaa")
input_action_name = "aim_left_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="AimRightControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="AimRightControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
focus_neighbor_bottom = NodePath("../../../../../../../MarginContainer/Back Button")
script = ExtResource("2_4asaa")
input_action_name = "aim_right_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="AttackControllerRemapButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
[node name="AttackControllerRemapButton" type="Button" parent="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item" node_paths=PackedStringArray("remap_controller")]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
size_flags_horizontal = 3
focus_neighbor_bottom = NodePath("../../../../../../../MarginContainer/Back Button")
script = ExtResource("2_4asaa")
input_action_name = "attack_controller"
remap_controller = NodePath("../../../../../../../../../../../Remap Controller")
remap_controller = NodePath("../../../../../../../../../../Remap Controller")
[node name="Spacers2" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(0, 32)
layout_mode = 2
size_flags_horizontal = 3
[node name="ResetButton" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
text = "Reset"
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer"]
[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_top = 32
[node name="Back Button" type="Button" parent="CanvasLayer/Panel/MarginContainer/VBoxContainer/MarginContainer"]
[node name="Back Button" type="Button" parent="Panel/MarginContainer/VBoxContainer/MarginContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 64
text = "Back"
[connection signal="item_selected" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/DisplayModeOptions" to="." method="_on_display_mode_options_item_selected"]
[connection signal="toggled" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/VsyncButton" to="." method="_on_vsync_button_toggled"]
[connection signal="item_selected" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/ResolutionsOptions" to="." method="_on_resolutions_options_item_selected"]
[connection signal="drag_ended" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MasterVolumeSlider" to="." method="_on_master_volume_slider_drag_ended"]
[connection signal="value_changed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MasterVolumeSlider" to="." method="_on_master_volume_slider_value_changed"]
[connection signal="drag_ended" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MusicVolSlider" to="." method="_on_music_vol_slider_drag_ended"]
[connection signal="value_changed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MusicVolSlider" to="." method="_on_music_vol_slider_value_changed"]
[connection signal="drag_ended" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/SFXVolSlider" to="." method="_on_sfx_vol_slider_drag_ended"]
[connection signal="value_changed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/SFXVolSlider" to="." method="_on_sfx_vol_slider_value_changed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveUpRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveUpRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveLeftRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveLeftRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveDownRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveDownRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveRightRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveRightRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveUpControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveUpControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveDownControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveDownControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveLeftControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveLeftControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveRightControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveRightControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimUpControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimUpControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimDownControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimDownControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimLeftControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimLeftControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimRightControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimRightControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackControllerRemapButton" to="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/ResetButton" to="Remap Controller" method="_on_reset_button_pressed"]
[connection signal="pressed" from="CanvasLayer/Panel/MarginContainer/VBoxContainer/MarginContainer/Back Button" to="." method="_on_back_pressed"]
[connection signal="item_selected" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/DisplayModeOptions" to="." method="_on_display_mode_options_item_selected"]
[connection signal="toggled" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/VsyncButton" to="." method="_on_vsync_button_toggled"]
[connection signal="item_selected" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Video/ScrollView/MarginContainer/HBoxContainer/Item/ResolutionsOptions" to="." method="_on_resolutions_options_item_selected"]
[connection signal="drag_ended" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MasterVolumeSlider" to="." method="_on_master_volume_slider_drag_ended"]
[connection signal="value_changed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MasterVolumeSlider" to="." method="_on_master_volume_slider_value_changed"]
[connection signal="drag_ended" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MusicVolSlider" to="." method="_on_music_vol_slider_drag_ended"]
[connection signal="value_changed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/MusicVolSlider" to="." method="_on_music_vol_slider_value_changed"]
[connection signal="drag_ended" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/SFXVolSlider" to="." method="_on_sfx_vol_slider_drag_ended"]
[connection signal="value_changed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Audio/ScrollView/MarginContainer/HBoxContainer/Item/SFXVolSlider" to="." method="_on_sfx_vol_slider_value_changed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveUpRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveUpRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveLeftRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveLeftRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveDownRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveDownRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveRightRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveRightRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveUpControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveUpControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveDownControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveDownControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveLeftControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveLeftControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveRightControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/MoveRightControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimUpControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimUpControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimDownControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimDownControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimLeftControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimLeftControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimRightControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AimRightControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackControllerRemapButton" to="Panel/MarginContainer/VBoxContainer/SettingsTabs/Controls/ScrollView/MarginContainer/HBoxContainer/Item/AttackControllerRemapButton" method="_on_pressed"]
[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/MarginContainer/Back Button" to="." method="_on_back_pressed"]

View file

@ -1,8 +1,13 @@
[gd_scene load_steps=11 format=3 uid="uid://cpl4tllohhyel"]
[gd_scene load_steps=12 format=3 uid="uid://cpl4tllohhyel"]
[ext_resource type="Script" path="res://Scripts/EntitySystem/Bunny.gd" id="1_1kj2b"]
[ext_resource type="Texture2D" uid="uid://df2fluk0dlqar" path="res://Assets/Sprites/Bunny/bad_bunny_spritesheet.png" id="2_v8p70"]
[sub_resource type="CircleShape2D" id="CircleShape2D_sedmr"]
[sub_resource type="CircleShape2D" id="CircleShape2D_itvjj"]
radius = 14.0
[sub_resource type="Animation" id="Animation_6br4g"]
resource_name = "Idle"
tracks/0/type = "value"
@ -111,11 +116,9 @@ _data = {
"RESET": SubResource("Animation_mp212")
}
[sub_resource type="CircleShape2D" id="CircleShape2D_nil6g"]
radius = 11.0
[node name="Bunny" type="CharacterBody2D" node_paths=PackedStringArray("animation_player", "agent")]
collision_layer = 4
collision_mask = 15
script = ExtResource("1_1kj2b")
animation_player = NodePath("BunnyAnimator")
agent = NodePath("NavigationAgent")
@ -126,13 +129,23 @@ texture = ExtResource("2_v8p70")
hframes = 5
vframes = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_sedmr")
[node name="NavigationAgent" type="NavigationAgent2D" parent="."]
path_metadata_flags = 0
[node name="Area2D" type="Area2D" parent="."]
collision_layer = 64
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_itvjj")
[node name="BunnyAnimator" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_uuf00")
}
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_nil6g")
[connection signal="body_entered" from="Area2D" to="." method="_on_collision"]
[connection signal="body_exited" from="Area2D" to="." method="_of_collision"]

View file

@ -1,79 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://daolbixcph5r6"]
[ext_resource type="Script" path="res://Scripts/end_screen.gd" id="1_qyrmd"]
[ext_resource type="Theme" uid="uid://b0b3fxesfrpb7" path="res://Assets/UI/Theme.tres" id="3_2gqe3"]
[node name="EndScreen" type="Control" node_paths=PackedStringArray("default_focus", "won_label", "lost_label")]
process_mode = 3
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_qyrmd")
default_focus = NodePath("CanvasLayer/VBoxContainer/CenterContainer/RetryButton")
won_label = NodePath("CanvasLayer/VBoxContainer/CenterContainer3/Label")
lost_label = NodePath("CanvasLayer/VBoxContainer/CenterContainer3/Label2")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
process_mode = 3
[node name="ColorRect" type="ColorRect" parent="CanvasLayer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.576471, 0.831373, 0.709804, 0.392157)
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer"]
custom_minimum_size = Vector2(500, 600)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("3_2gqe3")
theme_override_constants/separation = 10
alignment = 1
[node name="CenterContainer3" type="CenterContainer" parent="CanvasLayer/VBoxContainer"]
custom_minimum_size = Vector2(0, 200)
layout_mode = 2
[node name="Label" type="Label" parent="CanvasLayer/VBoxContainer/CenterContainer3"]
layout_mode = 2
text = "You won against 500 bunnies!"
[node name="Label2" type="Label" parent="CanvasLayer/VBoxContainer/CenterContainer3"]
layout_mode = 2
text = "You died!"
[node name="CenterContainer" type="CenterContainer" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
[node name="RetryButton" type="Button" parent="CanvasLayer/VBoxContainer/CenterContainer"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
text = "Retry"
[node name="CenterContainer2" type="CenterContainer" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
[node name="MainMenuButton" type="Button" parent="CanvasLayer/VBoxContainer/CenterContainer2"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
text = "Main Menu"
[node name="CenterContainer4" type="CenterContainer" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
[node name="QuitButton" type="Button" parent="CanvasLayer/VBoxContainer/CenterContainer4"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
text = "Quit"
[connection signal="pressed" from="CanvasLayer/VBoxContainer/CenterContainer/RetryButton" to="." method="_on_retry_button_pressed"]
[connection signal="pressed" from="CanvasLayer/VBoxContainer/CenterContainer2/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
[connection signal="pressed" from="CanvasLayer/VBoxContainer/CenterContainer4/QuitButton" to="." method="_on_quit_button_pressed"]

View file

@ -1,75 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://dtiav1qdm1p34"]
[ext_resource type="Script" path="res://Scripts/UI/PauseMenu.gd" id="1_cbyrt"]
[ext_resource type="PackedScene" uid="uid://btxarutbkchmb" path="res://Prefabs/Settings Menu.tscn" id="3_2e10l"]
[ext_resource type="Theme" uid="uid://b0b3fxesfrpb7" path="res://Assets/UI/Theme.tres" id="3_vxkyu"]
[node name="PauseMenu" type="Control" node_paths=PackedStringArray("default_focus")]
process_mode = 3
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_cbyrt")
settings_scene = ExtResource("3_2e10l")
default_focus = NodePath("CanvasLayer/VBoxContainer/CenterContainer/ResumeButton")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="ColorRect" type="ColorRect" parent="CanvasLayer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.576471, 0.831373, 0.709804, 0.392157)
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer"]
custom_minimum_size = Vector2(500, 600)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("3_vxkyu")
theme_override_constants/separation = 10
alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
[node name="ResumeButton" type="Button" parent="CanvasLayer/VBoxContainer/CenterContainer"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
text = "Resume"
[node name="CenterContainer2" type="CenterContainer" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
[node name="MainMenuButton" type="Button" parent="CanvasLayer/VBoxContainer/CenterContainer2"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
text = "Main Menu"
[node name="CenterContainer3" type="CenterContainer" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
[node name="SettingsButton" type="Button" parent="CanvasLayer/VBoxContainer/CenterContainer3"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
text = "Settings Menu"
[node name="CenterContainer4" type="CenterContainer" parent="CanvasLayer/VBoxContainer"]
layout_mode = 2
[node name="QuitButton" type="Button" parent="CanvasLayer/VBoxContainer/CenterContainer4"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
text = "Quit"
[connection signal="pressed" from="CanvasLayer/VBoxContainer/CenterContainer/ResumeButton" to="." method="_on_resume_button_pressed"]
[connection signal="pressed" from="CanvasLayer/VBoxContainer/CenterContainer2/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
[connection signal="pressed" from="CanvasLayer/VBoxContainer/CenterContainer3/SettingsButton" to="." method="_on_settings_button_pressed"]
[connection signal="pressed" from="CanvasLayer/VBoxContainer/CenterContainer4/QuitButton" to="." method="_on_quit_button_pressed"]

View file

@ -1,10 +1,7 @@
[gd_scene load_steps=7 format=3 uid="uid://csxh42o8twxwn"]
[gd_scene load_steps=4 format=3 uid="uid://csxh42o8twxwn"]
[ext_resource type="Script" path="res://Scripts/WeaponSystem/Projectile.gd" id="1_os652"]
[ext_resource type="Texture2D" uid="uid://dlxjdb0tchrps" path="res://Assets/Sprites/crucefix.png" id="2_ibs3t"]
[ext_resource type="AudioStream" uid="uid://dornq2kwau6bg" path="res://Assets/SFX/Jesus/Projectile/Throw Variation 1.wav" id="4_11fc8"]
[ext_resource type="AudioStream" uid="uid://b2pd7efb2r7g5" path="res://Assets/SFX/Jesus/Projectile/Throw Variation 2.wav" id="5_njike"]
[ext_resource type="AudioStream" uid="uid://cqxnclejfbmvb" path="res://Assets/SFX/Jesus/Projectile/Throw Variation 3.wav" id="6_ky3xa"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ki5cp"]
radius = 8.57143
@ -14,7 +11,6 @@ height = 22.8571
collision_layer = 8
collision_mask = 5
script = ExtResource("1_os652")
audio_pool = [NodePath("Audio Sources/Audio1"), NodePath("Audio Sources/Audio2"), NodePath("Audio Sources/Audio3")]
map_collision_layer = 1
bunny_collision_layer = 4
@ -24,19 +20,4 @@ texture = ExtResource("2_ibs3t")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_ki5cp")
[node name="Audio Sources" type="Node" parent="."]
[node name="Audio1" type="AudioStreamPlayer" parent="Audio Sources"]
stream = ExtResource("4_11fc8")
bus = &"SFX"
[node name="Audio2" type="AudioStreamPlayer" parent="Audio Sources"]
stream = ExtResource("5_njike")
bus = &"SFX"
[node name="Audio3" type="AudioStreamPlayer" parent="Audio Sources"]
stream = ExtResource("6_ky3xa")
bus = &"SFX"
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
[connection signal="body_entered" from="." to="." method="_on_collision"]

14
Scenes/Cave.tscn Normal file
View file

@ -0,0 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://chfp8mm3vwh2e"]
[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_a2htf"]
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_qvwn8"]
[node name="Node2D" type="Node2D"]
[node name="TileMap" type="TileMap" parent="."]
tile_set = ExtResource("1_a2htf")
cell_quadrant_size = 8
collision_visibility_mode = 1
format = 2
script = ExtResource("2_qvwn8")
height = 33

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,286 +0,0 @@
[gd_scene load_steps=16 format=3 uid="uid://bnutmwl2vuvqe"]
[ext_resource type="Script" path="res://Scripts/UI/MainMenuManager.gd" id="1_35kaq"]
[ext_resource type="PackedScene" uid="uid://by4hwxoiky1k4" path="res://Scenes/GameHealthAttack.tscn" id="2_ab00d"]
[ext_resource type="PackedScene" uid="uid://btxarutbkchmb" path="res://Prefabs/Settings Menu.tscn" id="3_q44re"]
[ext_resource type="Theme" uid="uid://b0b3fxesfrpb7" path="res://Assets/UI/Theme.tres" id="4_bajby"]
[ext_resource type="Texture2D" uid="uid://tjxkew3m4v8m" path="res://Assets/Sprites/UI/Shadow.png" id="5_btlv0"]
[ext_resource type="Texture2D" uid="uid://ojlfqxj5bilo" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="6_sfeq6"]
[ext_resource type="Texture2D" uid="uid://dlr823rtwhtq2" path="res://Assets/Sprites/EasterEgg.png" id="7_hhotb"]
[ext_resource type="Texture2D" uid="uid://c54k7fn4fu42s" path="res://Assets/Sprites/Bunny/good_bunny_spritesheet.png" id="8_kscix"]
[ext_resource type="AudioStream" uid="uid://c6nf5s6xy2uii" path="res://Assets/Music/omw-to-beat-the-big-bad.wav" id="9_gyelf"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5uvie"]
bg_color = Color(0.439216, 0.631373, 0.537255, 1)
[sub_resource type="Animation" id="Animation_iq7o3"]
resource_name = "Walk"
length = 0.8
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xufdy"]
_data = {
"Autostart": SubResource("Animation_iq7o3")
}
[sub_resource type="Animation" id="Animation_53kbk"]
resource_name = "Autostart"
length = 0.5
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_5tgwk"]
_data = {
"Autostart": SubResource("Animation_53kbk")
}
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h5db4"]
bg_color = Color(0, 0, 0, 0.313726)
[node name="MainMenu" type="Control" node_paths=PackedStringArray("default_focus", "music_player")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 6
size_flags_vertical = 3
script = ExtResource("1_35kaq")
game_scene = ExtResource("2_ab00d")
settings_scene = ExtResource("3_q44re")
default_focus = NodePath("VBoxContainer/MarginBox2/ButtonsVbox/PlayButton")
autostart_animations = Array[NodePath]([NodePath("Decorations/Left Decor/Jesus/AnimationPlayer"), NodePath("Decorations/Right Decor/GoodBunny/AnimationPlayer")])
music_player = NodePath("MusicPlayer")
[node name="Panel" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("4_bajby")
theme_override_styles/panel = SubResource("StyleBoxFlat_5uvie")
[node name="Decorations" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Left Decor" type="CenterContainer" parent="Decorations"]
custom_minimum_size = Vector2(576, 0)
layout_mode = 1
anchors_preset = 9
anchor_bottom = 1.0
grow_vertical = 2
[node name="Shadow" type="Sprite2D" parent="Decorations/Left Decor"]
position = Vector2(272, 686)
scale = Vector2(10, 10)
texture = ExtResource("5_btlv0")
[node name="Jesus" type="Sprite2D" parent="Decorations/Left Decor"]
position = Vector2(279, 408)
scale = Vector2(10, 10)
texture = ExtResource("6_sfeq6")
hframes = 8
vframes = 4
[node name="AnimationPlayer" type="AnimationPlayer" parent="Decorations/Left Decor/Jesus"]
libraries = {
"": SubResource("AnimationLibrary_xufdy")
}
[node name="EasterEgg" type="Sprite2D" parent="Decorations/Left Decor"]
position = Vector2(142, 555)
scale = Vector2(10, 10)
texture = ExtResource("7_hhotb")
hframes = 6
[node name="EasterEgg2" type="Sprite2D" parent="Decorations/Left Decor"]
position = Vector2(450, 572)
rotation = 0.633555
scale = Vector2(10, 10)
texture = ExtResource("7_hhotb")
hframes = 6
frame = 4
[node name="Right Decor" type="CenterContainer" parent="Decorations"]
custom_minimum_size = Vector2(576, 0)
layout_mode = 1
anchors_preset = 11
anchor_left = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 0
grow_vertical = 2
[node name="Shadow" type="Sprite2D" parent="Decorations/Right Decor"]
position = Vector2(300, 681)
scale = Vector2(10, 10)
texture = ExtResource("5_btlv0")
[node name="EasterEgg" type="Sprite2D" parent="Decorations/Right Decor"]
position = Vector2(416, 537)
rotation = 0.289725
scale = Vector2(10, 10)
texture = ExtResource("7_hhotb")
hframes = 6
frame = 2
[node name="GoodBunny" type="Sprite2D" parent="Decorations/Right Decor"]
position = Vector2(235, 579)
scale = Vector2(10, 10)
texture = ExtResource("8_kscix")
hframes = 5
vframes = 4
[node name="AnimationPlayer" type="AnimationPlayer" parent="Decorations/Right Decor/GoodBunny"]
libraries = {
"": SubResource("AnimationLibrary_5tgwk")
}
[node name="Panel" type="Panel" parent="Decorations"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_h5db4")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 0
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 32
theme_override_constants/margin_top = 32
theme_override_constants/margin_right = 32
theme_override_constants/margin_bottom = 32
[node name="Label" type="Label" parent="VBoxContainer/MarginContainer"]
layout_mode = 2
size_flags_horizontal = 5
theme_override_font_sizes/font_size = 96
text = "Happy Easter Game Thing"
horizontal_alignment = 1
autowrap_mode = 2
[node name="MarginBox2" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/margin_left = 32
theme_override_constants/margin_top = 32
theme_override_constants/margin_right = 32
theme_override_constants/margin_bottom = 32
[node name="ButtonsVbox" type="VBoxContainer" parent="VBoxContainer/MarginBox2"]
custom_minimum_size = Vector2(0, 495)
layout_mode = 2
size_flags_horizontal = 4
theme = ExtResource("4_bajby")
theme_override_constants/separation = 8
alignment = 1
[node name="Spacer" type="MarginContainer" parent="VBoxContainer/MarginBox2/ButtonsVbox"]
layout_mode = 2
size_flags_vertical = 3
[node name="PlayButton" type="Button" parent="VBoxContainer/MarginBox2/ButtonsVbox"]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
focus_neighbor_left = NodePath("../QuitButton")
focus_neighbor_top = NodePath("../QuitButton")
focus_neighbor_right = NodePath("../SettingsButton")
focus_neighbor_bottom = NodePath("../SettingsButton")
focus_next = NodePath("../SettingsButton")
focus_previous = NodePath("../QuitButton")
theme = ExtResource("4_bajby")
theme_override_font_sizes/font_size = 64
text = "Play"
[node name="SettingsButton" type="Button" parent="VBoxContainer/MarginBox2/ButtonsVbox"]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
focus_neighbor_left = NodePath("../PlayButton")
focus_neighbor_top = NodePath("../PlayButton")
focus_neighbor_right = NodePath("../AboutButton")
focus_neighbor_bottom = NodePath("../AboutButton")
focus_next = NodePath("../AboutButton")
focus_previous = NodePath("../PlayButton")
theme = ExtResource("4_bajby")
theme_override_font_sizes/font_size = 64
text = "Settings"
[node name="AboutButton" type="Button" parent="VBoxContainer/MarginBox2/ButtonsVbox"]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
focus_neighbor_left = NodePath("../SettingsButton")
focus_neighbor_top = NodePath("../SettingsButton")
focus_neighbor_right = NodePath("../QuitButton")
focus_neighbor_bottom = NodePath("../QuitButton")
focus_next = NodePath("../QuitButton")
focus_previous = NodePath("../SettingsButton")
theme = ExtResource("4_bajby")
theme_override_font_sizes/font_size = 64
text = "About"
[node name="Spacer2" type="MarginContainer" parent="VBoxContainer/MarginBox2/ButtonsVbox"]
layout_mode = 2
size_flags_vertical = 3
[node name="QuitButton" type="Button" parent="VBoxContainer/MarginBox2/ButtonsVbox"]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
focus_neighbor_left = NodePath("../AboutButton")
focus_neighbor_top = NodePath("../AboutButton")
focus_neighbor_right = NodePath("../PlayButton")
focus_neighbor_bottom = NodePath("../PlayButton")
focus_next = NodePath("../PlayButton")
focus_previous = NodePath("../AboutButton")
theme = ExtResource("4_bajby")
theme_override_font_sizes/font_size = 64
text = "Quit"
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("9_gyelf")
bus = &"Music"
[connection signal="pressed" from="VBoxContainer/MarginBox2/ButtonsVbox/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="pressed" from="VBoxContainer/MarginBox2/ButtonsVbox/SettingsButton" to="." method="_on_settings_button_pressed"]
[connection signal="pressed" from="VBoxContainer/MarginBox2/ButtonsVbox/AboutButton" to="." method="_on_about_button_pressed"]
[connection signal="pressed" from="VBoxContainer/MarginBox2/ButtonsVbox/QuitButton" to="." method="_on_quit_button_pressed"]

View file

@ -1,9 +1,9 @@
[gd_scene load_steps=16 format=3 uid="uid://cukyb513fah1u"]
[ext_resource type="Script" path="res://Scripts/UI/MainMenuManager.gd" id="1_qepq0"]
[ext_resource type="PackedScene" uid="uid://beio3828jo4ht" path="res://Scenes/GamePauseTest.tscn" id="2_63cnr"]
[ext_resource type="PackedScene" uid="uid://btxarutbkchmb" path="res://Prefabs/Settings Menu.tscn" id="3_r3r61"]
[ext_resource type="Theme" uid="uid://b0b3fxesfrpb7" path="res://Assets/UI/Theme.tres" id="4_bmt8e"]
[ext_resource type="PackedScene" uid="uid://c4btepmue6d7p" path="res://Scenes/Game.tscn" id="2_28004"]
[ext_resource type="PackedScene" uid="uid://cbfcolm6mjolp" path="res://Prefabs/Settings Menu.tscn" id="3_r3r61"]
[ext_resource type="Theme" uid="uid://babphdknr2kkd" path="res://Assets/UI/Theme.tres" id="4_bmt8e"]
[ext_resource type="Texture2D" uid="uid://tjxkew3m4v8m" path="res://Assets/Sprites/UI/Shadow.png" id="5_wt601"]
[ext_resource type="Texture2D" uid="uid://ojlfqxj5bilo" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="7_g28i1"]
[ext_resource type="Texture2D" uid="uid://dlr823rtwhtq2" path="res://Assets/Sprites/EasterEgg.png" id="7_wokip"]
@ -70,7 +70,7 @@ grow_vertical = 2
size_flags_horizontal = 6
size_flags_vertical = 3
script = ExtResource("1_qepq0")
game_scene = ExtResource("2_63cnr")
game_scene = ExtResource("2_28004")
settings_scene = ExtResource("3_r3r61")
default_focus = NodePath("VBoxContainer/MarginBox2/ButtonsVbox/PlayButton")
autostart_animations = Array[NodePath]([NodePath("Decorations/Left Decor/Jesus/AnimationPlayer"), NodePath("Decorations/Right Decor/GoodBunny/AnimationPlayer")])

View file

@ -1,17 +1,12 @@
[gd_scene load_steps=16 format=3 uid="uid://cugui0mjc6cfe"]
[gd_scene load_steps=12 format=3 uid="uid://ccgpsim5nfxd6"]
[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_s4utw"]
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_yhpwh"]
[ext_resource type="Script" path="res://Scripts/EntitySystem/BunnyGenerator.gd" id="3_dvklj"]
[ext_resource type="PackedScene" uid="uid://cpl4tllohhyel" path="res://Prefabs/bunny.tscn" id="4_0fyd5"]
[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="5_uv7bh"]
[ext_resource type="Texture2D" uid="uid://ojlfqxj5bilo" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="6_es2l8"]
[ext_resource type="Script" path="res://Scripts/WeaponSystem/WeaponController.gd" id="7_8kdie"]
[ext_resource type="PackedScene" uid="uid://csxh42o8twxwn" path="res://Prefabs/projectile.tscn" id="8_wx0kk"]
[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_wkp62"]
[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="1_x3102"]
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="4_8st0q"]
[ext_resource type="Texture2D" uid="uid://bl7vfn05ul1vu" path="res://Assets/Sprites/Jesus/Jesus Spritesheet.png" id="4_e5cec"]
[sub_resource type="Animation" id="Animation_kdxam"]
resource_name = "Idle"
length = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
@ -36,10 +31,10 @@ tracks/0/path = NodePath("Player Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = false
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7]
"values": [0, 1, 2, 3]
}
[sub_resource type="Animation" id="Animation_2jvl5"]
@ -53,10 +48,10 @@ tracks/0/path = NodePath("Player Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [24, 25, 26, 27, 28, 29, 30, 31]
"values": [12, 13, 14, 15]
}
[sub_resource type="Animation" id="Animation_4ig1u"]
@ -70,10 +65,10 @@ tracks/0/path = NodePath("Player Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [8, 9, 10, 11, 12, 13, 14, 15]
"values": [4, 5, 6, 7]
}
[sub_resource type="Animation" id="Animation_pswkh"]
@ -87,10 +82,10 @@ tracks/0/path = NodePath("Player Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [16, 17, 18, 19, 20, 21, 22, 23]
"values": [8, 9, 10, 11]
}
[sub_resource type="Animation" id="Animation_o3hln"]
@ -121,37 +116,32 @@ _data = {
[node name="Player Movement" type="Node2D"]
[node name="Map Generator" type="TileMap" parent="."]
scale = Vector2(1.5, 1.5)
tile_set = ExtResource("1_s4utw")
tile_set = ExtResource("1_wkp62")
cell_quadrant_size = 32
collision_visibility_mode = 1
format = 2
script = ExtResource("2_yhpwh")
start_area_corner_size = 3
[node name="Bunny Generator" type="Node" parent="." node_paths=PackedStringArray("player")]
script = ExtResource("3_dvklj")
bunny_prefab = ExtResource("4_0fyd5")
player = NodePath("../Player")
script = ExtResource("4_8st0q")
start_area_size = 3
start_area_corner_size = 1
[node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")]
position = Vector2(1440, 810)
position = Vector2(960, 512)
scale = Vector2(0.5, 0.5)
collision_layer = 0
script = ExtResource("5_uv7bh")
script = ExtResource("1_x3102")
speed = 60
animation_player = NodePath("Player Animator")
[node name="Player Sprite" type="Sprite2D" parent="Player"]
position = Vector2(0, -20)
texture = ExtResource("6_es2l8")
hframes = 8
texture = ExtResource("4_e5cec")
hframes = 4
vframes = 4
[node name="Player Collider" type="CollisionPolygon2D" parent="Player"]
position = Vector2(2, -24)
polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24)
[node name="Player Camera" type="Camera2D" parent="Player"]
position = Vector2(-1, -25)
zoom = Vector2(3, 3)
position_smoothing_enabled = true
drag_horizontal_enabled = true
@ -162,8 +152,3 @@ editor_draw_drag_margin = true
libraries = {
"": SubResource("AnimationLibrary_bi1h3")
}
[node name="WeaponController" type="Node2D" parent="Player"]
position = Vector2(0, -16)
script = ExtResource("7_8kdie")
projectile_prefab = ExtResource("8_wx0kk")

View file

@ -2,89 +2,52 @@ extends CharacterBody2D
class_name Bunny
@export var animation_player : AnimationPlayer
@export var min_distance_to_player := 20.0
@export var max_distance_to_player := 500.0
@export var min_distance_to_player := 80.0
@export var max_distance_to_player := 800.0
@export var agent : NavigationAgent2D
@export var speed := 3.0
@export var damage_given : float = 4.0
@export var speed := 100.0
var health : int
var team : int
var player : Node2D
var on_death_callbacks : Array
var move_velocity : Vector2
var next_location : Vector2
var randomized_next_location : Vector2
var dir : Vector2
var time_since_got_player := 100.0
var time_since_got_move_location := 100.0
var last_player_velocity := 0.0
var last_target_position : Vector2
var max_pos_check_time := 0.5
var max_pos_check_time_inactive_scalar := 10.0
var max_get_move_location_time := 0.125
var random_goal_spread_factor := 2.5
var random_move_location_spread_factor := 8.0
var random_angle_change := deg_to_rad(4.0)
@export var attack_delay : float = 6.0
var attack_cooldown_left : float = 0
var first_attack : bool = true
var spread_time : float
var current_time : float
var collisions : int
func _ready():
pass
seed(int(str(self)))
spread_time = randf() * 2 + 0.1
current_time = spread_time
func _physics_process(delta):
randomize()
attack_cooldown_left -= delta
if abs(player.velocity.length() - last_player_velocity) > 100.0:
time_since_got_player = max_pos_check_time
if time_since_got_player >= max_pos_check_time and player.velocity.length() > 0.1:
time_since_got_player = randf() * max_pos_check_time * 0.5
update_target_pos()
if time_since_got_player >= max_pos_check_time * max_pos_check_time_inactive_scalar and player.velocity.length() < 0.1:
time_since_got_player = -(randf() * max_pos_check_time * 0.5)
update_target_pos()
if self.global_position.distance_to(player.global_position) < max_distance_to_player and time_since_got_move_location > max_get_move_location_time:
time_since_got_move_location = 0
if agent.is_target_reachable():
next_location = agent.get_next_path_position()
randomized_next_location = next_location + Vector2(randf() - 0.5, randf() - 0.5 ) * 2 * random_move_location_spread_factor
dir = self.global_position.direction_to(randomized_next_location).normalized().rotated((randf() - 0.5) * 2 * random_angle_change)
if self.global_position.distance_to(player.global_position) >= min_distance_to_player:
move_velocity = dir * delta * 60 * speed
update_animation()
if self.global_position.distance_to(next_location) < move_velocity.length():
self.global_position = next_location
time_since_got_player = 10.0
time_since_got_move_location = 10.0
current_time -= delta
if player != null and self.global_position.distance_to(player.global_position) < max_distance_to_player and collisions <= 3:
if current_time <= 0:
current_time = spread_time
agent.target_position = player.global_position
if min_distance_to_player and agent.is_target_reachable():
var next_location = agent.get_next_path_position() + Vector2(randf() - 0.5 * 2, randf() - 0.5 * 2)
dir = self.global_position.direction_to(next_location).normalized()
if self.global_position.distance_to(player.global_position) > min_distance_to_player:
self.velocity = dir * delta * 60 * speed
update_animation()
if delta > 0.5:
print(delta)
move_and_slide()
else:
move_and_collide(move_velocity)
elif attack_cooldown_left <= 0 and BunnyMaster.bunnies_attacking < BunnyMaster.max_bunnies_allowed_to_attack_at_once:
BunnyMaster.bunnies_attacking += 1
attack_cooldown_left = attack_delay
player.take_damage(damage_given)
get_tree().create_timer(3.0).connect("timeout",Callable(self, "reduce_attack_count"), 0)
else:
animation_player.stop()
time_since_got_player += delta
time_since_got_move_location += delta
last_player_velocity = player.velocity.length()
last_target_position = agent.target_position
animation_player.stop()
pass
func reduce_attack_count():
BunnyMaster.bunnies_attacking -= 1
func _on_collision(body):
if body != self: collisions += 1
pass
func update_target_pos():
agent.target_position = Vector2(player.global_position) + Vector2(randf() - 0.5 , randf() - 0.5) * 2 * random_goal_spread_factor
func _of_collision(body):
if body != self: collisions-= 1
pass
func damage(damage_amount : int):
@ -99,10 +62,6 @@ func heal(health_amount : int):
func on_death():
for callback in on_death_callbacks:
callback.call(self)
BunnyMaster.bunnies_alive -= 1
if BunnyMaster.bunnies_alive <= 0:
player.end_screen_displayer.call("show_victory_screen")
get_tree().paused = true
pass
func sub_on_death(callback : Callable):
@ -110,13 +69,13 @@ func sub_on_death(callback : Callable):
pass
func update_animation():
match self.move_velocity:
match self.velocity:
Vector2.ZERO: animation_player.play("Idle")
_:
var left_dot = Vector2.LEFT.dot(self.move_velocity)
var right_dot = Vector2.RIGHT.dot(self.move_velocity)
var up_dot = Vector2.UP.dot(self.move_velocity)
var down_dot = Vector2.DOWN.dot(self.move_velocity)
var left_dot = Vector2.LEFT.dot(self.velocity)
var right_dot = Vector2.RIGHT.dot(self.velocity)
var up_dot = Vector2.UP.dot(self.velocity)
var down_dot = Vector2.DOWN.dot(self.velocity)
var max_dot = maxf(left_dot, maxf(right_dot, maxf(up_dot, down_dot)))
match max_dot:

View file

@ -6,9 +6,6 @@ class_name BunnyGenerator
@export var player_save_distance : float = 400
@onready var BunnyPrefab : PackedScene = load(bunny_prefab.resource_path)
func _ready():
BunnyMaster.bunnies_alive = 500
func spawn_bunny(pos : Vector2, team : int, health : int) -> Bunny:
var bunny = BunnyPrefab.instantiate()
self.add_child(bunny)

View file

@ -1,6 +0,0 @@
extends Node
@export var max_bunnies_allowed_to_attack_at_once : int = 5
var bunnies_alive : int
var bunnies_attacking : int = 0

View file

@ -17,7 +17,7 @@ func _process(_delta):
if bunnys.size() == 0 and !in_wave_gen:
in_wave_gen = true
wave += 1
bunnys = await bunny_generator.spawn_batched_wave(25, 0.25, gen_data.free_tiles.duplicate(), TEAM.EVIL, wave * 250, 3)
bunnys = await bunny_generator.spawn_batched_wave(5.0, 0.25, gen_data.free_tiles.duplicate(), TEAM.EVIL, wave * 10.0, 3)
for bunny in bunnys:
bunny.sub_on_death(func(bunny): bunnys.erase(bunny))
bunny.sub_on_death(func(bunny): bunny.queue_free())

View file

@ -3,13 +3,6 @@ extends CharacterBody2D
@export var speed = 200
@export_range(0, 1) var damping_factor = 0.6
@export var animation_player : AnimationPlayer
@export var end_screen_displayer : Node
@export var health_label : Label
var health : float = 100
func _ready():
health = 100
func _physics_process(delta : float):
update_player_movement(delta)
@ -32,21 +25,7 @@ func update_player_movement(delta : float):
# Update Objects Physics calculations
self.move_and_slide()
pass
func take_damage(dmg : float):
if health >= dmg and health >= 0:
health -= dmg
health_label.text = "%d" % [health]
else:
health_label.text = "You Died!"
die()
func die():
end_screen_displayer.call("show_loss_screen")
get_tree().paused = true
pass
func update_player_animation():
match get_move_input_vector():
Vector2.ZERO: animation_player.play("Idle")

View file

@ -2,30 +2,6 @@ extends Node
const SAVE_FILE : String = "user://SAVEFILE.save"
var game_data = {}
var default_game_data = {
"display_mode": 0,
"vsync_on": false,
"current_resolution_index": 0,
"master_volume": 0,
"music_volume": 0,
"sfx_volume": 0,
"controls": {
"move_up": KEY_W,
"move_left": KEY_A,
"move_down": KEY_S,
"move_right": KEY_D,
"attack": "m" + str(MOUSE_BUTTON_LEFT),
"move_up_controller": "j" + str(JOY_AXIS_LEFT_Y) + "/-1.00",
"move_left_controller": "j" + str(JOY_AXIS_LEFT_X) + "/-1.00",
"move_down_controller": "j" + str(JOY_AXIS_LEFT_Y) + "/1.00",
"move_right_controller": "j" + str(JOY_AXIS_LEFT_X) + "/1.00",
"attack_controller": "b" + str(JOY_BUTTON_A),
"aim_up_controller": "j" + str(JOY_AXIS_RIGHT_Y) + "/-1.00",
"aim_left_controller": "j" + str(JOY_AXIS_RIGHT_X) + "/-1.00",
"aim_down_controller": "j" + str(JOY_AXIS_RIGHT_Y) + "/1.00",
"aim_right_controller": "j" + str(JOY_AXIS_RIGHT_X) + "/1.00",
}
}
func _ready():
load_data()
@ -33,7 +9,28 @@ func _ready():
func load_data():
var file = FileAccess.open(SAVE_FILE, FileAccess.READ)
if file == null:
game_data = default_game_data
game_data = {
"display_mode": 0,
"vsync_on": false,
"current_resolution_index": 0,
"master_volume": 0,
"music_volume": 0,
"sfx_volume": 0,
"move_up": KEY_W,
"move_left": KEY_A,
"move_down": KEY_S,
"move_right": KEY_D,
"attack": "m" + str(MOUSE_BUTTON_LEFT),
"move_up_controller": "j" + str(JOY_AXIS_LEFT_Y) + "/-1.00",
"move_left_controller": "j" + str(JOY_AXIS_LEFT_X) + "/-1.00",
"move_down_controller": "j" + str(JOY_AXIS_LEFT_Y) + "/1.00",
"move_right_controller": "j" + str(JOY_AXIS_LEFT_X) + "/1.00",
"attack_controller": "b" + str(JOY_BUTTON_A),
"aim_up_controller": "j" + str(JOY_AXIS_RIGHT_Y) + "/-1.00",
"aim_left_controller": "j" + str(JOY_AXIS_RIGHT_X) + "/-1.00",
"aim_down_controller": "j" + str(JOY_AXIS_RIGHT_Y) + "/1.00",
"aim_right_controller": "j" + str(JOY_AXIS_RIGHT_X) + "/1.00",
}
save_data()
else:
game_data = file.get_var()

View file

@ -81,38 +81,10 @@ func update_sfx_volume(vol : int) -> void:
# Controls
func set_controls_from_save_file() -> void:
for remappable_input_action in remappable_input_actions:
var action = Save.game_data.controls.keys().find(remappable_input_action)
var action = Save.game_data.keys().find(remappable_input_action)
for key in InputMap.action_get_events(remappable_input_action):
InputMap.action_erase_event(remappable_input_action, key)
var binding = Save.game_data.controls.values()[action]
var control_event
match str(binding)[0]:
"m":
binding = int(binding.right(binding.length()-1))
control_event = InputEventMouseButton.new()
control_event.button_index = binding
"b":
binding = int(binding.right(binding.length()-1))
control_event = InputEventJoypadButton.new()
control_event.button_index = binding
"j":
binding = binding.right(binding.length()-1)
binding = binding.split("/")
control_event = InputEventJoypadMotion.new()
control_event.axis = int(binding[0])
control_event.axis_value = float(binding[1])
_:
control_event = InputEventKey.new()
control_event.set_keycode(binding)
InputMap.action_add_event(remappable_input_action, control_event)
pass
func reset_controls_to_save_file() -> void:
for remappable_input_action in remappable_input_actions:
var action = Save.default_game_data.controls.keys().find(remappable_input_action)
for key in InputMap.action_get_events(remappable_input_action):
InputMap.action_erase_event(remappable_input_action, key)
var binding = Save.default_game_data.controls.values()[action]
var binding = Save.game_data.values()[action]
var control_event
match str(binding)[0]:
"m":

View file

@ -4,7 +4,6 @@ extends Node
@export var settings_scene : Resource
@export var default_focus : Control
@export var autostart_animations : Array[NodePath]
@export var music_player : AudioStreamPlayer
# Engine Callbackss
func _ready():
@ -19,7 +18,6 @@ func _ready():
default_focus.grab_focus()
for animation in autostart_animations:
(get_node(animation) as AnimationPlayer).play("Autostart")
music_player.play(0.0)
pass
func _on_play_button_pressed():

View file

@ -1,38 +0,0 @@
extends TextureButton
@export var text : String = "Sample Text"
@export var pointer_margin_from_center : int = 100
@export var leftPointer : Sprite2D
@export var rightPointer : Sprite2D
@export var textBox : RichTextLabel
# Engine Callbacks
func _ready():
textBox.parse_bbcode("[center] %s [/center]" % [text])
pass
func _process(_delta):
handle_hover_and_focus()
handle_x_position()
func handle_hover_and_focus() -> void:
if has_focus():
leftPointer.visible = true
rightPointer.visible = true
elif is_hovered():
leftPointer.visible = true
leftPointer.modulate.a = 0.5
rightPointer.visible = true
rightPointer.modulate.a = 0.5
else:
leftPointer.visible = false
leftPointer.modulate.a = 1
rightPointer.visible = false
rightPointer.modulate.a = 1
pass
func handle_x_position() -> void:
var center_x = get_parent().position.x + (get_parent().size.x / 2.0)
leftPointer.global_position.x = center_x - pointer_margin_from_center
rightPointer.global_position.x = center_x + pointer_margin_from_center
pass

View file

@ -1,42 +0,0 @@
extends Control
@export var menu_scene : String = "res://Scenes/Main Menu.tscn"
@export var settings_scene : Resource
@export var default_focus : Button
func _ready():
for child in get_children():
child.visible = false
pass
func _input(event):
if (event.is_action_pressed("ui_cancel")):
if get_tree().paused: default_focus.grab_focus()
get_tree().paused = !get_tree().paused
for child in get_children():
child.visible = get_tree().paused
pass
func _on_resume_button_pressed():
get_tree().paused = false
for child in get_children():
child.visible = false
pass
func _on_settings_button_pressed():
var settings_scene_instance = load(settings_scene.resource_path).instantiate()
settings_scene_instance.on_back = Callable(func(): default_focus.grab_focus())
get_tree().current_scene.add_child(settings_scene_instance)
pass
func _on_quit_button_pressed():
get_tree().quit()
pass
func _on_main_menu_button_pressed():
get_tree().paused = false
load(menu_scene)
get_tree().change_scene_to_file(menu_scene)
pass

View file

@ -4,8 +4,7 @@ extends Button
@export var remap_controller : Node
func _ready():
self.add_to_group("RemappableButton")
self.display_key()
display_key()
func display_key ():
self.text = "%s" % InputMap.action_get_events(input_action_name)[0].as_text()

View file

@ -2,7 +2,6 @@ extends Control
class_name RemapController
@export var min_time_between_remaps := 0.4
@export var remap_buttons_holder : VBoxContainer
var remap_button : Button
var remap_action : String
@ -53,14 +52,14 @@ func start_remap(button : Button, action : String):
func remap_key(event):
match str(event.get_class()):
"InputEventJoypadButton":
Save.game_data.controls["%s" % [remap_action]] = "b" + str(event.button_index)
Save.game_data["%s" % [remap_action]] = "b" + str(event.button_index)
"InputEventJoypadMotion":
if abs(event.axis_value) < 0.5: return
Save.game_data.controls["%s" % [remap_action]] = "j" + str(event.axis) + str("/1.00" if event.axis_value > 0 else "/-1.00")
Save.game_data["%s" % [remap_action]] = "j" + str(event.axis) + str("/1.00" if event.axis_value > 0 else "/-1.00")
"InputEventMouseButton":
Save.game_data.controls["%s" % [remap_action]] = "m" + str(event.button_index)
Save.game_data["%s" % [remap_action]] = "m" + str(event.button_index)
"InputEventKey":
Save.game_data.controls["%s" % [remap_action]] = event.keycode
Save.game_data["%s" % [remap_action]] = event.keycode
set_process_unhandled_key_input(false)
for key in InputMap.action_get_events(remap_action):
InputMap.action_erase_event(remap_action, key)
@ -71,10 +70,3 @@ func remap_key(event):
time_since_remap = 0
remap_button = null
pass
func _on_reset_button_pressed():
GlobalSettings.reset_controls_to_save_file()
for child in remap_buttons_holder.get_children():
if child is Button and child.is_in_group("RemappableButton"):
child.display_key()
pass

View file

@ -2,17 +2,12 @@ extends Area2D
@export var speed : float = 80.0
@export var damage : int = 1
@export var audio_pool := []
@export_flags_2d_physics var map_collision_layer : int
@export_flags_2d_physics var bunny_collision_layer : int
var dir : float
func _ready():
get_node(audio_pool[randi_range(0, 2)]).play()
pass
func _process(delta):
self.translate(Vector2(cos(dir), sin(dir)) * speed * delta)
self.rotate(delta * 30)
@ -33,4 +28,3 @@ func _on_collision(body):
bunny.damage(damage)
queue_free()
pass

View file

@ -1,38 +0,0 @@
extends Control
@export var menu_scene : String = "res://Scenes/Main Menu.tscn"
@export var default_focus : Button
@export var won_label : Label
@export var lost_label : Label
# Called when the node enters the scene tree for the first time.
func _ready():
get_tree().paused = false
for child in get_children():
child.visible = false
pass # Replace with function body.
func show_victory_screen():
for child in get_children():
child.visible = true
lost_label.visible = false
func show_loss_screen():
for child in get_children():
child.visible = true
won_label.visible = false
func _on_quit_button_pressed():
get_tree().quit()
pass
func _on_retry_button_pressed():
get_tree().paused = false
get_tree().reload_current_scene()
pass
func _on_main_menu_button_pressed():
get_tree().paused = false
load(menu_scene)
get_tree().change_scene_to_file(menu_scene)
pass

View file

@ -11,7 +11,7 @@ config_version=5
[application]
config/name="HoppyEaster"
run/main_scene="res://Scenes/Main Menu Music Fix.tscn"
run/main_scene="res://Scenes/Main Menu.tscn"
config/features=PackedStringArray("4.0", "GL Compatibility")
config/icon="res://icon.svg"
@ -23,12 +23,11 @@ buses/default_bus_layout="res://Assets/Music/default_bus_layout.tres"
GlobalSettings="*res://Scripts/SaveSystem/GlobalSettings.gd"
Save="*res://Scripts/SaveSystem/GameDataSaver.gd"
BunnyMaster="*res://Scripts/EntitySystem/BunnyMaster.gd"
[display]
window/size/viewport_width=1280
window/size/viewport_height=800
window/size/viewport_width=640
window/size/viewport_height=1000
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
@ -188,7 +187,6 @@ ui_tab_right={
2d_physics/layer_3="Bunny"
2d_physics/layer_4="Projectile"
2d_physics/layer_5="Layer 5"
2d_navigation/layer_5="Map Solid"
2d_physics/layer_7="bunny_check"
[rendering]