Pawn bodies split out, character select redesigned, and started the dreaded process of correcting the netcode. Players can connect to a shared room, character select, and start a match. They appear correctly differentiated with cameras and map icons that follow them independently. Jankiness with trap ownership is present as is stuff connected to animation. Unit tests for all network functionality required.

This commit is contained in:
2026-03-10 01:41:15 -04:00
parent 984567cf96
commit d128501f7c
52 changed files with 1179 additions and 929 deletions

View File

@@ -1,32 +1,32 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://yosnkcj4ci4v"]
[ext_resource type="Texture2D" uid="uid://3dj2p3xerc45" path="res://visuals/images/temp_portraits/tg-abdoll-relin.jpg" id="1_4g7al"]
[ext_resource type="AudioStream" uid="uid://dhlg3pk3tbirp" path="res://external/sample audio/a.wav" id="1_32lt6"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_4g7al"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_8dqhi"]
[ext_resource type="PackedScene" uid="uid://c3s6gqy0s5kus" path="res://templates/pawns/glitch.tscn" id="2_ptqwn"]
[ext_resource type="AudioStream" uid="uid://dhlg3pk3tbirp" path="res://external/sample audio/a.wav" id="1_mtelv"]
[ext_resource type="PackedScene" uid="uid://c3s6gqy0s5kus" path="res://templates/pawns/a.tscn" id="2_mtelv"]
[ext_resource type="Texture2D" uid="uid://13pdg1vs81as" path="res://external/test portraits/a.png" id="3_qt3l7"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_3x7pt"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_lwcbw"]
[sub_resource type="Resource" id="Resource_4g7al"]
script = ExtResource("2_4g7al")
script = ExtResource("5_lwcbw")
type = 1
qty = 3
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_8dqhi"]
script = ExtResource("2_4g7al")
script = ExtResource("5_lwcbw")
type = 5
qty = 6
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_32lt6"]
script = ExtResource("2_4g7al")
script = ExtResource("5_lwcbw")
type = 2
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_8dqhi")
name = "Abdoll Relin"
script = ExtResource("4_3x7pt")
name = "A"
move_speed = 3.0
life = 75
max_life = 75
@@ -37,8 +37,8 @@ range_damage = 12
range_time = 1.0
melee_time = 1.25
reload_time = 1.75
portrait = ExtResource("1_4g7al")
name_audio = ExtResource("1_32lt6")
pawn_body = ExtResource("2_ptqwn")
starting_hacks = Array[ExtResource("2_4g7al")]([SubResource("Resource_4g7al"), SubResource("Resource_8dqhi"), SubResource("Resource_32lt6")])
portrait = ExtResource("3_qt3l7")
name_audio = ExtResource("1_mtelv")
pawn_body = ExtResource("2_mtelv")
starting_hacks = Array[ExtResource("5_lwcbw")]([SubResource("Resource_4g7al"), SubResource("Resource_8dqhi"), SubResource("Resource_32lt6")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,31 +1,31 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://df4gqi1us2dwu"]
[ext_resource type="AudioStream" uid="uid://7dsv6kcptvar" path="res://external/sample audio/b.wav" id="1_idp5c"]
[ext_resource type="Texture2D" uid="uid://2qoouiv1cf0i" path="res://visuals/images/temp_portraits/tg-john-bishous.jpg" id="1_sb8f5"]
[ext_resource type="PackedScene" uid="uid://bum67b50tn8ye" path="res://templates/pawns/veil.tscn" id="2_rv56g"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_sb8f5"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_tu5w7"]
[ext_resource type="AudioStream" uid="uid://7dsv6kcptvar" path="res://external/sample audio/b.wav" id="1_vp6uu"]
[ext_resource type="PackedScene" uid="uid://bum67b50tn8ye" path="res://templates/pawns/b.tscn" id="2_vp6uu"]
[ext_resource type="Texture2D" uid="uid://ca6iihdssrh14" path="res://external/test portraits/b.png" id="3_qojdv"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_0gp76"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_ic2r4"]
[sub_resource type="Resource" id="Resource_sb8f5"]
script = ExtResource("2_sb8f5")
script = ExtResource("5_ic2r4")
type = 4
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_tu5w7"]
script = ExtResource("2_sb8f5")
script = ExtResource("5_ic2r4")
qty = 6
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_idp5c"]
script = ExtResource("2_sb8f5")
script = ExtResource("5_ic2r4")
type = 2
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_tu5w7")
name = "John Bishous"
script = ExtResource("4_0gp76")
name = "B"
move_speed = 2.5
life = 125
max_life = 125
@@ -36,8 +36,8 @@ range_damage = 20
range_time = 0.75
melee_time = 1.0
reload_time = 1.75
portrait = ExtResource("1_sb8f5")
name_audio = ExtResource("1_idp5c")
pawn_body = ExtResource("2_rv56g")
starting_hacks = Array[ExtResource("2_sb8f5")]([SubResource("Resource_sb8f5"), SubResource("Resource_tu5w7"), SubResource("Resource_idp5c")])
portrait = ExtResource("3_qojdv")
name_audio = ExtResource("1_vp6uu")
pawn_body = ExtResource("2_vp6uu")
starting_hacks = Array[ExtResource("5_ic2r4")]([SubResource("Resource_sb8f5"), SubResource("Resource_tu5w7"), SubResource("Resource_idp5c")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,32 +1,32 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://dnty6gi4s2vdl"]
[ext_resource type="AudioStream" uid="uid://dr3jq3tnvtwu" path="res://external/sample audio/c.wav" id="1_6f6nq"]
[ext_resource type="Texture2D" uid="uid://db0n6kjwucthf" path="res://visuals/images/temp_portraits/tg-lou-riche.jpg" id="1_onotk"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_7kyxn"]
[ext_resource type="PackedScene" uid="uid://c6hojd4o764oc" path="res://templates/pawns/miko.tscn" id="2_54xui"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_onotk"]
[ext_resource type="AudioStream" uid="uid://dr3jq3tnvtwu" path="res://external/sample audio/c.wav" id="1_ag1od"]
[ext_resource type="PackedScene" uid="uid://c6hojd4o764oc" path="res://templates/pawns/c.tscn" id="2_ag1od"]
[ext_resource type="Texture2D" uid="uid://dm7fo7tt00p1" path="res://external/test portraits/c.png" id="3_1yr5w"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_nmvyh"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_2i1hp"]
[sub_resource type="Resource" id="Resource_onotk"]
script = ExtResource("2_onotk")
script = ExtResource("5_2i1hp")
type = 1
qty = 5
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_7kyxn"]
script = ExtResource("2_onotk")
script = ExtResource("5_2i1hp")
type = 2
qty = 1
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_6f6nq"]
script = ExtResource("2_onotk")
script = ExtResource("5_2i1hp")
type = 3
qty = 3
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_7kyxn")
name = "Lou Riche"
script = ExtResource("4_nmvyh")
name = "C"
move_speed = 3.0
life = 100
ammo = 6
@@ -35,8 +35,8 @@ melee_damage = 12
range_damage = 4
range_time = 0.4
melee_time = 1.25
portrait = ExtResource("1_onotk")
name_audio = ExtResource("1_6f6nq")
pawn_body = ExtResource("2_54xui")
starting_hacks = Array[ExtResource("2_onotk")]([SubResource("Resource_onotk"), SubResource("Resource_7kyxn"), SubResource("Resource_6f6nq")])
portrait = ExtResource("3_1yr5w")
name_audio = ExtResource("1_ag1od")
pawn_body = ExtResource("2_ag1od")
starting_hacks = Array[ExtResource("5_2i1hp")]([SubResource("Resource_onotk"), SubResource("Resource_7kyxn"), SubResource("Resource_6f6nq")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,32 +1,32 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://bpb2nok3rqm1g"]
[ext_resource type="Texture2D" uid="uid://ci86bksme5114" path="res://visuals/images/temp_portraits/tg-tenrou-ugetsu.jpg" id="1_fm4bf"]
[ext_resource type="AudioStream" uid="uid://dsikjobcle18a" path="res://external/sample audio/d.wav" id="1_vnwdb"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_0fl5x"]
[ext_resource type="PackedScene" uid="uid://bqg51qfb0cj8y" path="res://templates/pawns/mr_tingles.tscn" id="2_4mj1t"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="3_fm4bf"]
[ext_resource type="AudioStream" uid="uid://dsikjobcle18a" path="res://external/sample audio/d.wav" id="1_l2iwo"]
[ext_resource type="PackedScene" uid="uid://bqg51qfb0cj8y" path="res://templates/pawns/d.tscn" id="2_l2iwo"]
[ext_resource type="Texture2D" uid="uid://b2ovogspuupqa" path="res://external/test portraits/d.png" id="3_b6a3y"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_8vcih"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_v5xcc"]
[sub_resource type="Resource" id="Resource_0fl5x"]
script = ExtResource("3_fm4bf")
script = ExtResource("5_v5xcc")
type = 1
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_vnwdb"]
script = ExtResource("3_fm4bf")
script = ExtResource("5_v5xcc")
type = 5
qty = 3
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_4mj1t"]
script = ExtResource("3_fm4bf")
script = ExtResource("5_v5xcc")
type = 3
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_0fl5x")
name = "Tenrou Ugetsu"
script = ExtResource("4_8vcih")
name = "D"
move_speed = 3.5
life = 100
ammo = 7
@@ -36,8 +36,8 @@ range_damage = 3
range_time = 0.3
melee_time = 1.25
reload_time = 0.6
portrait = ExtResource("1_fm4bf")
name_audio = ExtResource("1_vnwdb")
pawn_body = ExtResource("2_4mj1t")
starting_hacks = Array[ExtResource("3_fm4bf")]([SubResource("Resource_0fl5x"), SubResource("Resource_vnwdb"), SubResource("Resource_4mj1t")])
portrait = ExtResource("3_b6a3y")
name_audio = ExtResource("1_l2iwo")
pawn_body = ExtResource("2_l2iwo")
starting_hacks = Array[ExtResource("5_v5xcc")]([SubResource("Resource_0fl5x"), SubResource("Resource_vnwdb"), SubResource("Resource_4mj1t")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,32 +1,32 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://casciqabe0wgo"]
[ext_resource type="Texture2D" uid="uid://bsug1ur2gifkh" path="res://visuals/images/temp_portraits/tg-tico.jpg" id="1_o3qj5"]
[ext_resource type="AudioStream" uid="uid://dornjmfg37bv0" path="res://external/sample audio/e.wav" id="1_o75pd"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_cxp03"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_o3qj5"]
[ext_resource type="PackedScene" uid="uid://bb6a6wu2kc3fr" path="res://templates/pawns/pawn_body.tscn" id="2_wsuu3"]
[ext_resource type="AudioStream" uid="uid://dornjmfg37bv0" path="res://external/sample audio/e.wav" id="1_hlw2y"]
[ext_resource type="PackedScene" uid="uid://bb6a6wu2kc3fr" path="res://templates/pawns/e.tscn" id="2_hlw2y"]
[ext_resource type="Texture2D" uid="uid://b2rynijk10l8a" path="res://external/test portraits/e.png" id="3_1j2en"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_jmlxg"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_f1khw"]
[sub_resource type="Resource" id="Resource_o3qj5"]
script = ExtResource("2_o3qj5")
script = ExtResource("5_f1khw")
type = 4
qty = 3
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_cxp03"]
script = ExtResource("2_o3qj5")
script = ExtResource("5_f1khw")
type = 5
qty = 4
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_o75pd"]
script = ExtResource("2_o3qj5")
script = ExtResource("5_f1khw")
type = 3
qty = 4
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_cxp03")
name = "Tico"
script = ExtResource("4_jmlxg")
name = "E"
move_speed = 3.0
life = 75
max_life = 75
@@ -37,8 +37,8 @@ range_damage = 10
range_time = 1.0
melee_time = 1.25
reload_time = 2.0
portrait = ExtResource("1_o3qj5")
name_audio = ExtResource("1_o75pd")
pawn_body = ExtResource("2_wsuu3")
starting_hacks = Array[ExtResource("2_o3qj5")]([SubResource("Resource_o3qj5"), SubResource("Resource_cxp03"), SubResource("Resource_o75pd")])
portrait = ExtResource("3_1j2en")
name_audio = ExtResource("1_hlw2y")
pawn_body = ExtResource("2_hlw2y")
starting_hacks = Array[ExtResource("5_f1khw")]([SubResource("Resource_o3qj5"), SubResource("Resource_cxp03"), SubResource("Resource_o75pd")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,31 +1,31 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://6s8tqfssrt5i"]
[ext_resource type="AudioStream" uid="uid://bqu2otr8b1oj6" path="res://external/sample audio/f.wav" id="1_2pr8m"]
[ext_resource type="Texture2D" uid="uid://bp6wc55s2t4si" path="res://visuals/images/temp_portraits/tg-van-raily.jpg" id="1_crpmc"]
[ext_resource type="PackedScene" uid="uid://cwrxbjgwbiv81" path="res://templates/pawns/zero.tscn" id="2_1yw33"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_crpmc"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_nf0ju"]
[ext_resource type="AudioStream" uid="uid://bqu2otr8b1oj6" path="res://external/sample audio/f.wav" id="1_2oi4n"]
[ext_resource type="PackedScene" uid="uid://cwrxbjgwbiv81" path="res://templates/pawns/f.tscn" id="2_2oi4n"]
[ext_resource type="Texture2D" uid="uid://c265jqwykqc2s" path="res://external/test portraits/f.png" id="3_ttwdt"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_mlun8"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_2hgkw"]
[sub_resource type="Resource" id="Resource_crpmc"]
script = ExtResource("2_crpmc")
script = ExtResource("5_2hgkw")
type = 4
qty = 1
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_nf0ju"]
script = ExtResource("2_crpmc")
script = ExtResource("5_2hgkw")
qty = 4
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_2pr8m"]
script = ExtResource("2_crpmc")
script = ExtResource("5_2hgkw")
type = 1
qty = 4
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_nf0ju")
name = "Van Raily"
script = ExtResource("4_mlun8")
name = "F"
move_speed = 3.0
life = 100
ammo = 5
@@ -33,8 +33,8 @@ melee_damage = 10
range_damage = 5
range_time = 0.5
melee_time = 1.0
portrait = ExtResource("1_crpmc")
name_audio = ExtResource("1_2pr8m")
pawn_body = ExtResource("2_1yw33")
starting_hacks = Array[ExtResource("2_crpmc")]([SubResource("Resource_crpmc"), SubResource("Resource_nf0ju"), SubResource("Resource_2pr8m")])
portrait = ExtResource("3_ttwdt")
name_audio = ExtResource("1_2oi4n")
pawn_body = ExtResource("2_2oi4n")
starting_hacks = Array[ExtResource("5_2hgkw")]([SubResource("Resource_crpmc"), SubResource("Resource_nf0ju"), SubResource("Resource_2pr8m")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

BIN
external/test portraits/a.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

40
external/test portraits/a.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://13pdg1vs81as"
path="res://.godot/imported/a.png-ebbbc7f6f20fea8e38d2eb9b9f504ae6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/a.png"
dest_files=["res://.godot/imported/a.png-ebbbc7f6f20fea8e38d2eb9b9f504ae6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/b.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

40
external/test portraits/b.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ca6iihdssrh14"
path="res://.godot/imported/b.png-c4aed0756051058e2c54ebf8a9768024.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/b.png"
dest_files=["res://.godot/imported/b.png-c4aed0756051058e2c54ebf8a9768024.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/c.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

40
external/test portraits/c.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dm7fo7tt00p1"
path="res://.godot/imported/c.png-959ec224d08023f8cd903e843fd686a9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/c.png"
dest_files=["res://.godot/imported/c.png-959ec224d08023f8cd903e843fd686a9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/d.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

40
external/test portraits/d.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2ovogspuupqa"
path="res://.godot/imported/d.png-eab85833b41c1be7a701598ea9d65289.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/d.png"
dest_files=["res://.godot/imported/d.png-eab85833b41c1be7a701598ea9d65289.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/e.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

40
external/test portraits/e.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2rynijk10l8a"
path="res://.godot/imported/e.png-2e8cf58eaf7604a4ffa5b244bcce0759.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/e.png"
dest_files=["res://.godot/imported/e.png-2e8cf58eaf7604a4ffa5b244bcce0759.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/f.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

40
external/test portraits/f.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c265jqwykqc2s"
path="res://.godot/imported/f.png-781e05d9cb8315bdfb553bff384fdaac.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/f.png"
dest_files=["res://.godot/imported/f.png-781e05d9cb8315bdfb553bff384fdaac.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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

@@ -7,6 +7,11 @@ resource_name = "texture_0"
transparency = 4
cull_mode = 2
shading_mode = 0
diffuse_mode = 3
specular_mode = 2
disable_ambient_light = true
disable_fog = true
disable_specular_occlusion = true
albedo_texture = ExtResource("1_anj20")
texture_filter = 0
texture_repeat = false

View File

@@ -1,73 +1,11 @@
[gd_scene load_steps=13 format=3 uid="uid://ck4x56txf676a"]
[gd_scene load_steps=6 format=3 uid="uid://ck4x56txf676a"]
[ext_resource type="Script" uid="uid://grs3nyom325o" path="res://scripts/character_select.gd" id="1_bow2h"]
[ext_resource type="PackedScene" uid="uid://46rpw0rrd51m" path="res://templates/pawn_display.tscn" id="2_5wdeo"]
[ext_resource type="Texture2D" uid="uid://dri0a20l6kpbj" path="res://visuals/images/icon.svg" id="2_uxcyu"]
[ext_resource type="AudioStream" uid="uid://vcatohtmt8bk" path="res://audio/old-music/16 - Character Select.mp3" id="3_bow2h"]
[ext_resource type="AudioStream" uid="uid://cwmfd8ov3lj1h" path="res://audio/sounds/menu select.wav" id="7_bqp8h"]
[ext_resource type="AudioStream" uid="uid://doelc8yt5snc2" path="res://audio/sounds/Keypad A.wav" id="8_5cdo8"]
[sub_resource type="Shader" id="Shader_fa52j"]
code = "shader_type canvas_item;
uniform sampler2D main_texture;
uniform float granularity : hint_range(5, 30) = 15.0;
uniform float opacity_limit;
float random (vec2 uv) {
return fract(sin(dot(uv.xy,
vec2(12.9898,78.233))) * 43758.5453123);
}
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
vec2 uv = UV;
float g = ( pow(granularity, 2));
uv = round((uv * g)) / g;
uv.y = TIME * uv.y + TIME * .05;
uv.x = 10.0 * TIME * uv.x + TIME * 1.0;
float val = random(uv);
float op = random(-uv) / val;
float alpha = 1.0;
if(op < opacity_limit){
alpha = 0.0;
}
vec4 color = vec4(val, val, val, alpha * COLOR.a);
COLOR = color;
}
//void light() {
// // Called for every pixel for every light affecting the CanvasItem.
// // Uncomment to replace the default light processing function with this one.
//}
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5wdeo"]
shader = SubResource("Shader_fa52j")
shader_parameter/granularity = 10.0000002375
shader_parameter/opacity_limit = 0.86
[sub_resource type="Gradient" id="Gradient_ak2if"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fa52j"]
gradient = SubResource("Gradient_ak2if")
width = 1
[sub_resource type="Gradient" id="Gradient_w1hxv"]
offsets = PackedFloat32Array(1)
colors = PackedColorArray(1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bqp8h"]
gradient = SubResource("Gradient_w1hxv")
width = 1
[node name="Control" type="Control" groups=["scenes"]]
layout_mode = 3
anchors_preset = 15
@@ -90,395 +28,84 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Control" type="Control" parent="Panel"]
[node name="PawnDisplays" type="Control" parent="Panel"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 94.0
offset_top = 98.0
offset_right = 134.0
offset_bottom = 138.0
[node name="P1PawnDisplay" parent="Panel/Control" instance=ExtResource("2_5wdeo")]
unique_name_in_owner = true
[node name="PawnDisplay" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 0.0
offset_top = 0.0
offset_right = 700.0
offset_bottom = 700.0
offset_left = -29.0
offset_top = -65.0
offset_right = 471.0
offset_bottom = 435.0
[node name="P2PawnDisplay" parent="Panel/Control" instance=ExtResource("2_5wdeo")]
unique_name_in_owner = true
[node name="PawnDisplay2" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 1032.0
offset_top = 0.0
offset_right = 1732.0
offset_bottom = 700.0
offset_left = 1258.0
offset_top = -65.0
offset_right = 1758.0
offset_bottom = 435.0
[node name="PawnName" parent="Panel/Control/P2PawnDisplay/Control" index="0"]
modulate = Color(0.78848296, 0, 0.22455063, 1)
[node name="PawnDisplay3" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 36.0
offset_top = 451.0
offset_right = 536.0
offset_bottom = 951.0
[node name="Panel2" type="Panel" parent="."]
[node name="PawnDisplay4" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 1192.0
offset_top = 456.0
offset_right = 1692.0
offset_bottom = 956.0
[node name="Panel2" type="Control" parent="."]
custom_minimum_size = Vector2(0, 250)
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 0
anchors_preset = 0
offset_left = 727.0
offset_top = 98.0
offset_right = 877.0
offset_bottom = 348.0
[node name="HBoxContainer" type="HBoxContainer" parent="Panel2"]
[node name="PawnPickPortraits" type="GridContainer" parent="Panel2"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -512.5
offset_top = -75.0
offset_right = 512.5
offset_bottom = 75.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 25
alignment = 1
[node name="Panel" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel2" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel2/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel2/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel3" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel3/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel3/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel4" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel4"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel4"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel4/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel4/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel4"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel5" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel5"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel5"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel5/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel5/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel5"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel6" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel6"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel6"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel6/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel6/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel6"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -75.0
offset_top = -114.0
offset_right = 383.0
offset_bottom = 806.0
grow_horizontal = 2
grow_vertical = 2
columns = 3
[node name="SelectorStart" type="Control" parent="Panel2"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 438.0
offset_top = 40.0
offset_right = 478.0
offset_bottom = 80.0
offset_left = -9.0
offset_right = 31.0
offset_bottom = 40.0
[node name="Panel3" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 75.0
grow_horizontal = 2
[node name="Label" type="Label" parent="Panel3"]
[node name="Label" type="Label" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -75.5
offset_top = -23.0
offset_right = 75.5
offset_left = -188.5
offset_top = -1060.0
offset_right = 188.5
offset_bottom = -1005.0
grow_horizontal = 2
grow_vertical = 0
theme_override_font_sizes/font_size = 40
@@ -507,6 +134,3 @@ bus = &"SFX"
[connection signal="spawned" from="SelectorSpawner" to="." method="_on_selector_spawner_spawned"]
[connection signal="child_entered_tree" from="Panel2/SelectorStart" to="." method="_on_selector_start_child_entered_tree"]
[editable path="Panel/Control/P1PawnDisplay"]
[editable path="Panel/Control/P2PawnDisplay"]

View File

@@ -0,0 +1,139 @@
[gd_scene load_steps=6 format=3 uid="uid://ck4x56txf676a"]
[ext_resource type="Script" uid="uid://grs3nyom325o" path="res://scripts/character_select.gd" id="1_bow2h"]
[ext_resource type="PackedScene" uid="uid://46rpw0rrd51m" path="res://templates/pawn_display.tscn" id="2_5wdeo"]
[ext_resource type="AudioStream" uid="uid://vcatohtmt8bk" path="res://audio/old-music/16 - Character Select.mp3" id="3_bow2h"]
[ext_resource type="AudioStream" uid="uid://cwmfd8ov3lj1h" path="res://audio/sounds/menu select.wav" id="7_bqp8h"]
[ext_resource type="AudioStream" uid="uid://doelc8yt5snc2" path="res://audio/sounds/Keypad A.wav" id="8_5cdo8"]
[node name="Control" type="Control" groups=["scenes"]]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_bow2h")
[node name="SelectorSpawner" type="MultiplayerSpawner" parent="."]
unique_name_in_owner = true
_spawnable_scenes = PackedStringArray("uid://bvypswoe6diaq")
spawn_path = NodePath("../Panel2/SelectorStart")
[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
[node name="PawnDisplays" type="Control" parent="Panel"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 94.0
offset_top = 98.0
offset_right = 134.0
offset_bottom = 138.0
[node name="PawnDisplay" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = -29.0
offset_top = -65.0
offset_right = 471.0
offset_bottom = 435.0
[node name="PawnDisplay2" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 1258.0
offset_top = -65.0
offset_right = 1758.0
offset_bottom = 435.0
[node name="PawnDisplay3" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
visible = false
layout_mode = 0
offset_left = 36.0
offset_top = 451.0
offset_right = 536.0
offset_bottom = 951.0
[node name="PawnDisplay4" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
visible = false
layout_mode = 0
offset_left = 1192.0
offset_top = 456.0
offset_right = 1692.0
offset_bottom = 956.0
[node name="Panel2" type="Control" parent="."]
custom_minimum_size = Vector2(0, 250)
anchors_preset = 0
offset_left = 727.0
offset_top = 98.0
offset_right = 877.0
offset_bottom = 348.0
[node name="PawnPickPortraits" type="GridContainer" parent="Panel2"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -75.0
offset_top = -114.0
offset_right = 383.0
offset_bottom = 806.0
grow_horizontal = 2
grow_vertical = 2
columns = 3
[node name="SelectorStart" type="Control" parent="Panel2"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 438.0
offset_top = 40.0
offset_right = 478.0
offset_bottom = 80.0
[node name="Label" type="Label" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -188.5
offset_top = -1060.0
offset_right = 188.5
offset_bottom = -1005.0
grow_horizontal = 2
grow_vertical = 0
theme_override_font_sizes/font_size = 40
text = "CHARACTER SELECT"
horizontal_alignment = 1
[node name="Music" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_bow2h")
volume_db = -5.0
autoplay = true
bus = &"Music"
[node name="SelectSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("7_bqp8h")
[node name="Announcer" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
volume_db = 12.381
bus = &"Voice"
[node name="SwitchSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("8_5cdo8")
bus = &"SFX"
[connection signal="spawned" from="SelectorSpawner" to="." method="_on_selector_spawner_spawned"]
[connection signal="child_entered_tree" from="Panel2/SelectorStart" to="." method="_on_selector_start_child_entered_tree"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=4 uid="uid://dewb10lmvj1yy"]
[gd_scene load_steps=14 format=4 uid="uid://dewb10lmvj1yy"]
[ext_resource type="Script" uid="uid://d3t381vws7vns" path="res://scripts/level.gd" id="1_0a1dj"]
[ext_resource type="PackedScene" uid="uid://bgocskbofewsr" path="res://templates/HUD.tscn" id="2_uckv6"]
@@ -8,6 +8,7 @@
[ext_resource type="MeshLibrary" uid="uid://bp5402nbrw3hx" path="res://manufactory_minimap_mesh_library.tres" id="6_0a1dj"]
[ext_resource type="Texture2D" uid="uid://dri0a20l6kpbj" path="res://visuals/images/icon.svg" id="7_cttrw"]
[ext_resource type="AudioStream" uid="uid://cr0n18se6jnig" path="res://audio/music/Industrial Matts Fridge Intensity 2.wav" id="9_d3ajt"]
[ext_resource type="Script" uid="uid://b5npi1ys4lnf4" path="res://scripts/multiplayer_level_setup.gd" id="9_owm7e"]
[sub_resource type="Environment" id="Environment_x4b8f"]
background_energy_multiplier = 0.29
@@ -57,6 +58,7 @@ blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_tlwuy")
[node name="Manufactory Level" type="Node3D"]
process_mode = 4
script = ExtResource("1_0a1dj")
difficulty = 5
@@ -407,4 +409,11 @@ stream = ExtResource("9_d3ajt")
volume_db = -24.684
autoplay = true
[node name="MultiplayerLevelSetup" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("9_owm7e")
[connection signal="spawned" from="PawnSpawner" to="MultiplayerLevelSetup" method="_on_pawn_spawner_spawned"]
[connection signal="spawned" from="CameraSpawner" to="MultiplayerLevelSetup" method="_on_camera_spawner_spawned"]
[editable path="CanvasLayer/HUD"]

View File

@@ -3,7 +3,7 @@
[ext_resource type="Script" uid="uid://dep7nr2nkdmga" path="res://scripts/multiplayer_setup.gd" id="1_lckj3"]
[node name="MultiplayerSetup" type="MultiplayerSpawner" groups=["level_spawner"]]
_spawnable_scenes = PackedStringArray("uid://ti65jukt8gvs", "uid://ck4x56txf676a", "uid://by6suwmds7xq2")
_spawnable_scenes = PackedStringArray("uid://ti65jukt8gvs", "uid://ck4x56txf676a", "uid://dewb10lmvj1yy")
spawn_path = NodePath(".")
script = ExtResource("1_lckj3")

File diff suppressed because one or more lines are too long

View File

@@ -412,14 +412,17 @@ offset_bottom = 648.0
stream = ExtResource("4_mykxm")
volume_db = -18.606
autoplay = true
bus = &"Music"
[node name="SelectSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("6_3yumr")
bus = &"UI"
[node name="SwitchSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("7_cs5ya")
bus = &"UI"
[node name="TextureRect6" type="TextureRect" parent="."]
layout_mode = 0

View File

@@ -7,6 +7,16 @@ enum Modes{
VS_MAN
}
var pawns : Dictionary = {
"A" : load("res://data/pawns/a.tres"),
"B" : load("res://data/pawns/b.tres"),
"C" : load("res://data/pawns/c.tres"),
"D" : load("res://data/pawns/d.tres"),
"E" : load("res://data/pawns/e.tres"),
"F" : load("res://data/pawns/f.tres")
}
const blinder_template = preload("res://templates/blinder.tscn")
const one_shot_template = preload("res://templates/one_shot.tscn")
@@ -15,13 +25,14 @@ const vs_com_level = preload("res://scenes/test_level.tscn")
const vs_man_level = preload("res://scenes/manufactory.tscn")
const pawn_select_scene = preload("res://scenes/character_select.tscn")
var cmd_args : Dictionary = {}
var player : PawnController
var hud : HUD
var level : Level
var mode : Modes = Modes.STORY
var multiplayer_game : bool = false
var num_players : int = 1
var pawns_selected : Dictionary[int, PawnBaseData] = {}
var pawns_selected : Dictionary[int, StringName] = {}
var level_synced : Dictionary[int, bool] = {}
var net_test : bool #TODO: Remove later
@@ -30,16 +41,21 @@ func _ready() -> void:
for arg in OS.get_cmdline_args():
if arg.begins_with("--"):
var flag = arg.lstrip("--")
if flag.contains("="):
var key_val = flag.split("=")
args[key_val[0]]=key_val[1]
args[flag]=true
if args.has("net_test"):
net_test = true
if args.has("instance_id"):
get_tree().root.title = "Net Gunner (Instance: %s)" % args.instance_id
cmd_args = args
func setup_player(pc : PawnController) -> void:
var is_local = false
Game.level.pawns[pc.id] = pc
if pc.id == Multiplayer.id:
is_local = true
level.pawns[pc.id] = pc
if is_local:
player = pc
if hud:
@@ -49,10 +65,11 @@ func is_multiplayer() -> bool:
return multiplayer_game
func start_level(pawns : Dictionary[int, PawnBaseData]) -> void:
func start_level(pawns : Dictionary[int, StringName]) -> void:
pawns_selected = pawns
if !Multiplayer.is_host():
return
pawns_selected = pawns
for i in Multiplayer.players.values():
level_synced[i] = false
level_synced[1] = true
@@ -117,7 +134,6 @@ func level_spawned(peer_id : int) -> void:
level_synced[peer_id] = true
check_level_ready()
func check_level_ready() -> void:
var ready : bool = true
for id in level_synced:

View File

@@ -34,11 +34,11 @@ func become_host() -> void:
print("Hosting Room...")
var room_id = await server_peer.room_connected
print("Connected to room: ", server_peer.room_id)
server_peer.get_rooms()
#server_peer.get_rooms()
print("GETTING ROOMS!")
var rooms = await server_peer.rooms_received
#var rooms = await server_peer.rooms_received
print("GOT ROOMS!")
print(rooms)
#print(rooms)
players[handle] = 1
player_readiness[1] = false

View File

@@ -1,13 +1,6 @@
extends Control
class_name CharacterSelect extends Control
const pawns : Array[PawnBaseData] = [
preload("res://data/pawns/van_reily.tres"),
preload("res://data/pawns/lou_riche.tres"),
preload("res://data/pawns/tico.tres"),
preload("res://data/pawns/john_bishous.tres"),
preload("res://data/pawns/abdoll_relin.tres"),
preload("res://data/pawns/tenrou_ugetsu.tres")
]
const p_colors : Array[Color] = [
Color.ROYAL_BLUE,
@@ -16,34 +9,53 @@ const p_colors : Array[Color] = [
const selector_template = preload("res://templates/pawn_selector.tscn")
@onready var pawn_displays : Array[PawnDisplay] = [
%P1PawnDisplay,
%P2PawnDisplay
]
const pawn_pick_portrait_template = preload("res://templates/pawn_pick_portrait.tscn")
var selector_wait : float = 0
var selected : int = -1
var selectors : Dictionary[int,PawnSelector] = {}
var displays : Dictionary[int, PawnDisplay] = {}
var portraits : Dictionary[Vector2i, PawnPickPortrait] = {}
var announce_tween : Tween = null
@onready var announcer : AudioStreamPlayer = %Announcer
@onready var selector_start : Control = %SelectorStart
@onready var switch_sound : AudioStreamPlayer = %SwitchSound
@onready var select_sound : AudioStreamPlayer = %SelectSound
@onready var portrait_grid : GridContainer = %PawnPickPortraits
@onready var pawn_displays : Control = %PawnDisplays
func _ready() -> void:
var i : int = 0
var idx : Vector2i = Vector2i.ZERO
for pawn in Game.pawns.values():
var pp : PawnPickPortrait = pawn_pick_portrait_template.instantiate()
portrait_grid.add_child(pp)
pp.setup(pawn, i)
portraits[idx] = pp
i+=1
idx.x += 1
if idx.x >= portrait_grid.columns:
idx.y += 1
idx.x -= portrait_grid.columns
Multiplayer.waiting = true
var plist
if Game.is_multiplayer():
plist = Multiplayer.players.values()
for i in range(Game.num_players):
displays[plist[i]] = pawn_displays[i]
change_display(plist[i], 0)
for id in range(Game.num_players):
var display : PawnDisplay = pawn_displays.get_child(id)
displays[plist[id]] = display
display.visible = true
portraits[Vector2i.ZERO].num_players += 1
change_display(plist[id], 0)
else:
displays[1] = pawn_displays[0]
displays[1] = pawn_displays.get_child(0)
displays[1].visible = true
change_display(1, 0)
portraits[Vector2i.ZERO].num_players += 1
Multiplayer.all_ready.connect(add_selector, CONNECT_ONE_SHOT)
Multiplayer.set_player_ready.rpc(Multiplayer.id)
#Set up each pawn on bottom
@@ -67,12 +79,12 @@ func _process(delta : float) -> void:
if !selectors.has(Multiplayer.id):
return
var locked = true
var pawns_selected : Dictionary[int, PawnBaseData] = {}
var pawns_selected : Dictionary[int, StringName] = {}
for selector : PawnSelector in selectors.values():
if !selector.selected:
locked = false
else:
pawns_selected[selector.player_id] = pawns[selector.selection]
pawns_selected[selector.player_id] = portraits[selector.selection].pawn.name
if locked:
Game.start_level(pawns_selected)
@@ -88,25 +100,25 @@ func _process(delta : float) -> void:
input_vector = Input.get_vector("west","east","north","south")
var move_dir : Vector2 = Vector2.ZERO
var move_dir : Vector2i = Vector2.ZERO
if input_vector.x < 0:
move_dir.x -= 1
if input_vector.x > 0:
move_dir.x += 1
if move_dir.x != 0:
move_selector.rpc(selector.player_id, wrapi(selector.selection + sign(move_dir.x),0, len(pawns)))
move_dir = Vector2i((input_vector + .499 * sign(input_vector)).round())
if move_dir.length_squared() != 0:
var selection : Vector2i = selector.selection + move_dir
selection.x = wrapi(selection.x, 0, portrait_grid.columns)
selection.y = wrapi(selection.y, 0, ceili(float(portrait_grid.get_child_count()) / portrait_grid.columns))
move_selector.rpc(selector.player_id, selection)
selector_wait = 0.25
@rpc("any_peer","call_local","reliable")
func move_selector(peer_id : int, selection : int) -> void:
func move_selector(peer_id : int, selection : Vector2i) -> void:
var selector : PawnSelector = selectors[peer_id]
selector.selection = selection
change_display(peer_id, selector.selection)
var v = Vector2(175 * selector.selection, 0)
selector.position = Vector2(175 * selector.selection, 0)
portraits[selector.selection].num_players -= 1
selector.selection = selection
portraits[selector.selection].num_players += 1
change_display(peer_id, portraits[selector.selection].pawn_idx)
var v = Vector2(154 * selector.selection.x, 154 * selector.selection.y)
selector.position = v
switch_sound.play()
if announce_tween != null and announce_tween.is_running():
announce_tween.stop()
@@ -114,7 +126,7 @@ func move_selector(peer_id : int, selection : int) -> void:
announcer.stop()
announce_tween = create_tween()
announce_tween.tween_interval(.25)
announcer.stream = pawns[selection].name_audio
announcer.stream = portraits[selection].pawn.name_audio
announce_tween.tween_callback(announcer.play)
@rpc("any_peer","call_local","reliable")
@@ -126,9 +138,10 @@ func lock_selector(peer_id : int) -> void:
func change_display(player : int, selection: int) -> void:
var pd : PawnDisplay = displays[player]
pd.set_pawn_name(pawns[selection].name)
pd.set_portrait(pawns[selection].portrait)
pd.set_hacks(pawns[selection].starting_hacks)
var pawn : PawnBaseData = Game.pawns.values()[selection]
pd.set_pawn_name(pawn.name)
pd.set_portrait(pawn.portrait)
pd.set_hacks(pawn.starting_hacks)
func _on_selector_start_child_entered_tree(node: Node) -> void:

View File

@@ -108,7 +108,6 @@ func _on_reveal_timeout() -> void:
func _ready() -> void:
var owns_hack = hack_owner == Multiplayer.id
print("Setup Hack " + name)
material.set_shader_parameter("glow_color", Color.YELLOW if owns_hack else Color.RED)
icon.texture = hack_icons[type]
model.visible = owns_hack

View File

@@ -24,7 +24,7 @@ const camera_offset = Vector3(0, 10, 5.25)
@onready var cameras_node : Node3D = %Cameras
@onready var map_markers_node : Node3D = %MapMarkers
@onready var spawn_points : Array[Node] = $PawnSpawner.get_children()
@onready var multiplayer_level_setup : MultiplayerLevelSetup = %MultiplayerLevelSetup
@export var difficulty : int = 1
@@ -34,6 +34,7 @@ var cameras : Dictionary[int, PawnCamera] = {}
var map_markers : Dictionary[Object, MapMarker] = {}
func _ready() -> void:
process_mode=Node.PROCESS_MODE_DISABLED
Game.level = self
if Game.mode == Game.Modes.STORY:
setup()
@@ -43,20 +44,45 @@ func setup() -> void:
if Multiplayer.is_host():
spawn_players()
@rpc("authority")
func spawn_players() -> void:
if Game.is_multiplayer():
spawn_players_multiplayer()
else:
spawn_players_singleplayer()
func spawn_players_singleplayer() -> void:
var pc : PawnController = pawn_controller.instantiate()
pawns[1] = pc
pawns_node.add_child(pc,true)
var position : Vector3
if(spawn_points == null
or len(spawn_points) <= 1):
position = Vector3(0,0,0)
else:
position = spawn_points[0].global_position
pc.global_position = position
pc.setup(1, Game.pawns_selected[1])
add_pawn_camera(pc)
cameras[1].register_pawn(1)
process_mode=Node.PROCESS_MODE_INHERIT
func spawn_players_multiplayer() -> void:
var count = 0
multiplayer_level_setup.set_players_unready(Multiplayer.players.values())
multiplayer_level_setup.set_pawns_expected.rpc(Game.pawns_selected.size())
for key in Game.pawns_selected:
var pc : PawnController = pawn_controller.instantiate()
var pd = Game.pawns_selected[key]
pawns[key] = pc
pawns_node.add_child(pc,true)
var hacks : Array = []
for hack : HackSet in pd.starting_hacks:
var dict = {
"type":hack.type,
"qty":hack.qty
}
hacks.append(dict)
await multiplayer_level_setup.all_players_ready
for key in pawns:
var pc = pawns[key]
var position : Vector3
if(spawn_points == null
or len(spawn_points) <= count):
@@ -66,10 +92,23 @@ func spawn_players() -> void:
position = Vector3(3,0,0)
else:
position = spawn_points[count].global_position
pc.setup.rpc(key,hacks,position)
add_pawn_camera(pc)
count += 1
pc.global_position = position
pc.setup.rpc(key, Game.pawns_selected[key])
multiplayer_level_setup.set_players_unready(Multiplayer.players.values())
multiplayer_level_setup.set_cameras_expected.rpc(Game.pawns_selected.size())
for pc in pawns.values():
add_pawn_camera(pc)
await multiplayer_level_setup.all_players_ready
setup_cameras()
start_level.rpc()
@rpc("authority", "call_local")
func start_level() -> void:
process_mode=Node.PROCESS_MODE_INHERIT
func is_square_detected(crd) -> bool:
return marker_layer.get_cell_item(crd + Vector3i(0,-1,0)) != GridMap.INVALID_CELL_ITEM
@@ -88,15 +127,21 @@ func detect_square(crd : Vector3i, mark : bool) -> bool:
hack.reveal()
return true
@rpc("any_peer", "call_local", "reliable")
func add_pawn_camera(pawn : PawnController) -> void:
if Multiplayer.is_host():
var camera : PawnCamera = camera_template.instantiate()
camera.position = pawn.global_position + camera_offset
cameras_node.add_child(camera,true)
camera.register_pawn.rpc(pawn.id)
cameras[pawn.id] = camera
func setup_cameras() -> void:
var camera_list = cameras_node.get_children()
var idx = 0
for pawn_id in pawns:
camera_list[idx].register_pawn.rpc(pawn_id)
cameras[pawn_id] = camera_list[idx]
idx += 1
func add_hack(hack : Hack, crd : Vector3i) -> void:
hack.square = crd

View File

@@ -1,19 +0,0 @@
extends Level
#const pawn_controller_template = preload("res://templates/pawn_controller.tscn")
#
#@onready var player_spawner = %Spawner
#func _ready() -> void:
#print("LEVEL LOADING, ID: " + str(Multiplayer.id) + " with " + str(Multiplayer.players.size()) + " keys recognized")
#Game.level = self
#
#func setup() -> void:
#if Multiplayer.is_host():
#spawn_players()
#
#func spawn_players() -> void:
#for key in Game.pawns_selected:
#var pc : PawnController = pawn_controller_template.instantiate()
#var pd = Game.pawns_selected[key]
#player_spawner.add_pawn(pc, key)
#pc.setup(key,pd.starting_hacks)

View File

@@ -0,0 +1,62 @@
class_name MultiplayerLevelSetup extends Node
var players_ready : Dictionary[int, bool] = {}
var pawns_expected : int = 1
var cameras_expected : int = 1
signal all_pawns_spawned()
signal all_cameras_spawned()
signal all_players_ready()
@rpc("authority", "reliable")
func set_pawns_expected(num : int) -> void:
all_pawns_spawned.connect(_on_all_pawns_spawned, CONNECT_ONE_SHOT)
print("(Instance %s) Expecting %d Pawns" % [Game.cmd_args.instance_id, num])
pawns_expected = num
func set_players_unready(list : Array) -> void:
players_ready = {}
for id in list:
players_ready[id] = false
players_ready[1] = true
func check_all_ready() -> bool:
for id in players_ready:
if !players_ready[id]:
return false
return true
func _on_all_pawns_spawned() -> void:
player_ready.rpc_id(1,Multiplayer.id)
func _on_all_cameras_spawned() -> void:
player_ready.rpc_id(1,Multiplayer.id)
@rpc("any_peer", "reliable")
func player_ready(id : int) -> void:
print("(Instance %s) Player %d notified ready" % [Game.cmd_args.instance_id, id])
players_ready[id] = true
if(check_all_ready()):
print("(Instance %s) ALL PLAYERS READY!!" % [Game.cmd_args.instance_id])
all_players_ready.emit()
@rpc("authority", "reliable")
func set_cameras_expected(num : int) -> void:
all_cameras_spawned.connect(_on_all_cameras_spawned, CONNECT_ONE_SHOT)
cameras_expected = num
func _on_pawn_spawner_spawned(node: Node) -> void:
print("(Instance %s) Spawned %d Pawn" % [Game.cmd_args.instance_id, node.id])
pawns_expected -= 1
if pawns_expected == 0:
print("(Instance %s) ALL PAWNS SPAWNED!" % [Game.cmd_args.instance_id])
all_pawns_spawned.emit()
func _on_camera_spawner_spawned(node: Node) -> void:
cameras_expected -= 1
if cameras_expected == 0:
all_cameras_spawned.emit()

View File

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

View File

@@ -0,0 +1,18 @@
extends Node3D
func _enter_tree() -> void:
Game.pawns_selected[1] = Game.pawns.keys()[0]
Multiplayer.client_added.connect(_on_client_added)
#SETUP HOST:
if !Game.net_test:
var handle = "Host - P1"
Multiplayer.handle = handle
#Validate entries
Multiplayer.become_host()
func _on_client_added(handle : String, id : int) -> void:
pass

View File

@@ -13,6 +13,9 @@ class_name PawnBody extends Node3D
@onready var walk_sound : AudioStreamPlayer3D = $WalkSound
@onready var footstep_timer : Timer = $FootstepTimer
signal shooting()
signal reloading()
@rpc("call_local")
func play_animation(anim_name : String) -> void:
anim_player.play(anim_name)

View File

@@ -4,6 +4,7 @@ class_name PawnCamera extends Camera3D
var target
var player_offset : Vector3
@export var player_id = 1
@export var decay = 0.9 # How quickly the shaking stops [0, 1].
@export var max_offset = Vector2(2, 1.5) # Maximum hor/ver shake in pixels.

View File

@@ -15,9 +15,10 @@ const hack_template = preload("res://templates/hack.tscn")
const uninstall_hack_modal = preload("res://templates/uninstall_hack_modal.tscn")
const decompile_hack_modal = preload("res://templates/decompile_hack_modal.tscn")
const range_sphere_template = preload("res://templates/range_sphere.tscn")
@export var pawn_name : StringName
@export var speed : float = 10
@onready var body : PawnBody = $PawnBody
@onready var body : PawnBody
@onready var input : PawnInput = $PawnInput
@onready var data : PawnLevelData = $Data
@onready var hack_sound : AudioStreamPlayer3D = $HackSound
@@ -28,7 +29,7 @@ const range_sphere_template = preload("res://templates/range_sphere.tscn")
@onready var reload_sound : AudioStreamPlayer3D = $PawnBody/ReloadSound
@onready var detect_icon : Sprite3D = $DetectIcon
var id : int = 1
@export var id : int = 1
@export var state : State
var button_actions : Dictionary[int, String]
@@ -62,6 +63,8 @@ var max_ammo = 5
var combat_target
var meleeing : bool = false
var shooting : bool = false
var reloading : bool = false
var take_shot : bool = false
var flinch : float = 0
@@ -95,6 +98,8 @@ func _exit_tree() -> void:
#Game.level.evaluate_outcome()
#Game.evaluate
func _physics_process(delta: float) -> void:
if attack_timer > 0:
attack_timer -= delta
@@ -155,10 +160,11 @@ func _physics_process(delta: float) -> void:
body.play_footsteps(lerp(.78, .33, dir.length()))
else:
body.stop_footsteps()
else:
elif body != null:
body.stop_footsteps()
body.set_animation_parameter("parameters/Motion/blend_position", dir.length())
body.set_animation_parameter("parameters/Crouch/blend_position", dir.length())
if body != null:
body.set_animation_parameter("parameters/Motion/blend_position", dir.length())
body.set_animation_parameter("parameters/Crouch/blend_position", dir.length())
State.KNOCKUP:
if is_on_floor():
knockdown(facing)
@@ -197,6 +203,20 @@ func _physics_process(delta: float) -> void:
elif state == State.NORMAL:
update_actions()
@rpc("call_local", "reliable")
func setup_pawn_body(pd : PawnBaseData) -> void:
set_pawn_body(pd.pawn_body.instantiate())
func set_pawn_body(pb : PawnBody) -> void:
if body != null:
body.queue_free()
body = pb
pb.reloading.connect(reload_ranged)
pb.shooting.connect(fire_ranged)
add_child(body)
struggling.connect(body._on_struggle_changed)
func attack() -> void:
if attack_timer > 0:
return
@@ -205,22 +225,25 @@ func attack() -> void:
attack_timer = melee_recovery_time
else:
if ammo <= 0:
reload_sound.play()
ammo = max_ammo
attack_timer = ranged_reload_time
ammo_changed.emit(ammo, max_ammo)
reloading = true
return
ammo-=1
ammo_changed.emit(ammo, max_ammo)
attack_timer = ranged_recovery_time
shooting == true
shooting = true
take_shot = true
if combat_target != null:
var v = body.global_position.direction_to(combat_target.global_position)
v.y = 0
body.look_at(body.global_position - v)
func reload_ranged() -> void:
reloading = false
reload_sound.play()
ammo = max_ammo
attack_timer = ranged_reload_time
ammo_changed.emit(ammo, max_ammo)
func update_actions() -> void:
if attack_timer <= 0 and shooting and !input.is_action_pressed("attack"):
shooting = false
@@ -297,6 +320,9 @@ func update_poison(delta : float) -> void:
func fire_ranged() -> void:
var shot = body.projectile_template.instantiate()
var tdir : Vector3 = Vector3.ZERO
take_shot = false
ammo-=1
ammo_changed.emit(ammo, max_ammo)
shot.speed = projectile_speed
tdir = body.ranged_point.global_position.direction_to(combat_target.global_position) if combat_target else facing
shot.direction = tdir
@@ -490,15 +516,15 @@ func clear_detect_region() -> void:
detect_squares = {}
@rpc("authority", "call_local", "reliable")
func setup(id : int, hacks : Array, pos : Vector3) -> void:
func setup(id : int, pawn : StringName) -> void:
self.id = id
self.global_position = pos
var base_data : PawnBaseData = Game.pawns[pawn]
var hacklist : Array[PawnLevelData.HackData] = []
for hack in hacks:
for hack in base_data.starting_hacks:
hacklist.append(PawnLevelData.HackData.new(hack.type, hack.qty, hack.qty))
$Data.hacks = hacklist
input.set_multiplayer_authority(id)
struggling.connect(body._on_struggle_changed)
setup_pawn_body(base_data)
Game.setup_player(self)
func uninstall_hack_at(square) -> void:

View File

@@ -0,0 +1,25 @@
class_name PawnPickPortrait extends Panel
@onready var portrait : TextureRect = %Portrait
@onready var cover : Control = %Cover
var pawn : PawnBaseData
var pawn_idx : int
var _players : int = 0
var num_players : int :
get:
return _players
set(value):
_players = value
if cover != null:
cover.visible = (_players == 0)
func _ready() -> void:
pass
func setup(data : PawnBaseData, idx : int) -> void:
pawn = data
pawn_idx = idx
if portrait != null:
portrait.texture = data.portrait

View File

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

View File

@@ -2,7 +2,7 @@ class_name PawnSelector extends TextureRect
@onready var anim_player : AnimationPlayer = $AnimationPlayer
@export var player_id : int
@export var selection : int = 0
@export var selection : Vector2i = Vector2.ZERO
@export var selected : bool
func setup(id : int, color : Color) -> void:

View File

@@ -3,6 +3,6 @@ extends Node3D
@onready var level : Level = $Level
func _ready() -> void:
Game.pawns_selected[1] = load("res://data/pawns/van_reily.tres")
Game.pawns_selected[1] = "a"
level.setup()

View File

@@ -1,7 +1,6 @@
[gd_scene load_steps=14 format=3 uid="uid://c8xf3qawk5c6u"]
[gd_scene load_steps=13 format=3 uid="uid://c8xf3qawk5c6u"]
[ext_resource type="Script" uid="uid://bcs7ygh6s3l35" path="res://scripts/pawn_controller.gd" id="1_h27ep"]
[ext_resource type="PackedScene" uid="uid://bb6a6wu2kc3fr" path="res://templates/pawns/pawn_body.tscn" id="2_dt0l8"]
[ext_resource type="Script" uid="uid://6w608y2grdqb" path="res://scripts/pawn_level_data.gd" id="14_ncd3b"]
[ext_resource type="AudioStream" uid="uid://cjrlb4qiy23sj" path="res://audio/sounds/impact_deep_thud_bounce_09.wav" id="15_rsl1q"]
[ext_resource type="AudioStream" uid="uid://blbk74d50ldut" path="res://audio/sounds/sci-fi_forcefield_hum_loop_02.wav" id="16_t8028"]
@@ -25,6 +24,12 @@ properties/1/replication_mode = 1
properties/2/path = NodePath(".:state")
properties/2/spawn = true
properties/2/replication_mode = 1
properties/3/path = NodePath(".:pawn_name")
properties/3/spawn = true
properties/3/replication_mode = 1
properties/4/path = NodePath(".:id")
properties/4/spawn = true
properties/4/replication_mode = 1
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_pnc3q"]
properties/0/path = NodePath("PawnInput:dir")
@@ -50,9 +55,6 @@ floor_snap_length = 1.0
script = ExtResource("1_h27ep")
speed = 2.25
[node name="PawnBody" parent="." instance=ExtResource("2_dt0l8")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.425, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.375, 0)
shape = SubResource("CapsuleShape3D_a5wj7")

View File

@@ -60,8 +60,8 @@ width = 1
[node name="PawnDisplay" type="Panel"]
offset_left = 94.0
offset_top = 96.0
offset_right = 794.0
offset_bottom = 796.0
offset_right = 594.0
offset_bottom = 596.0
script = ExtResource("1_c4qnx")
[node name="Portrait" type="TextureRect" parent="."]
@@ -87,19 +87,18 @@ expand_mode = 1
[node name="Control" type="Control" parent="."]
anchors_preset = 0
offset_left = 108.0
offset_top = 286.0
offset_right = 392.0
offset_bottom = 350.0
offset_top = 86.0
offset_right = 284.0
offset_bottom = 150.0
[node name="PawnName" type="Label" parent="Control"]
unique_name_in_owner = true
modulate = Color(0, 0.3254902, 1, 1)
layout_mode = 0
offset_left = 37.0
offset_top = 288.0
offset_top = 264.0
offset_right = 448.0
offset_bottom = 355.0
offset_bottom = 331.0
theme_override_font_sizes/font_size = 48
text = "NAME GOES HERE"
horizontal_alignment = 1
@@ -112,9 +111,9 @@ anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -39.0
offset_top = 281.0
offset_top = 256.0
offset_right = 245.0
offset_bottom = 394.0
offset_bottom = 369.0
grow_horizontal = 2
grow_vertical = 0
@@ -126,7 +125,7 @@ unique_name_in_owner = true
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Control/VBoxContainer/Panel/HackContainer"]
custom_minimum_size = Vector2(92, 64)
custom_minimum_size = Vector2(80, 94)
layout_mode = 2
expand_mode = 1
script = ExtResource("3_ph4cm")

View File

@@ -0,0 +1,119 @@
[gd_scene load_steps=9 format=3 uid="uid://vteg7bvq0i0v"]
[ext_resource type="Script" uid="uid://dqpoa5x8u3r3h" path="res://scripts/pawn_pick_portrait.gd" id="1_xribi"]
[ext_resource type="Texture2D" uid="uid://dri0a20l6kpbj" path="res://visuals/images/icon.svg" id="2_gb3se"]
[sub_resource type="Shader" id="Shader_fa52j"]
code = "shader_type canvas_item;
uniform sampler2D main_texture;
uniform float granularity : hint_range(5, 30) = 15.0;
uniform float opacity_limit;
float random (vec2 uv) {
return fract(sin(dot(uv.xy,
vec2(12.9898,78.233))) * 43758.5453123);
}
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
vec2 uv = UV;
float g = ( pow(granularity, 2));
uv = round((uv * g)) / g;
uv.y = TIME * uv.y + TIME * .05;
uv.x = 10.0 * TIME * uv.x + TIME * 1.0;
float val = random(uv);
float op = random(-uv) / val;
float alpha = 1.0;
if(op < opacity_limit){
alpha = 0.0;
}
vec4 color = vec4(val, val, val, alpha * COLOR.a);
COLOR = color;
}
//void light() {
// // Called for every pixel for every light affecting the CanvasItem.
// // Uncomment to replace the default light processing function with this one.
//}
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5wdeo"]
shader = SubResource("Shader_fa52j")
shader_parameter/granularity = 10.0000002375
shader_parameter/opacity_limit = 0.86
[sub_resource type="Gradient" id="Gradient_ak2if"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fa52j"]
gradient = SubResource("Gradient_ak2if")
width = 1
[sub_resource type="Gradient" id="Gradient_w1hxv"]
offsets = PackedFloat32Array(1)
colors = PackedColorArray(1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bqp8h"]
gradient = SubResource("Gradient_w1hxv")
width = 1
[node name="PawnPickPortrait" type="Panel"]
custom_minimum_size = Vector2(150, 150)
script = ExtResource("1_xribi")
[node name="Portrait" type="TextureRect" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_gb3se")
expand_mode = 1
[node name="Cover" type="Control" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Cover"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Cover"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2

View File

@@ -9891,6 +9891,20 @@ tracks/58/path = NodePath("%GeneralSkeleton:RightToes")
tracks/58/interp = 1
tracks/58/loop_wrap = true
tracks/58/keys = PackedFloat32Array(0, 1, 2.230305e-08, -1, -8.940697e-08, -2.2097256e-08)
tracks/59/type = "method"
tracks/59/imported = false
tracks/59/enabled = true
tracks/59/path = NodePath("..")
tracks/59/interp = 1
tracks/59/loop_wrap = true
tracks/59/keys = {
"times": PackedFloat32Array(0.8),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [&"reloading"],
"method": &"emit_signal"
}]
}
[sub_resource type="Animation" id="Animation_xtckd"]
resource_name = "Pistol_Shoot"
@@ -10311,15 +10325,15 @@ tracks/58/keys = PackedFloat32Array(0, 1, 2.230305e-08, -1, -8.940697e-08, -2.20
tracks/59/type = "method"
tracks/59/imported = false
tracks/59/enabled = true
tracks/59/path = NodePath("../..")
tracks/59/path = NodePath("..")
tracks/59/interp = 1
tracks/59/loop_wrap = true
tracks/59/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"fire_ranged"
"args": [&"firing"],
"method": &"emit_signal"
}]
}
@@ -19347,7 +19361,7 @@ advance_expression = "take_shot == true"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_prcnq"]
switch_mode = 2
advance_mode = 2
advance_expression = "reload == true"
advance_expression = "take_shot == false"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_n5wpo"]
advance_mode = 2
@@ -19368,7 +19382,7 @@ states/Hit_Chest/position = Vector2(134, 239)
states/Motion/node = SubResource("AnimationNodeBlendSpace1D_a4li3")
states/Motion/position = Vector2(852.5, 214.3125)
states/Pistol_Idle/node = SubResource("AnimationNodeAnimation_tpe7m")
states/Pistol_Idle/position = Vector2(1009.58984, 214.4654)
states/Pistol_Idle/position = Vector2(1009.58984, 214.3125)
states/Pistol_Reload/node = SubResource("AnimationNodeAnimation_80lp4")
states/Pistol_Reload/position = Vector2(162, 294)
"states/Pistol_Reload 2/node" = SubResource("AnimationNodeAnimation_44rnf")
@@ -19430,7 +19444,6 @@ script = ExtResource("1_ox2bo")
projectile_template = ExtResource("2_pbmu7")
[node name="Model" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
[node name="GeneralSkeleton" type="Skeleton3D" parent="Model"]
unique_name_in_owner = true
@@ -19447,8 +19460,8 @@ bones/1/name = "Hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9167, -0.05010003)
bones/1/enabled = true
bones/1/position = Vector3(-0.0024818163, 0.87689203, -0.08611909)
bones/1/rotation = Quaternion(-0.041834366, -0.11343615, -0.0047956714, 0.9926526)
bones/1/position = Vector3(0.0029217794, 0.87712944, -0.08623208)
bones/1/rotation = Quaternion(-0.048274823, -0.122335054, -0.0053202827, 0.99129987)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Spine"
bones/2/parent = 1
@@ -19462,77 +19475,77 @@ bones/3/parent = 2
bones/3/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.12309997, 0.015199981)
bones/3/enabled = true
bones/3/position = Vector3(0, 0.12309997, 0.015199981)
bones/3/rotation = Quaternion(0.09659883, -5.355537e-05, 0.00026460417, 0.99532336)
bones/3/rotation = Quaternion(0.083439596, -0.050386205, -0.014193618, 0.995137)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "UpperChest"
bones/4/parent = 3
bones/4/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.14120016, -0.004500025)
bones/4/enabled = true
bones/4/position = Vector3(0, 0.14120016, -0.004500025)
bones/4/rotation = Quaternion(0.09650713, -0.00017420544, 0.000392597, 0.99533224)
bones/4/rotation = Quaternion(0.083440006, -0.1491554, -0.011031527, 0.9852253)
bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Neck"
bones/5/parent = 4
bones/5/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.17280002, -0.005600037)
bones/5/enabled = true
bones/5/position = Vector3(0, 0.17280002, -0.005600037)
bones/5/rotation = Quaternion(-0.09660053, 8.970201e-05, -0.00042705837, 0.9953232)
bones/5/rotation = Quaternion(0.017888838, 0.10118126, 0.006566928, 0.99468553)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Head"
bones/6/parent = 5
bones/6/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.081100024, 0.0155999875)
bones/6/enabled = true
bones/6/position = Vector3(0, 0.081100024, 0.0155999875)
bones/6/rotation = Quaternion(0.07733145, 0.09392192, 0.006599924, 0.99254984)
bones/6/rotation = Quaternion(0.024657993, -0.13774714, -0.024798114, 0.98985)
bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "LeftShoulder"
bones/7/parent = 4
bones/7/rest = Transform3D(0, 1, 0, 0, 0, 1, 1, 0, 0, 0.0188, 0.14310004, 0.07629998)
bones/7/enabled = true
bones/7/position = Vector3(0.0188, 0.14310004, 0.07629998)
bones/7/rotation = Quaternion(0.48981094, 0.5252108, 0.5261682, -0.45539638)
bones/7/rotation = Quaternion(0.47803193, 0.5050022, 0.4935733, -0.52234435)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "LeftUpperArm"
bones/8/parent = 7
bones/8/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.13680005, 0.17309996, -0.01710007)
bones/8/enabled = true
bones/8/position = Vector3(-0.13680005, 0.17309996, -0.01710007)
bones/8/rotation = Quaternion(-0.053318888, 0.8184777, -0.5719345, 0.011934999)
bones/8/rotation = Quaternion(0.49294424, 0.77037, -0.40433675, 0.0069256644)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "LeftLowerArm"
bones/9/parent = 8
bones/9/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0.004699965, 0.27440003, 3.769936e-08)
bones/9/enabled = true
bones/9/position = Vector3(0.004699965, 0.27440003, 3.769936e-08)
bones/9/rotation = Quaternion(0.19455527, -0.65546066, 0.18630217, 0.70555735)
bones/9/rotation = Quaternion(0.40944093, -0.57015, 0.5879608, 0.40198165)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "LeftHand"
bones/10/parent = 9
bones/10/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 2.0133815e-08, 0.27260005, 0.004700036)
bones/10/enabled = true
bones/10/position = Vector3(2.0133815e-08, 0.27260005, 0.004700036)
bones/10/rotation = Quaternion(0.10066947, 0.70664036, 0.06496154, 0.6973557)
bones/10/rotation = Quaternion(-0.066626236, 0.5500871, 0.035547514, 0.8316861)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "LeftIndexProximal"
bones/11/parent = 10
bones/11/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03090003, 0.11989991, 0.001999812)
bones/11/enabled = true
bones/11/position = Vector3(-0.03090003, 0.11989991, 0.001999812)
bones/11/rotation = Quaternion(0.6295968, -4.3044434e-08, -4.6125497e-06, 0.776922)
bones/11/rotation = Quaternion(0.03729071, -7.154156e-08, -5.175003e-07, 0.99930453)
bones/11/scale = Vector3(1, 1, 1)
bones/12/name = "LeftIndexIntermediate"
bones/12/parent = 11
bones/12/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/enabled = true
bones/12/position = Vector3(-4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/rotation = Quaternion(0.62334186, 2.0268834e-08, -4.2690954e-06, 0.7819495)
bones/12/rotation = Quaternion(0.3397444, -1.3053811e-07, -1.8548973e-06, 0.94051784)
bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "LeftIndexDistal"
bones/13/parent = 12
bones/13/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.0742177e-09, 0.034800045, 1.1683975e-08)
bones/13/enabled = true
bones/13/position = Vector3(-2.0742177e-09, 0.034800045, 1.1683975e-08)
bones/13/rotation = Quaternion(0.62334144, -2.2035704e-07, -4.475343e-06, 0.7819499)
bones/13/rotation = Quaternion(0.26331255, 3.1589735e-08, -2.7728588e-06, 0.9647106)
bones/13/scale = Vector3(1, 1, 1)
bones/14/name = "index_04_leaf_l"
bones/14/parent = 13
@@ -19546,21 +19559,21 @@ bones/15/parent = 10
bones/15/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.005200028, 0.121599905, -0.00040022636)
bones/15/enabled = true
bones/15/position = Vector3(-0.005200028, 0.121599905, -0.00040022636)
bones/15/rotation = Quaternion(0.6288943, -0.0297349, -4.4662734e-06, 0.7769219)
bones/15/rotation = Quaternion(0.034359887, -0.0016245749, -0.08324677, 0.99593514)
bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "LeftMiddleIntermediate"
bones/16/parent = 15
bones/16/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0019999952, 0.04229999, 2.1621558e-08)
bones/16/enabled = true
bones/16/position = Vector3(0.0019999952, 0.04229999, 2.1621558e-08)
bones/16/rotation = Quaternion(0.62273276, -0.027554581, -4.4138583e-06, 0.7819494)
bones/16/rotation = Quaternion(0.3884896, 0.008260064, -0.010748425, 0.92135346)
bones/16/scale = Vector3(1, 1, 1)
bones/17/name = "LeftMiddleDistal"
bones/17/parent = 16
bones/17/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0014999973, 0.033899974, 1.615871e-07)
bones/17/enabled = true
bones/17/position = Vector3(0.0014999973, 0.033899974, 1.615871e-07)
bones/17/rotation = Quaternion(0.6226684, -0.028961534, -4.46933e-06, 0.7819498)
bones/17/rotation = Quaternion(0.42306805, -0.019677328, -3.4574791e-06, 0.9058843)
bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "middle_04_leaf_l"
bones/18/parent = 17
@@ -19574,21 +19587,21 @@ bones/19/parent = 10
bones/19/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04079998, 0.10769992, 0.0015997506)
bones/19/enabled = true
bones/19/position = Vector3(0.04079998, 0.10769992, 0.0015997506)
bones/19/rotation = Quaternion(0.6630008, -0.044529777, 0.07369416, 0.7436506)
bones/19/rotation = Quaternion(0.4281105, -0.028753696, -0.066136904, 0.9008444)
bones/19/scale = Vector3(1, 1, 1)
bones/20/name = "LeftLittleIntermediate"
bones/20/parent = 19
bones/20/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0027000003, 0.040200002, 1.7218216e-10)
bones/20/enabled = true
bones/20/position = Vector3(0.0027000003, 0.040200002, 1.7218216e-10)
bones/20/rotation = Quaternion(0.6203661, -0.062294018, 0.015573083, 0.78167963)
bones/20/rotation = Quaternion(0.39108172, -0.13253164, 0.046397403, 0.9095811)
bones/20/scale = Vector3(1, 1, 1)
bones/21/name = "LeftLittleDistal"
bones/21/parent = 20
bones/21/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0018999914, 0.027600013, 2.2658543e-07)
bones/21/enabled = true
bones/21/position = Vector3(0.0018999914, 0.027600013, 2.2658543e-07)
bones/21/rotation = Quaternion(0.6219216, -0.042051837, -4.4705234e-06, 0.7819497)
bones/21/rotation = Quaternion(0.4008552, -0.027103845, -2.9876176e-06, 0.9157405)
bones/21/scale = Vector3(1, 1, 1)
bones/22/name = "pinky_04_leaf_l"
bones/22/parent = 21
@@ -19602,21 +19615,21 @@ bones/23/parent = 10
bones/23/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.01709998, 0.1190999, -0.00010017503)
bones/23/enabled = true
bones/23/position = Vector3(0.01709998, 0.1190999, -0.00010017503)
bones/23/rotation = Quaternion(0.6291978, -0.022414068, -4.198693e-06, 0.77692205)
bones/23/rotation = Quaternion(0.30737934, -0.010949735, -0.16781034, 0.9366098)
bones/23/scale = Vector3(1, 1, 1)
bones/24/name = "LeftRingIntermediate"
bones/24/parent = 23
bones/24/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.001399991, 0.039300047, -1.0103322e-07)
bones/24/enabled = true
bones/24/position = Vector3(0.001399991, 0.039300047, -1.0103322e-07)
bones/24/rotation = Quaternion(0.6229472, -0.022176372, -4.326954e-06, 0.78194946)
bones/24/rotation = Quaternion(0.3325078, -0.17884532, 0.061298802, 0.9239564)
bones/24/scale = Vector3(1, 1, 1)
bones/25/name = "LeftRingDistal"
bones/25/parent = 24
bones/25/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0010999943, 0.030899974, -1.0082857e-07)
bones/25/enabled = true
bones/25/position = Vector3(0.0010999943, 0.030899974, -1.0082857e-07)
bones/25/rotation = Quaternion(0.6228982, -0.023505481, -4.496571e-06, 0.7819497)
bones/25/rotation = Quaternion(0.42352107, -0.015981447, -3.7984141e-06, 0.9057453)
bones/25/scale = Vector3(1, 1, 1)
bones/26/name = "ring_04_leaf_l"
bones/26/parent = 25
@@ -19630,21 +19643,21 @@ bones/27/parent = 10
bones/27/rest = Transform3D(0, -0.577, 0.816, 0, 0.816, 0.577, -1, 0, 0, -0.03360002, 0.02729993, 0.022799803)
bones/27/enabled = true
bones/27/position = Vector3(-0.03360002, 0.02729993, 0.022799803)
bones/27/rotation = Quaternion(-0.12381917, 0.7195234, 0.20183541, 0.6528533)
bones/27/rotation = Quaternion(-0.21418707, 0.6738871, 0.21418677, 0.6738873)
bones/27/scale = Vector3(1, 0.99939233, 0.99939233)
bones/28/name = "LeftThumbProximal"
bones/28/parent = 27
bones/28/rest = Transform3D(0.99999994, 0, 0, 0, 0.9999999, 2.9802322e-08, 0, -2.9802322e-08, 0.9999999, -0.019199941, 0.03816641, 0.005296665)
bones/28/enabled = true
bones/28/position = Vector3(-0.019199941, 0.03816641, 0.005296665)
bones/28/rotation = Quaternion(0.18180695, 0.11012424, 0.060063306, 0.97530067)
bones/28/rotation = Quaternion(-3.3225461e-07, -1.2098091e-07, -2.5420556e-07, 1)
bones/28/scale = Vector3(0.99999994, 0.9999999, 0.9999999)
bones/29/name = "LeftThumbDistal"
bones/29/parent = 28
bones/29/rest = Transform3D(1, 0, 0, 0, 1.0000001, 0, 0, 0, 1.0000001, -0.021900143, 0.043532185, 0.0060270326)
bones/29/enabled = true
bones/29/position = Vector3(-0.021900143, 0.043532185, 0.0060270326)
bones/29/rotation = Quaternion(0.59942997, 0.27396563, 0.1946321, 0.7264606)
bones/29/rotation = Quaternion(1.1049305e-07, 6.664385e-08, 1.4723999e-07, 1)
bones/29/scale = Vector3(1, 1.0000001, 1.0000001)
bones/30/name = "thumb_04_leaf_l"
bones/30/parent = 29
@@ -19652,83 +19665,83 @@ bones/30/rest = Transform3D(0.6015796, -0.44539672, 0.6631167, 0.39881337, 0.887
bones/30/enabled = true
bones/30/position = Vector3(-0.018200096, 0.036257587, 0.0050497632)
bones/30/rotation = Quaternion(-0.030814808, 0.3790144, 0.2359555, 0.8942726)
bones/30/scale = Vector3(1.0001454, 1.0004877, 1.0005833)
bones/30/scale = Vector3(1.0001454, 1.0004876, 1.0005833)
bones/31/name = "RightShoulder"
bones/31/parent = 4
bones/31/rest = Transform3D(0, -1, 0, 0, 0, 1, -1, 0, 0, -0.0188, 0.14310004, 0.07629998)
bones/31/enabled = true
bones/31/position = Vector3(-0.0188, 0.14310004, 0.07629998)
bones/31/rotation = Quaternion(0.5410766, -0.47414726, -0.47513646, -0.5066221)
bones/31/rotation = Quaternion(0.4653403, -0.5231923, -0.581982, -0.41355187)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "RightUpperArm"
bones/32/parent = 31
bones/32/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.13680005, 0.17309996, -0.01710007)
bones/32/enabled = true
bones/32/position = Vector3(0.13680005, 0.17309996, -0.01710007)
bones/32/rotation = Quaternion(0.0796535, 0.8229885, -0.5623339, -0.011223189)
bones/32/rotation = Quaternion(-0.5746534, 0.7629577, -0.29604623, -0.0050707604)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "RightLowerArm"
bones/33/parent = 32
bones/33/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, -0.004699971, 0.2744, 1.6425727e-07)
bones/33/enabled = true
bones/33/position = Vector3(-0.004699971, 0.2744, 1.6425727e-07)
bones/33/rotation = Quaternion(0.28995654, 0.5505457, -0.20452261, 0.7556421)
bones/33/rotation = Quaternion(0.26061803, 0.7097086, -0.5588766, 0.3406597)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "RightHand"
bones/34/parent = 33
bones/34/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, -2.829891e-08, 0.27259997, 0.004700046)
bones/34/enabled = true
bones/34/position = Vector3(-2.829891e-08, 0.27259997, 0.004700046)
bones/34/rotation = Quaternion(0.11832662, -0.6995707, -0.05611654, 0.7024604)
bones/34/rotation = Quaternion(0.2154221, -0.082114436, -0.03242578, 0.97252214)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "RightIndexProximal"
bones/35/parent = 34
bones/35/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030900035, 0.11989994, 0.0019998003)
bones/35/enabled = true
bones/35/position = Vector3(0.030900035, 0.11989994, 0.0019998003)
bones/35/rotation = Quaternion(0.6295971, 2.8769072e-08, 4.1759718e-06, 0.7769218)
bones/35/rotation = Quaternion(-0.0018894076, -2.3841858e-07, 0.044270396, 0.99901783)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "RightIndexIntermediate"
bones/36/parent = 35
bones/36/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5648136e-10, 0.040700104, -1.0677797e-07)
bones/36/enabled = true
bones/36/position = Vector3(-5.5648136e-10, 0.040700104, -1.0677797e-07)
bones/36/rotation = Quaternion(0.6233415, 1.7438845e-07, 4.4640537e-06, 0.7819498)
bones/36/rotation = Quaternion(0.38319921, -0.02836375, 0.011775523, 0.923155)
bones/36/scale = Vector3(1, 1, 1)
bones/37/name = "RightIndexDistal"
bones/37/parent = 36
bones/37/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.121974e-10, 0.03480002, -1.0666921e-07)
bones/37/enabled = true
bones/37/position = Vector3(-6.121974e-10, 0.03480002, -1.0666921e-07)
bones/37/rotation = Quaternion(0.6233416, 8.720804e-08, 4.2308952e-06, 0.78194976)
bones/37/rotation = Quaternion(0.5064349, -1.3411044e-07, 4.470348e-06, 0.86227816)
bones/37/scale = Vector3(1, 1, 1)
bones/38/name = "index_04_leaf_r"
bones/38/parent = 37
bones/38/rest = Transform3D(-1.0000001, 1.173466e-07, -1.5419573e-07, 6.8917885e-08, 0.9999999, 1.3196864e-08, 1.7491357e-07, 2.6301036e-08, -0.9999999, 2.5607045e-09, 0.030099956, 1.2416471e-08)
bones/38/enabled = true
bones/38/position = Vector3(2.5607045e-09, 0.030099956, 1.2416471e-08)
bones/38/rotation = Quaternion(4.9972892e-09, 1, 4.193082e-08, -5.8335807e-08)
bones/38/rotation = Quaternion(1.9557778e-08, 1, -1.7506343e-09, -8.7456776e-08)
bones/38/scale = Vector3(1.0000001, 0.9999999, 0.9999999)
bones/39/name = "RightMiddleProximal"
bones/39/parent = 34
bones/39/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0052000335, 0.12159993, -0.00040023506)
bones/39/enabled = true
bones/39/position = Vector3(0.0052000335, 0.12159993, -0.00040023506)
bones/39/rotation = Quaternion(0.62889475, 0.029734792, 4.350848e-06, 0.7769217)
bones/39/rotation = Quaternion(0.6046183, 0.028586894, 0.03459153, 0.79525036)
bones/39/scale = Vector3(1, 1, 1)
bones/40/name = "RightMiddleIntermediate"
bones/40/parent = 39
bones/40/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0019999943, 0.04230002, -9.594936e-08)
bones/40/enabled = true
bones/40/position = Vector3(-0.0019999943, 0.04230002, -9.594936e-08)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.4966587e-06, 0.78194976)
bones/40/rotation = Quaternion(0.5162386, 0.077261716, -0.033125486, 0.8523092)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "RightMiddleDistal"
bones/41/parent = 40
bones/41/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0014999958, 0.033900008, 4.301159e-08)
bones/41/enabled = true
bones/41/position = Vector3(-0.0014999958, 0.033900008, 4.301159e-08)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.326954e-06, 0.7819494)
bones/41/rotation = Quaternion(0.29623953, 0.013778644, 1.2516977e-06, 0.95501435)
bones/41/scale = Vector3(1, 1, 1)
bones/42/name = "middle_04_leaf_r"
bones/42/parent = 41
@@ -19742,77 +19755,77 @@ bones/43/parent = 34
bones/43/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.040799975, 0.107699946, 0.0015997475)
bones/43/enabled = true
bones/43/position = Vector3(-0.040799975, 0.107699946, 0.0015997475)
bones/43/rotation = Quaternion(0.6630007, 0.044529956, -0.07369392, 0.74365073)
bones/43/rotation = Quaternion(0.80694354, 0.05419756, -0.041671038, 0.5866586)
bones/43/scale = Vector3(1, 1, 1)
bones/44/name = "RightLittleIntermediate"
bones/44/parent = 43
bones/44/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0026999926, 0.040199965, -4.7321702e-11)
bones/44/enabled = true
bones/44/position = Vector3(-0.0026999926, 0.040199965, -4.7321702e-11)
bones/44/rotation = Quaternion(0.6203664, 0.06229365, -0.01557291, 0.7816794)
bones/44/rotation = Quaternion(0.31627935, 0.13458802, -0.038931996, 0.93826324)
bones/44/scale = Vector3(1, 1, 1)
bones/45/name = "RightLittleDistal"
bones/45/parent = 44
bones/45/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0018999918, 0.027600035, -1.0417894e-08)
bones/45/enabled = true
bones/45/position = Vector3(-0.0018999918, 0.027600035, -1.0417894e-08)
bones/45/rotation = Quaternion(0.6219219, 0.04205143, 4.4810004e-06, 0.78194946)
bones/45/rotation = Quaternion(0.25646293, 0.017340943, 3.3676624e-06, 0.9663985)
bones/45/scale = Vector3(1, 1, 1)
bones/46/name = "pinky_04_leaf_r"
bones/46/parent = 45
bones/46/rest = Transform3D(-0.99772197, -0.0674616, -2.5873078e-07, -0.06746164, 0.9977217, 1.503156e-08, 1.7270258e-07, 4.6777405e-08, -0.9999999, -0.001899995, 0.028100003, -1.2148155e-07)
bones/46/enabled = true
bones/46/position = Vector3(-0.001899995, 0.028100003, -1.2148155e-07)
bones/46/rotation = Quaternion(-0.03375008, 0.99943036, 4.8276583e-08, -5.8037205e-08)
bones/46/rotation = Quaternion(-0.03375011, 0.99943036, 7.077092e-09, -1.322724e-07)
bones/46/scale = Vector3(1.0000001, 0.99999976, 0.9999999)
bones/47/name = "RightRingProximal"
bones/47/parent = 34
bones/47/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.017099975, 0.11909993, -0.00010018104)
bones/47/enabled = true
bones/47/position = Vector3(-0.017099975, 0.11909993, -0.00010018104)
bones/47/rotation = Quaternion(0.6291981, 0.022413788, 4.1188027e-06, 0.77692175)
bones/47/rotation = Quaternion(0.7688189, 0.027387554, -0.019950124, 0.6385684)
bones/47/scale = Vector3(1, 1, 1)
bones/48/name = "RightRingIntermediate"
bones/48/parent = 47
bones/48/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0013999942, 0.039300077, -2.1747476e-07)
bones/48/enabled = true
bones/48/position = Vector3(-0.0013999942, 0.039300077, -2.1747476e-07)
bones/48/rotation = Quaternion(0.62294656, 0.0221762, 4.4662743e-06, 0.7819501)
bones/48/rotation = Quaternion(0.32148638, 0.10910274, -0.03375864, 0.94000185)
bones/48/scale = Vector3(1, 1, 1)
bones/49/name = "RightRingDistal"
bones/49/parent = 48
bones/49/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0010999979, 0.030900003, -9.946502e-08)
bones/49/enabled = true
bones/49/position = Vector3(-0.0010999979, 0.030900003, -9.946502e-08)
bones/49/rotation = Quaternion(0.6228987, 0.02350526, 4.1732565e-06, 0.78194934)
bones/49/rotation = Quaternion(0.3906144, 0.0147405695, 3.0696388e-06, 0.9204363)
bones/49/scale = Vector3(1, 1, 1)
bones/50/name = "ring_04_leaf_r"
bones/50/parent = 49
bones/50/rest = Transform3D(-0.9992889, -0.037708856, -3.9285123e-07, -0.037708916, 0.99928814, 7.1365776e-09, 4.1251042e-07, 3.5821593e-08, -0.9999999, -0.0011999963, 0.031799987, 5.404123e-09)
bones/50/enabled = true
bones/50/position = Vector3(-0.0011999963, 0.031799987, 5.404123e-09)
bones/50/rotation = Quaternion(-0.018857837, 0.9998222, -1.4548527e-08, -2.3622121e-07)
bones/50/rotation = Quaternion(-0.018857807, 0.9998222, 1.4018108e-08, -2.0655628e-07)
bones/50/scale = Vector3(1.0000001, 0.99999934, 0.9999999)
bones/51/name = "RightThumbMetacarpal"
bones/51/parent = 34
bones/51/rest = Transform3D(0, 0.577, -0.816, 0, 0.816, 0.577, 1, 0, 0, 0.03360003, 0.02729996, 0.022799788)
bones/51/enabled = true
bones/51/position = Vector3(0.03360003, 0.02729996, 0.022799788)
bones/51/rotation = Quaternion(-0.12381923, -0.71952325, -0.2018356, 0.6528533)
bones/51/rotation = Quaternion(-0.06001975, -0.7160839, -0.2818967, 0.6357324)
bones/51/scale = Vector3(1, 0.99939233, 0.99939233)
bones/52/name = "RightThumbProximal"
bones/52/parent = 51
bones/52/rest = Transform3D(0.99999994, 0, 0, 0, 0.9999999, 2.9802322e-08, 0, -2.9802322e-08, 0.9999999, 0.019199956, 0.038166482, 0.005296612)
bones/52/enabled = true
bones/52/position = Vector3(0.019199956, 0.038166482, 0.005296612)
bones/52/rotation = Quaternion(0.18180704, -0.11012423, -0.06006331, 0.97530067)
bones/52/rotation = Quaternion(0.18916614, -0.26830974, 0.13073356, 0.9354864)
bones/52/scale = Vector3(0.99999994, 0.9999999, 0.9999999)
bones/53/name = "RightThumbDistal"
bones/53/parent = 52
bones/53/rest = Transform3D(1, 0, 0, 0, 1.0000001, 0, 0, 0, 1.0000001, 0.021899961, 0.04353219, 0.0060271067)
bones/53/enabled = true
bones/53/position = Vector3(0.021899961, 0.04353219, 0.0060271067)
bones/53/rotation = Quaternion(0.59943014, -0.27396527, -0.19463219, 0.7264605)
bones/53/rotation = Quaternion(0.41658878, -0.19039917, -0.13526444, 0.87858146)
bones/53/scale = Vector3(1, 1.0000001, 1.0000001)
bones/54/name = "thumb_04_leaf_r"
bones/54/parent = 53
@@ -19820,34 +19833,34 @@ bones/54/rest = Transform3D(0.6015796, 0.4453967, -0.6631166, -0.39881328, 0.887
bones/54/enabled = true
bones/54/position = Vector3(0.018199861, 0.03625768, 0.00504987)
bones/54/rotation = Quaternion(-0.030814791, -0.37901437, -0.23595548, 0.8942726)
bones/54/scale = Vector3(1.0001454, 1.0004876, 1.0005835)
bones/54/scale = Vector3(1.0001454, 1.0004877, 1.0005834)
bones/55/name = "LeftUpperLeg"
bones/55/parent = 1
bones/55/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, 0.089, 0.015400031, 0.051499985)
bones/55/enabled = true
bones/55/position = Vector3(0.089, 0.015400031, 0.051499985)
bones/55/rotation = Quaternion(-0.0013026018, 0.12700388, 0.98540676, -0.11332204)
bones/55/rotation = Quaternion(-0.00078904, 0.11607768, 0.98681295, -0.11280838)
bones/55/scale = Vector3(1, 1, 1)
bones/56/name = "LeftLowerLeg"
bones/56/parent = 55
bones/56/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -7.450581e-09, 0.40029997, -0.0027998893)
bones/56/enabled = true
bones/56/position = Vector3(-7.450581e-09, 0.40029997, -0.0027998893)
bones/56/rotation = Quaternion(0.017659737, 0.9805859, -0.16177222, 0.10940432)
bones/56/rotation = Quaternion(0.015998328, 0.98269093, -0.14611013, 0.11275837)
bones/56/scale = Vector3(1, 1, 1)
bones/57/name = "LeftFoot"
bones/57/parent = 56
bones/57/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -7.218184e-09, 0.42809996, 0.034399886)
bones/57/enabled = true
bones/57/position = Vector3(-7.218184e-09, 0.42809996, 0.034399886)
bones/57/rotation = Quaternion(-0.096044466, 0.7320531, -0.67438495, 0.008879307)
bones/57/rotation = Quaternion(-0.092097424, 0.7294667, -0.6776705, 0.012619125)
bones/57/scale = Vector3(1, 1, 1)
bones/58/name = "LeftToes"
bones/58/parent = 57
bones/58/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -3.933849e-09, 0.14900002, -0.08849997)
bones/58/enabled = true
bones/58/position = Vector3(-3.933849e-09, 0.14900002, -0.08849997)
bones/58/rotation = Quaternion(4.5368964e-08, 1, 5.9104984e-08, 2.8313277e-08)
bones/58/rotation = Quaternion(4.105099e-08, 1, 5.9604645e-08, 1.2867343e-08)
bones/58/scale = Vector3(1, 1, 1)
bones/59/name = "ball_leaf_l"
bones/59/parent = 58
@@ -19861,28 +19874,28 @@ bones/60/parent = 1
bones/60/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, -0.089, 0.015400031, 0.051499985)
bones/60/enabled = true
bones/60/position = Vector3(-0.089, 0.015400031, 0.051499985)
bones/60/rotation = Quaternion(0.0011372183, -0.09572886, 0.9888311, 0.114227556)
bones/60/rotation = Quaternion(0.00082032575, -0.1092699, 0.98706883, 0.1172803)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "RightLowerLeg"
bones/61/parent = 60
bones/61/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 7.450581e-09, 0.40029997, -0.0027998893)
bones/61/enabled = true
bones/61/position = Vector3(7.450581e-09, 0.40029997, -0.0027998893)
bones/61/rotation = Quaternion(-0.036037955, 0.930469, -0.099836566, -0.35065863)
bones/61/rotation = Quaternion(-0.030194327, 0.9287684, -0.08459321, -0.35961306)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "RightFoot"
bones/62/parent = 61
bones/62/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 7.683263e-09, 0.4280999, 0.034399875)
bones/62/enabled = true
bones/62/position = Vector3(7.683263e-09, 0.4280999, 0.034399875)
bones/62/rotation = Quaternion(0.16559078, 0.63940245, -0.750829, 0.00030067726)
bones/62/rotation = Quaternion(0.17524873, 0.6450124, -0.7437998, 0.0029911033)
bones/62/scale = Vector3(1, 1, 1)
bones/63/name = "RightToes"
bones/63/parent = 62
bones/63/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 3.5171341e-09, 0.14900002, -0.08849997)
bones/63/enabled = true
bones/63/position = Vector3(3.5171341e-09, 0.14900002, -0.08849997)
bones/63/rotation = Quaternion(-3.593684e-05, 0.99999905, 0.0014147965, -2.2199322e-06)
bones/63/rotation = Quaternion(-2.230305e-08, 1, 8.940697e-08, 2.2097256e-08)
bones/63/scale = Vector3(1, 1, 1)
bones/64/name = "ball_leaf_r"
bones/64/parent = 63
@@ -19940,15 +19953,12 @@ parameters/Crouch/blend_position = 0.0
parameters/Motion/blend_position = 0.002057613
[node name="MeleeSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_ghbft")
[node name="RangedSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_rclin")
[node name="ReloadSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = ExtResource("11_602kf")
[node name="Subviewport" type="SubViewport" parent="."]
@@ -19976,13 +19986,11 @@ show_percentage = false
[node name="StruggleUI" type="Sprite3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.75085443, 0)
visible = false
billboard = 1
texture = SubResource("ViewportTexture_yixtd")
[node name="WalkSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
stream = SubResource("AudioStreamRandomizer_8tr25")
volume_db = 80.0
unit_size = 23.18

View File

@@ -19430,7 +19430,6 @@ script = ExtResource("1_8supt")
projectile_template = ExtResource("2_ltmd0")
[node name="Model" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
[node name="GeneralSkeleton" type="Skeleton3D" parent="Model"]
unique_name_in_owner = true
@@ -19447,8 +19446,8 @@ bones/1/name = "Hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9167, -0.05010003)
bones/1/enabled = true
bones/1/position = Vector3(-0.0007328938, 0.87101936, -0.08622885)
bones/1/rotation = Quaternion(-0.040890746, -0.112898745, -0.0052762795, 0.99275076)
bones/1/position = Vector3(0.0035783986, 0.87028646, -0.087276146)
bones/1/rotation = Quaternion(-0.033985823, -0.113068104, -0.0042227297, 0.99299693)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Spine"
bones/2/parent = 1
@@ -19462,56 +19461,56 @@ bones/3/parent = 2
bones/3/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.12309997, 0.015199981)
bones/3/enabled = true
bones/3/position = Vector3(0, 0.12309997, 0.015199981)
bones/3/rotation = Quaternion(0.08572956, 0.00031751368, 0.0005701809, 0.9963182)
bones/3/rotation = Quaternion(0.09935148, 0.000311001, 0.00038528154, 0.9950523)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "UpperChest"
bones/4/parent = 3
bones/4/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.14120016, -0.004500025)
bones/4/enabled = true
bones/4/position = Vector3(0, 0.14120016, -0.004500025)
bones/4/rotation = Quaternion(0.08574654, 0.00097332295, -0.00031272857, 0.9963165)
bones/4/rotation = Quaternion(0.0993596, 0.00093416346, -4.954339e-05, 0.9950512)
bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Neck"
bones/5/parent = 4
bones/5/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.17280002, -0.005600037)
bones/5/enabled = true
bones/5/position = Vector3(0, 0.17280002, -0.005600037)
bones/5/rotation = Quaternion(-0.085740305, -0.0005980185, 0.00015731764, 0.9963174)
bones/5/rotation = Quaternion(-0.09935692, -0.00058916595, 2.1520977e-06, 0.9950517)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Head"
bones/6/parent = 5
bones/6/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.081100024, 0.0155999875)
bones/6/enabled = true
bones/6/position = Vector3(0, 0.081100024, 0.0155999875)
bones/6/rotation = Quaternion(0.049555123, 0.092761904, 0.011915421, 0.99438304)
bones/6/rotation = Quaternion(0.050695438, 0.093066566, 0.009045329, 0.9943273)
bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "LeftShoulder"
bones/7/parent = 4
bones/7/rest = Transform3D(0, 1, 0, 0, 0, 1, 1, 0, 0, 0.0188, 0.14310004, 0.07629998)
bones/7/enabled = true
bones/7/position = Vector3(0.0188, 0.14310004, 0.07629998)
bones/7/rotation = Quaternion(0.49939632, 0.52170205, 0.5287748, -0.4459008)
bones/7/rotation = Quaternion(0.5016779, 0.5209627, 0.5296114, -0.44320315)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "LeftUpperArm"
bones/8/parent = 7
bones/8/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.13680005, 0.17309996, -0.01710007)
bones/8/enabled = true
bones/8/position = Vector3(-0.13680005, 0.17309996, -0.01710007)
bones/8/rotation = Quaternion(-0.026602931, 0.82267, -0.567814, 0.009682478)
bones/8/rotation = Quaternion(-0.018290967, 0.82400405, -0.56620026, 0.010002998)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "LeftLowerArm"
bones/9/parent = 8
bones/9/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0.004699965, 0.27440003, 3.769936e-08)
bones/9/enabled = true
bones/9/position = Vector3(0.004699965, 0.27440003, 3.769936e-08)
bones/9/rotation = Quaternion(0.16140701, -0.67935175, 0.16613506, 0.6962961)
bones/9/rotation = Quaternion(0.16994551, -0.6821057, 0.17713998, 0.6888191)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "LeftHand"
bones/10/parent = 9
bones/10/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 2.0133815e-08, 0.27260005, 0.004700036)
bones/10/enabled = true
bones/10/position = Vector3(2.0133815e-08, 0.27260005, 0.004700036)
bones/10/rotation = Quaternion(0.098697186, 0.70702124, 0.062972814, 0.69743407)
bones/10/rotation = Quaternion(0.09773752, 0.70720583, 0.062021844, 0.69746727)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "LeftIndexProximal"
bones/11/parent = 10
@@ -19525,7 +19524,7 @@ bones/12/parent = 11
bones/12/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/enabled = true
bones/12/position = Vector3(-4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/rotation = Quaternion(0.62334186, 2.0268834e-08, -4.2690954e-06, 0.7819495)
bones/12/rotation = Quaternion(0.62334186, 2.0268828e-08, -4.269095e-06, 0.78194946)
bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "LeftIndexDistal"
bones/13/parent = 12
@@ -19658,35 +19657,35 @@ bones/31/parent = 4
bones/31/rest = Transform3D(0, -1, 0, 0, 0, 1, -1, 0, 0, -0.0188, 0.14310004, 0.07629998)
bones/31/enabled = true
bones/31/position = Vector3(-0.0188, 0.14310004, 0.07629998)
bones/31/rotation = Quaternion(0.54971313, -0.47258875, -0.47741523, -0.4965382)
bones/31/rotation = Quaternion(0.5522747, -0.47179142, -0.47765303, -0.49421963)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "RightUpperArm"
bones/32/parent = 31
bones/32/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.13680005, 0.17309996, -0.01710007)
bones/32/enabled = true
bones/32/position = Vector3(0.13680005, 0.17309996, -0.01710007)
bones/32/rotation = Quaternion(0.070963025, 0.82362676, -0.56250995, -0.013635286)
bones/32/rotation = Quaternion(0.05523748, 0.8201528, -0.5693277, -0.012820049)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "RightLowerArm"
bones/33/parent = 32
bones/33/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, -0.004699971, 0.2744, 1.6425727e-07)
bones/33/enabled = true
bones/33/position = Vector3(-0.004699971, 0.2744, 1.6425727e-07)
bones/33/rotation = Quaternion(0.29087102, 0.55626345, -0.20558362, 0.7507998)
bones/33/rotation = Quaternion(0.287982, 0.5648795, -0.20954835, 0.7443568)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "RightHand"
bones/34/parent = 33
bones/34/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, -2.829891e-08, 0.27259997, 0.004700046)
bones/34/enabled = true
bones/34/position = Vector3(-2.829891e-08, 0.27259997, 0.004700046)
bones/34/rotation = Quaternion(0.12028777, -0.6991298, -0.058104146, 0.70240474)
bones/34/rotation = Quaternion(0.12122572, -0.6989181, -0.059071515, 0.70237345)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "RightIndexProximal"
bones/35/parent = 34
bones/35/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030900035, 0.11989994, 0.0019998003)
bones/35/enabled = true
bones/35/position = Vector3(0.030900035, 0.11989994, 0.0019998003)
bones/35/rotation = Quaternion(0.6295971, 2.8769072e-08, 4.1759718e-06, 0.7769218)
bones/35/rotation = Quaternion(0.6295971, 2.8769083e-08, 4.1759718e-06, 0.77692175)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "RightIndexIntermediate"
bones/36/parent = 35
@@ -19721,14 +19720,14 @@ bones/40/parent = 39
bones/40/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0019999943, 0.04230002, -9.594936e-08)
bones/40/enabled = true
bones/40/position = Vector3(-0.0019999943, 0.04230002, -9.594936e-08)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.4966587e-06, 0.78194976)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.496629e-06, 0.78194976)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "RightMiddleDistal"
bones/41/parent = 40
bones/41/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0014999958, 0.033900008, 4.301159e-08)
bones/41/enabled = true
bones/41/position = Vector3(-0.0014999958, 0.033900008, 4.301159e-08)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.326954e-06, 0.7819494)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.3270115e-06, 0.7819494)
bones/41/scale = Vector3(1, 1, 1)
bones/42/name = "middle_04_leaf_r"
bones/42/parent = 41
@@ -19742,7 +19741,7 @@ bones/43/parent = 34
bones/43/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.040799975, 0.107699946, 0.0015997475)
bones/43/enabled = true
bones/43/position = Vector3(-0.040799975, 0.107699946, 0.0015997475)
bones/43/rotation = Quaternion(0.6630007, 0.044529956, -0.07369392, 0.74365073)
bones/43/rotation = Quaternion(0.6630007, 0.044529952, -0.07369392, 0.74365073)
bones/43/scale = Vector3(1, 1, 1)
bones/44/name = "RightLittleIntermediate"
bones/44/parent = 43
@@ -19826,28 +19825,28 @@ bones/55/parent = 1
bones/55/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, 0.089, 0.015400031, 0.051499985)
bones/55/enabled = true
bones/55/position = Vector3(0.089, 0.015400031, 0.051499985)
bones/55/rotation = Quaternion(-0.0013758647, 0.14514801, 0.9825068, -0.11666445)
bones/55/rotation = Quaternion(-0.0012875049, 0.15872778, 0.98051995, -0.115691364)
bones/55/scale = Vector3(1, 1, 1)
bones/56/name = "LeftLowerLeg"
bones/56/parent = 55
bones/56/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -7.450581e-09, 0.40029997, -0.0027998893)
bones/56/enabled = true
bones/56/position = Vector3(-7.450581e-09, 0.40029997, -0.0027998893)
bones/56/rotation = Quaternion(0.019550378, 0.9776327, -0.17951924, 0.107819065)
bones/56/rotation = Quaternion(0.021205574, 0.9747985, -0.19431588, 0.10751541)
bones/56/scale = Vector3(1, 1, 1)
bones/57/name = "LeftFoot"
bones/57/parent = 56
bones/57/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -7.218184e-09, 0.42809996, 0.034399886)
bones/57/enabled = true
bones/57/position = Vector3(-7.218184e-09, 0.42809996, 0.034399886)
bones/57/rotation = Quaternion(-0.09572972, 0.7170797, -0.6903439, 0.0076039)
bones/57/rotation = Quaternion(-0.09338482, 0.7142249, -0.69363207, 0.006069531)
bones/57/scale = Vector3(1, 1, 1)
bones/58/name = "LeftToes"
bones/58/parent = 57
bones/58/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -3.933849e-09, 0.14900002, -0.08849997)
bones/58/enabled = true
bones/58/position = Vector3(-3.933849e-09, 0.14900002, -0.08849997)
bones/58/rotation = Quaternion(4.6476497e-08, 1, 5.955227e-08, 2.799873e-08)
bones/58/rotation = Quaternion(4.657518e-08, 1, 5.7965877e-08, 2.7641883e-08)
bones/58/scale = Vector3(1, 1, 1)
bones/59/name = "ball_leaf_l"
bones/59/parent = 58
@@ -19861,28 +19860,28 @@ bones/60/parent = 1
bones/60/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, -0.089, 0.015400031, 0.051499985)
bones/60/enabled = true
bones/60/position = Vector3(-0.089, 0.015400031, 0.051499985)
bones/60/rotation = Quaternion(0.00032880568, -0.08772252, 0.98788196, 0.12803897)
bones/60/rotation = Quaternion(0.0010378001, -0.070010096, 0.9884011, 0.13476186)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "RightLowerLeg"
bones/61/parent = 60
bones/61/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 7.450581e-09, 0.40029997, -0.0027998893)
bones/61/enabled = true
bones/61/position = Vector3(7.450581e-09, 0.40029997, -0.0027998893)
bones/61/rotation = Quaternion(-0.0474711, 0.9277421, -0.13053513, -0.3464126)
bones/61/rotation = Quaternion(-0.05508089, 0.92485654, -0.15087481, -0.3447368)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "RightFoot"
bones/62/parent = 61
bones/62/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 7.683263e-09, 0.4280999, 0.034399875)
bones/62/enabled = true
bones/62/position = Vector3(7.683263e-09, 0.4280999, 0.034399875)
bones/62/rotation = Quaternion(0.16675825, 0.6255169, -0.7621795, 0.0016651292)
bones/62/rotation = Quaternion(0.16729471, 0.6259585, -0.76169723, 0.0023935277)
bones/62/scale = Vector3(1, 1, 1)
bones/63/name = "RightToes"
bones/63/parent = 62
bones/63/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 3.5171341e-09, 0.14900002, -0.08849997)
bones/63/enabled = true
bones/63/position = Vector3(3.5171341e-09, 0.14900002, -0.08849997)
bones/63/rotation = Quaternion(-8.577401e-05, 0.99999464, 0.0032863708, -1.2409903e-05)
bones/63/rotation = Quaternion(-2.7880405e-06, 1, 0.00010817407, -1.9588432e-08)
bones/63/scale = Vector3(1, 1, 1)
bones/64/name = "ball_leaf_r"
bones/64/parent = 63
@@ -19940,15 +19939,12 @@ parameters/Crouch/blend_position = 0.0
parameters/Motion/blend_position = 0.002057613
[node name="MeleeSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_ghbft")
[node name="RangedSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_rclin")
[node name="ReloadSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = ExtResource("11_h04yd")
[node name="Subviewport" type="SubViewport" parent="."]
@@ -19976,13 +19972,11 @@ show_percentage = false
[node name="StruggleUI" type="Sprite3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.75085443, 0)
visible = false
billboard = 1
texture = SubResource("ViewportTexture_yixtd")
[node name="WalkSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
stream = SubResource("AudioStreamRandomizer_8tr25")
volume_db = 80.0
unit_size = 23.18

View File

@@ -19430,7 +19430,6 @@ script = ExtResource("1_6whai")
projectile_template = ExtResource("2_w8pby")
[node name="Model" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
[node name="GeneralSkeleton" type="Skeleton3D" parent="Model"]
unique_name_in_owner = true
@@ -19447,8 +19446,8 @@ bones/1/name = "Hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9167, -0.05010003)
bones/1/enabled = true
bones/1/position = Vector3(-0.0025638156, 0.8756274, -0.08546088)
bones/1/rotation = Quaternion(-0.045415677, -0.1130729, -0.005606056, 0.9925324)
bones/1/position = Vector3(0.0058907853, 0.87681985, -0.08587572)
bones/1/rotation = Quaternion(-0.04371296, -0.113571204, -0.004594289, 0.99255717)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Spine"
bones/2/parent = 1
@@ -19462,56 +19461,56 @@ bones/3/parent = 2
bones/3/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.12309997, 0.015199981)
bones/3/enabled = true
bones/3/position = Vector3(0, 0.12309997, 0.015199981)
bones/3/rotation = Quaternion(0.08434574, 9.824781e-05, 0.0004899132, 0.9964364)
bones/3/rotation = Quaternion(0.09211567, -6.884248e-05, -3.4262594e-05, 0.9957484)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "UpperChest"
bones/4/parent = 3
bones/4/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.14120016, -0.004500025)
bones/4/enabled = true
bones/4/position = Vector3(0, 0.14120016, -0.004500025)
bones/4/rotation = Quaternion(0.08434601, 0.00030209115, -6.088444e-05, 0.9964365)
bones/4/rotation = Quaternion(0.092143066, -0.00027035174, 0.00086010795, 0.99574536)
bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Neck"
bones/5/parent = 4
bones/5/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.17280002, -0.005600037)
bones/5/enabled = true
bones/5/position = Vector3(0, 0.17280002, -0.005600037)
bones/5/rotation = Quaternion(-0.084346, -0.00018050426, -8.021084e-05, 0.99643654)
bones/5/rotation = Quaternion(-0.092136875, 0.00011046327, -0.00072176685, 0.99574614)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Head"
bones/6/parent = 5
bones/6/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.081100024, 0.0155999875)
bones/6/enabled = true
bones/6/position = Vector3(0, 0.081100024, 0.0155999875)
bones/6/rotation = Quaternion(0.066666156, 0.09334051, 0.010397589, 0.99334544)
bones/6/rotation = Quaternion(0.07963282, 0.09391119, 0.006821567, 0.9923673)
bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "LeftShoulder"
bones/7/parent = 4
bones/7/rest = Transform3D(0, 1, 0, 0, 0, 1, 1, 0, 0, 0.0188, 0.14310004, 0.07629998)
bones/7/enabled = true
bones/7/position = Vector3(0.0188, 0.14310004, 0.07629998)
bones/7/rotation = Quaternion(0.49232474, 0.52423346, 0.5267168, -0.45317224)
bones/7/rotation = Quaternion(0.48838937, 0.5258198, 0.5259783, -0.45643872)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "LeftUpperArm"
bones/8/parent = 7
bones/8/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.13680005, 0.17309996, -0.01710007)
bones/8/enabled = true
bones/8/position = Vector3(-0.13680005, 0.17309996, -0.01710007)
bones/8/rotation = Quaternion(-0.04792774, 0.8191922, -0.5714158, 0.0105498275)
bones/8/rotation = Quaternion(-0.0550842, 0.8187982, -0.57127297, 0.013505305)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "LeftLowerArm"
bones/9/parent = 8
bones/9/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0.004699965, 0.27440003, 3.769936e-08)
bones/9/enabled = true
bones/9/position = Vector3(0.004699965, 0.27440003, 3.769936e-08)
bones/9/rotation = Quaternion(0.17626457, -0.6631221, 0.17249054, 0.7067156)
bones/9/rotation = Quaternion(0.19448301, -0.6548683, 0.18500713, 0.7064674)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "LeftHand"
bones/10/parent = 9
bones/10/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 2.0133815e-08, 0.27260005, 0.004700036)
bones/10/enabled = true
bones/10/position = Vector3(2.0133815e-08, 0.27260005, 0.004700036)
bones/10/rotation = Quaternion(0.10016495, 0.70673794, 0.06444844, 0.6973772)
bones/10/rotation = Quaternion(0.09940687, 0.7068844, 0.06368306, 0.6974075)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "LeftIndexProximal"
bones/11/parent = 10
@@ -19525,7 +19524,7 @@ bones/12/parent = 11
bones/12/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/enabled = true
bones/12/position = Vector3(-4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/rotation = Quaternion(0.62334186, 2.0268834e-08, -4.2690954e-06, 0.7819495)
bones/12/rotation = Quaternion(0.62334186, 2.0268828e-08, -4.269095e-06, 0.78194946)
bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "LeftIndexDistal"
bones/13/parent = 12
@@ -19658,35 +19657,35 @@ bones/31/parent = 4
bones/31/rest = Transform3D(0, -1, 0, 0, 0, 1, -1, 0, 0, -0.0188, 0.14310004, 0.07629998)
bones/31/enabled = true
bones/31/position = Vector3(-0.0188, 0.14310004, 0.07629998)
bones/31/rotation = Quaternion(0.543032, -0.47399366, -0.47592238, -0.5039289)
bones/31/rotation = Quaternion(0.54024076, -0.47401735, -0.4745282, -0.50820315)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "RightUpperArm"
bones/32/parent = 31
bones/32/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.13680005, 0.17309996, -0.01710007)
bones/32/enabled = true
bones/32/position = Vector3(0.13680005, 0.17309996, -0.01710007)
bones/32/rotation = Quaternion(0.08615736, 0.8249933, -0.55839694, -0.012486909)
bones/32/rotation = Quaternion(0.0878418, 0.82396096, -0.5596979, -0.010513932)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "RightLowerArm"
bones/33/parent = 32
bones/33/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, -0.004699971, 0.2744, 1.6425727e-07)
bones/33/enabled = true
bones/33/position = Vector3(-0.004699971, 0.2744, 1.6425727e-07)
bones/33/rotation = Quaternion(0.29221416, 0.5469413, -0.20242546, 0.7579514)
bones/33/rotation = Quaternion(0.29096532, 0.5455984, -0.20283404, 0.7592892)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "RightHand"
bones/34/parent = 33
bones/34/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, -2.829891e-08, 0.27259997, 0.004700046)
bones/34/enabled = true
bones/34/position = Vector3(-2.829891e-08, 0.27259997, 0.004700046)
bones/34/rotation = Quaternion(0.11883263, -0.6994573, -0.056624856, 0.7024472)
bones/34/rotation = Quaternion(0.11958737, -0.69928753, -0.057388805, 0.7024261)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "RightIndexProximal"
bones/35/parent = 34
bones/35/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030900035, 0.11989994, 0.0019998003)
bones/35/enabled = true
bones/35/position = Vector3(0.030900035, 0.11989994, 0.0019998003)
bones/35/rotation = Quaternion(0.6295971, 2.8769072e-08, 4.1759718e-06, 0.7769218)
bones/35/rotation = Quaternion(0.6295971, 2.8769083e-08, 4.1759718e-06, 0.77692175)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "RightIndexIntermediate"
bones/36/parent = 35
@@ -19721,14 +19720,14 @@ bones/40/parent = 39
bones/40/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0019999943, 0.04230002, -9.594936e-08)
bones/40/enabled = true
bones/40/position = Vector3(-0.0019999943, 0.04230002, -9.594936e-08)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.4966587e-06, 0.78194976)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.496629e-06, 0.78194976)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "RightMiddleDistal"
bones/41/parent = 40
bones/41/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0014999958, 0.033900008, 4.301159e-08)
bones/41/enabled = true
bones/41/position = Vector3(-0.0014999958, 0.033900008, 4.301159e-08)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.326954e-06, 0.7819494)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.3270115e-06, 0.7819494)
bones/41/scale = Vector3(1, 1, 1)
bones/42/name = "middle_04_leaf_r"
bones/42/parent = 41
@@ -19742,7 +19741,7 @@ bones/43/parent = 34
bones/43/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.040799975, 0.107699946, 0.0015997475)
bones/43/enabled = true
bones/43/position = Vector3(-0.040799975, 0.107699946, 0.0015997475)
bones/43/rotation = Quaternion(0.6630007, 0.044529956, -0.07369392, 0.74365073)
bones/43/rotation = Quaternion(0.6630007, 0.044529952, -0.07369392, 0.74365073)
bones/43/scale = Vector3(1, 1, 1)
bones/44/name = "RightLittleIntermediate"
bones/44/parent = 43
@@ -19826,28 +19825,28 @@ bones/55/parent = 1
bones/55/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, 0.089, 0.015400031, 0.051499985)
bones/55/enabled = true
bones/55/position = Vector3(0.089, 0.015400031, 0.051499985)
bones/55/rotation = Quaternion(-0.0018068515, 0.12977028, 0.9849287, -0.114332065)
bones/55/rotation = Quaternion(-0.000746168, 0.12113166, 0.9867302, -0.10812065)
bones/55/scale = Vector3(1, 1, 1)
bones/56/name = "LeftLowerLeg"
bones/56/parent = 55
bones/56/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -7.450581e-09, 0.40029997, -0.0027998893)
bones/56/enabled = true
bones/56/position = Vector3(-7.450581e-09, 0.40029997, -0.0027998893)
bones/56/rotation = Quaternion(0.017952427, 0.9800376, -0.16544186, 0.1087792)
bones/56/rotation = Quaternion(0.016855104, 0.9818568, -0.15339416, 0.110197134)
bones/56/scale = Vector3(1, 1, 1)
bones/57/name = "LeftFoot"
bones/57/parent = 56
bones/57/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -7.218184e-09, 0.42809996, 0.034399886)
bones/57/enabled = true
bones/57/position = Vector3(-7.218184e-09, 0.42809996, 0.034399886)
bones/57/rotation = Quaternion(-0.096428044, 0.72722596, -0.67953897, 0.008423382)
bones/57/rotation = Quaternion(-0.09245131, 0.7269736, -0.6803805, 0.0066690515)
bones/57/scale = Vector3(1, 1, 1)
bones/58/name = "LeftToes"
bones/58/parent = 57
bones/58/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -3.933849e-09, 0.14900002, -0.08849997)
bones/58/enabled = true
bones/58/position = Vector3(-3.933849e-09, 0.14900002, -0.08849997)
bones/58/rotation = Quaternion(4.5906763e-08, 1, 5.9348327e-08, 2.8165825e-08)
bones/58/rotation = Quaternion(0.0001911232, 0.9999878, 0.0049433312, 4.2000767e-05)
bones/58/scale = Vector3(1, 1, 1)
bones/59/name = "ball_leaf_l"
bones/59/parent = 58
@@ -19861,28 +19860,28 @@ bones/60/parent = 1
bones/60/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, -0.089, 0.015400031, 0.051499985)
bones/60/enabled = true
bones/60/position = Vector3(-0.089, 0.015400031, 0.051499985)
bones/60/rotation = Quaternion(0.000749186, -0.10171321, 0.9880044, 0.11619519)
bones/60/rotation = Quaternion(0.001525715, -0.0988607, 0.98845094, 0.11484319)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "RightLowerLeg"
bones/61/parent = 60
bones/61/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 7.450581e-09, 0.40029997, -0.0027998893)
bones/61/enabled = true
bones/61/position = Vector3(7.450581e-09, 0.40029997, -0.0027998893)
bones/61/rotation = Quaternion(-0.037605032, 0.93026084, -0.10409464, -0.3498072)
bones/61/rotation = Quaternion(-0.030458855, 0.9317075, -0.085165486, -0.3517672)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "RightFoot"
bones/62/parent = 61
bones/62/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 7.683263e-09, 0.4280999, 0.034399875)
bones/62/enabled = true
bones/62/position = Vector3(7.683263e-09, 0.4280999, 0.034399875)
bones/62/rotation = Quaternion(0.1661122, 0.63684976, -0.7528805, 0.00033434457)
bones/62/rotation = Quaternion(0.16811803, 0.6457038, -0.74484575, -0.002813183)
bones/62/scale = Vector3(1, 1, 1)
bones/63/name = "RightToes"
bones/63/parent = 62
bones/63/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 3.5171341e-09, 0.14900002, -0.08849997)
bones/63/enabled = true
bones/63/position = Vector3(3.5171341e-09, 0.14900002, -0.08849997)
bones/63/rotation = Quaternion(-6.9096524e-05, 0.9999964, 0.00267778, -8.130566e-06)
bones/63/rotation = Quaternion(-6.46722e-08, 1, 8.867271e-08, 3.034323e-09)
bones/63/scale = Vector3(1, 1, 1)
bones/64/name = "ball_leaf_r"
bones/64/parent = 63
@@ -19940,15 +19939,12 @@ parameters/Crouch/blend_position = 0.0
parameters/Motion/blend_position = 0.002057613
[node name="MeleeSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_ghbft")
[node name="RangedSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_rclin")
[node name="ReloadSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = ExtResource("11_bd00j")
[node name="Subviewport" type="SubViewport" parent="."]
@@ -19976,13 +19972,11 @@ show_percentage = false
[node name="StruggleUI" type="Sprite3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.75085443, 0)
visible = false
billboard = 1
texture = SubResource("ViewportTexture_yixtd")
[node name="WalkSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
stream = SubResource("AudioStreamRandomizer_8tr25")
volume_db = 80.0
unit_size = 23.18

View File

@@ -19430,7 +19430,6 @@ script = ExtResource("1_d2882")
projectile_template = ExtResource("2_qv76n")
[node name="Model" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
[node name="GeneralSkeleton" type="Skeleton3D" parent="Model"]
unique_name_in_owner = true
@@ -19447,8 +19446,8 @@ bones/1/name = "Hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9167, -0.05010003)
bones/1/enabled = true
bones/1/position = Vector3(0.005574269, 0.8755195, -0.08624316)
bones/1/rotation = Quaternion(-0.04090682, -0.113633506, -0.004265207, 0.99267113)
bones/1/position = Vector3(0.0042645712, 0.8748299, -0.08550102)
bones/1/rotation = Quaternion(-0.04534594, -0.11352874, -0.0050549675, 0.99248654)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Spine"
bones/2/parent = 1
@@ -19462,56 +19461,56 @@ bones/3/parent = 2
bones/3/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.12309997, 0.015199981)
bones/3/enabled = true
bones/3/position = Vector3(0, 0.12309997, 0.015199981)
bones/3/rotation = Quaternion(0.09631412, -0.000108351356, -2.431958e-05, 0.99535096)
bones/3/rotation = Quaternion(0.084504776, -9.890261e-05, 0.0001838734, 0.99642307)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "UpperChest"
bones/4/parent = 3
bones/4/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.14120016, -0.004500025)
bones/4/enabled = true
bones/4/position = Vector3(0, 0.14120016, -0.004500025)
bones/4/rotation = Quaternion(0.09633294, -0.00039006156, 0.0008636003, 0.9953488)
bones/4/rotation = Quaternion(0.08451262, -0.0003157211, 0.00058076094, 0.99642223)
bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Neck"
bones/5/parent = 4
bones/5/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.17280002, -0.005600037)
bones/5/enabled = true
bones/5/position = Vector3(0, 0.17280002, -0.005600037)
bones/5/rotation = Quaternion(-0.09632571, 0.000184314, -0.00074373465, 0.9953496)
bones/5/rotation = Quaternion(-0.08450983, 0.00017172996, -0.0005535491, 0.9964225)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Head"
bones/6/parent = 5
bones/6/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.081100024, 0.0155999875)
bones/6/enabled = true
bones/6/position = Vector3(0, 0.081100024, 0.0155999875)
bones/6/rotation = Quaternion(0.07657449, 0.09402677, 0.0063171024, 0.9926004)
bones/6/rotation = Quaternion(0.0643297, 0.09366626, 0.010036925, 0.9934725)
bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "LeftShoulder"
bones/7/parent = 4
bones/7/rest = Transform3D(0, 1, 0, 0, 0, 1, 1, 0, 0, 0.0188, 0.14310004, 0.07629998)
bones/7/enabled = true
bones/7/position = Vector3(0.0188, 0.14310004, 0.07629998)
bones/7/rotation = Quaternion(0.4905012, 0.5251041, 0.52663684, -0.4542333)
bones/7/rotation = Quaternion(0.49271595, 0.52426314, 0.5271608, -0.45219538)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "LeftUpperArm"
bones/8/parent = 7
bones/8/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.13680005, 0.17309996, -0.01710007)
bones/8/enabled = true
bones/8/position = Vector3(-0.13680005, 0.17309996, -0.01710007)
bones/8/rotation = Quaternion(-0.04774507, 0.8200236, -0.57017225, 0.013615374)
bones/8/rotation = Quaternion(-0.042781785, 0.8202811, -0.57022136, 0.012503532)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "LeftLowerArm"
bones/9/parent = 8
bones/9/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0.004699965, 0.27440003, 3.769936e-08)
bones/9/enabled = true
bones/9/position = Vector3(0.004699965, 0.27440003, 3.769936e-08)
bones/9/rotation = Quaternion(0.19398732, -0.65948683, 0.18701304, 0.7017637)
bones/9/rotation = Quaternion(0.17573594, -0.6667964, 0.17210805, 0.7034759)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "LeftHand"
bones/10/parent = 9
bones/10/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 2.0133815e-08, 0.27260005, 0.004700036)
bones/10/enabled = true
bones/10/position = Vector3(2.0133815e-08, 0.27260005, 0.004700036)
bones/10/rotation = Quaternion(0.09983649, 0.7068015, 0.06411595, 0.6973906)
bones/10/rotation = Quaternion(0.100653686, 0.7066435, 0.06494543, 0.6973564)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "LeftIndexProximal"
bones/11/parent = 10
@@ -19525,7 +19524,7 @@ bones/12/parent = 11
bones/12/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/enabled = true
bones/12/position = Vector3(-4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/rotation = Quaternion(0.62334186, 2.0268834e-08, -4.2690954e-06, 0.7819495)
bones/12/rotation = Quaternion(0.62334186, 2.0268828e-08, -4.269095e-06, 0.78194946)
bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "LeftIndexDistal"
bones/13/parent = 12
@@ -19658,35 +19657,35 @@ bones/31/parent = 4
bones/31/rest = Transform3D(0, -1, 0, 0, 0, 1, -1, 0, 0, -0.0188, 0.14310004, 0.07629998)
bones/31/enabled = true
bones/31/position = Vector3(-0.0188, 0.14310004, 0.07629998)
bones/31/rotation = Quaternion(0.54231256, -0.47354805, -0.47494215, -0.5060428)
bones/31/rotation = Quaternion(0.5441236, -0.4733411, -0.47558567, -0.50368243)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "RightUpperArm"
bones/32/parent = 31
bones/32/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.13680005, 0.17309996, -0.01710007)
bones/32/enabled = true
bones/32/position = Vector3(0.13680005, 0.17309996, -0.01710007)
bones/32/rotation = Quaternion(0.080904864, 0.8227587, -0.5625072, -0.0103966305)
bones/32/rotation = Quaternion(0.089283906, 0.8244131, -0.5587953, -0.010921587)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "RightLowerArm"
bones/33/parent = 32
bones/33/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, -0.004699971, 0.2744, 1.6425727e-07)
bones/33/enabled = true
bones/33/position = Vector3(-0.004699971, 0.2744, 1.6425727e-07)
bones/33/rotation = Quaternion(0.28962183, 0.54968536, -0.20453429, 0.7563935)
bones/33/rotation = Quaternion(0.29129902, 0.5448649, -0.20238465, 0.7598075)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "RightHand"
bones/34/parent = 33
bones/34/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, -2.829891e-08, 0.27259997, 0.004700046)
bones/34/enabled = true
bones/34/position = Vector3(-2.829891e-08, 0.27259997, 0.004700046)
bones/34/rotation = Quaternion(0.1191605, -0.6993836, -0.05695583, 0.70243824)
bones/34/rotation = Quaternion(0.11834249, -0.69956714, -0.056132432, 0.70246)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "RightIndexProximal"
bones/35/parent = 34
bones/35/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030900035, 0.11989994, 0.0019998003)
bones/35/enabled = true
bones/35/position = Vector3(0.030900035, 0.11989994, 0.0019998003)
bones/35/rotation = Quaternion(0.6295971, 2.8769072e-08, 4.1759718e-06, 0.7769218)
bones/35/rotation = Quaternion(0.6295971, 2.8769083e-08, 4.1759718e-06, 0.77692175)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "RightIndexIntermediate"
bones/36/parent = 35
@@ -19721,14 +19720,14 @@ bones/40/parent = 39
bones/40/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0019999943, 0.04230002, -9.594936e-08)
bones/40/enabled = true
bones/40/position = Vector3(-0.0019999943, 0.04230002, -9.594936e-08)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.4966587e-06, 0.78194976)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.496629e-06, 0.78194976)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "RightMiddleDistal"
bones/41/parent = 40
bones/41/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0014999958, 0.033900008, 4.301159e-08)
bones/41/enabled = true
bones/41/position = Vector3(-0.0014999958, 0.033900008, 4.301159e-08)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.326954e-06, 0.7819494)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.3270115e-06, 0.7819494)
bones/41/scale = Vector3(1, 1, 1)
bones/42/name = "middle_04_leaf_r"
bones/42/parent = 41
@@ -19742,7 +19741,7 @@ bones/43/parent = 34
bones/43/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.040799975, 0.107699946, 0.0015997475)
bones/43/enabled = true
bones/43/position = Vector3(-0.040799975, 0.107699946, 0.0015997475)
bones/43/rotation = Quaternion(0.6630007, 0.044529956, -0.07369392, 0.74365073)
bones/43/rotation = Quaternion(0.6630007, 0.044529952, -0.07369392, 0.74365073)
bones/43/scale = Vector3(1, 1, 1)
bones/44/name = "RightLittleIntermediate"
bones/44/parent = 43
@@ -19826,28 +19825,28 @@ bones/55/parent = 1
bones/55/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, 0.089, 0.015400031, 0.051499985)
bones/55/enabled = true
bones/55/position = Vector3(0.089, 0.015400031, 0.051499985)
bones/55/rotation = Quaternion(-0.0006689172, 0.12762417, 0.9857714, -0.10939051)
bones/55/rotation = Quaternion(-0.00095228496, 0.1270012, 0.98568875, -0.110849224)
bones/55/scale = Vector3(1, 1, 1)
bones/56/name = "LeftLowerLeg"
bones/56/parent = 55
bones/56/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -7.450581e-09, 0.40029997, -0.0027998893)
bones/56/enabled = true
bones/56/position = Vector3(-7.450581e-09, 0.40029997, -0.0027998893)
bones/56/rotation = Quaternion(0.017698636, 0.9806428, -0.16120204, 0.10972883)
bones/56/rotation = Quaternion(0.018931953, 0.9787562, -0.17256525, 0.10908367)
bones/56/scale = Vector3(1, 1, 1)
bones/57/name = "LeftFoot"
bones/57/parent = 56
bones/57/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -7.218184e-09, 0.42809996, 0.034399886)
bones/57/enabled = true
bones/57/position = Vector3(-7.218184e-09, 0.42809996, 0.034399886)
bones/57/rotation = Quaternion(-0.0925149, 0.72437215, -0.68314046, 0.00671727)
bones/57/rotation = Quaternion(-0.093163215, 0.7262054, -0.68111247, 0.005678429)
bones/57/scale = Vector3(1, 1, 1)
bones/58/name = "LeftToes"
bones/58/parent = 57
bones/58/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -3.933849e-09, 0.14900002, -0.08849997)
bones/58/enabled = true
bones/58/position = Vector3(-3.933849e-09, 0.14900002, -0.08849997)
bones/58/rotation = Quaternion(0.00017265085, 0.99998975, 0.0045258277, 3.465564e-05)
bones/58/rotation = Quaternion(4.516369e-08, 1, 5.9012102e-08, 2.8369557e-08)
bones/58/scale = Vector3(1, 1, 1)
bones/59/name = "ball_leaf_l"
bones/59/parent = 58
@@ -19861,28 +19860,28 @@ bones/60/parent = 1
bones/60/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, -0.089, 0.015400031, 0.051499985)
bones/60/enabled = true
bones/60/position = Vector3(-0.089, 0.015400031, 0.051499985)
bones/60/rotation = Quaternion(0.0016175861, -0.09062679, 0.9887162, 0.11926638)
bones/60/rotation = Quaternion(0.0013847166, -0.09644216, 0.9880318, 0.12037537)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "RightLowerLeg"
bones/61/parent = 60
bones/61/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 7.450581e-09, 0.40029997, -0.0027998893)
bones/61/enabled = true
bones/61/position = Vector3(7.450581e-09, 0.40029997, -0.0027998893)
bones/61/rotation = Quaternion(-0.035620138, 0.93069524, -0.09881665, -0.3503898)
bones/61/rotation = Quaternion(-0.038029958, 0.930211, -0.10531431, -0.34952837)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "RightFoot"
bones/62/parent = 61
bones/62/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 7.683263e-09, 0.4280999, 0.034399875)
bones/62/enabled = true
bones/62/position = Vector3(7.683263e-09, 0.4280999, 0.034399875)
bones/62/rotation = Quaternion(0.16796975, 0.6402663, -0.74956095, -0.0019032309)
bones/62/rotation = Quaternion(0.16806103, 0.6395543, -0.7501501, -0.0009114338)
bones/62/scale = Vector3(1, 1, 1)
bones/63/name = "RightToes"
bones/63/parent = 62
bones/63/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 3.5171341e-09, 0.14900002, -0.08849997)
bones/63/enabled = true
bones/63/position = Vector3(3.5171341e-09, 0.14900002, -0.08849997)
bones/63/rotation = Quaternion(-6.6901464e-07, 1, 2.4017418e-05, 1.5630183e-09)
bones/63/rotation = Quaternion(-2.3502384e-05, 0.9999996, 0.00092779385, -9.513219e-07)
bones/63/scale = Vector3(1, 1, 1)
bones/64/name = "ball_leaf_r"
bones/64/parent = 63
@@ -19940,15 +19939,12 @@ parameters/Crouch/blend_position = 0.0
parameters/Motion/blend_position = 0.002057613
[node name="MeleeSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_ghbft")
[node name="RangedSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_rclin")
[node name="ReloadSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = ExtResource("11_31rrw")
[node name="Subviewport" type="SubViewport" parent="."]
@@ -19976,13 +19972,11 @@ show_percentage = false
[node name="StruggleUI" type="Sprite3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.75085443, 0)
visible = false
billboard = 1
texture = SubResource("ViewportTexture_yixtd")
[node name="WalkSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
stream = SubResource("AudioStreamRandomizer_8tr25")
volume_db = 80.0
unit_size = 23.18

View File

@@ -19429,7 +19429,6 @@ script = ExtResource("1_0wnch")
projectile_template = ExtResource("2_0os2k")
[node name="Model" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
[node name="GeneralSkeleton" type="Skeleton3D" parent="Model"]
unique_name_in_owner = true
@@ -19446,8 +19445,8 @@ bones/1/name = "Hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9167, -0.05010003)
bones/1/enabled = true
bones/1/position = Vector3(-0.0016600662, 0.87612575, -0.085451)
bones/1/rotation = Quaternion(-0.045864392, -0.11305309, -0.005547559, 0.9925144)
bones/1/position = Vector3(0.0044895806, 0.877053, -0.08615181)
bones/1/rotation = Quaternion(-0.04155466, -0.11325949, -0.004972296, 0.9926837)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Spine"
bones/2/parent = 1
@@ -19461,56 +19460,56 @@ bones/3/parent = 2
bones/3/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.12309997, 0.015199981)
bones/3/enabled = true
bones/3/position = Vector3(0, 0.12309997, 0.015199981)
bones/3/rotation = Quaternion(0.085763186, 0.00028054538, 0.00035265, 0.9963155)
bones/3/rotation = Quaternion(0.09553866, 1.7329065e-05, 0.0003837751, 0.99542564)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "UpperChest"
bones/4/parent = 3
bones/4/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.14120016, -0.004500025)
bones/4/enabled = true
bones/4/position = Vector3(0, 0.14120016, -0.004500025)
bones/4/rotation = Quaternion(0.08577239, 0.0008301627, 2.7710943e-05, 0.9963144)
bones/4/rotation = Quaternion(0.09553722, 5.4219578e-05, 0.00014699828, 0.9954259)
bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Neck"
bones/5/parent = 4
bones/5/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.17280002, -0.005600037)
bones/5/enabled = true
bones/5/position = Vector3(0, 0.17280002, -0.005600037)
bones/5/rotation = Quaternion(-0.08577083, -0.0005333681, -6.7883135e-05, 0.99631476)
bones/5/rotation = Quaternion(-0.095537856, -3.5485977e-05, -0.00024328716, 0.99542576)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Head"
bones/6/parent = 5
bones/6/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.081100024, 0.0155999875)
bones/6/enabled = true
bones/6/position = Vector3(0, 0.081100024, 0.0155999875)
bones/6/rotation = Quaternion(0.071368344, 0.09305658, 0.009607097, 0.99305326)
bones/6/rotation = Quaternion(0.07830661, 0.09378848, 0.0068963896, 0.99248385)
bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "LeftShoulder"
bones/7/parent = 4
bones/7/rest = Transform3D(0, 1, 0, 0, 0, 1, 1, 0, 0, 0.0188, 0.14310004, 0.07629998)
bones/7/enabled = true
bones/7/position = Vector3(0.0188, 0.14310004, 0.07629998)
bones/7/rotation = Quaternion(0.49028015, 0.524968, 0.5261498, -0.45519266)
bones/7/rotation = Quaternion(0.49015304, 0.5250311, 0.5261494, -0.45525736)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "LeftUpperArm"
bones/8/parent = 7
bones/8/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.13680005, 0.17309996, -0.01710007)
bones/8/enabled = true
bones/8/position = Vector3(-0.13680005, 0.17309996, -0.01710007)
bones/8/rotation = Quaternion(-0.053926907, 0.8182545, -0.57221866, 0.010835223)
bones/8/rotation = Quaternion(-0.053745493, 0.81830615, -0.57215565, 0.011155514)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "LeftLowerArm"
bones/9/parent = 8
bones/9/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0.004699965, 0.27440003, 3.769936e-08)
bones/9/enabled = true
bones/9/position = Vector3(0.004699965, 0.27440003, 3.769936e-08)
bones/9/rotation = Quaternion(0.18121533, -0.65820575, 0.17555758, 0.7092995)
bones/9/rotation = Quaternion(0.19388121, -0.65521055, 0.18622604, 0.7059951)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "LeftHand"
bones/10/parent = 9
bones/10/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 2.0133815e-08, 0.27260005, 0.004700036)
bones/10/enabled = true
bones/10/position = Vector3(2.0133815e-08, 0.27260005, 0.004700036)
bones/10/rotation = Quaternion(0.09770074, 0.7072129, 0.061985604, 0.69746846)
bones/10/rotation = Quaternion(0.10053076, 0.70666724, 0.06482015, 0.6973617)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "LeftIndexProximal"
bones/11/parent = 10
@@ -19524,7 +19523,7 @@ bones/12/parent = 11
bones/12/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/enabled = true
bones/12/position = Vector3(-4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/rotation = Quaternion(0.62334186, 2.0268834e-08, -4.2690954e-06, 0.7819495)
bones/12/rotation = Quaternion(0.62334186, 2.0268828e-08, -4.269095e-06, 0.78194946)
bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "LeftIndexDistal"
bones/13/parent = 12
@@ -19657,35 +19656,35 @@ bones/31/parent = 4
bones/31/rest = Transform3D(0, -1, 0, 0, 0, 1, -1, 0, 0, -0.0188, 0.14310004, 0.07629998)
bones/31/enabled = true
bones/31/position = Vector3(-0.0188, 0.14310004, 0.07629998)
bones/31/rotation = Quaternion(0.54117733, -0.47432834, -0.47543794, -0.50606173)
bones/31/rotation = Quaternion(0.5411382, -0.47428846, -0.47536317, -0.5062112)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "RightUpperArm"
bones/32/parent = 31
bones/32/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.13680005, 0.17309996, -0.01710007)
bones/32/enabled = true
bones/32/position = Vector3(0.13680005, 0.17309996, -0.01710007)
bones/32/rotation = Quaternion(0.087934904, 0.8254735, -0.5574047, -0.0126849115)
bones/32/rotation = Quaternion(0.08061493, 0.8235483, -0.5613639, -0.011832971)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "RightLowerArm"
bones/33/parent = 32
bones/33/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, -0.004699971, 0.2744, 1.6425727e-07)
bones/33/enabled = true
bones/33/position = Vector3(-0.004699971, 0.2744, 1.6425727e-07)
bones/33/rotation = Quaternion(0.293253, 0.546503, -0.20216428, 0.7579358)
bones/33/rotation = Quaternion(0.29066324, 0.5500736, -0.2040325, 0.75584704)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "RightHand"
bones/34/parent = 33
bones/34/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, -2.829891e-08, 0.27259997, 0.004700046)
bones/34/enabled = true
bones/34/position = Vector3(-2.829891e-08, 0.27259997, 0.004700046)
bones/34/rotation = Quaternion(0.12126146, -0.69891006, -0.059108604, 0.7023721)
bones/34/rotation = Quaternion(0.118466064, -0.6995395, -0.05625629, 0.70245683)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "RightIndexProximal"
bones/35/parent = 34
bones/35/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030900035, 0.11989994, 0.0019998003)
bones/35/enabled = true
bones/35/position = Vector3(0.030900035, 0.11989994, 0.0019998003)
bones/35/rotation = Quaternion(0.6295971, 2.8769072e-08, 4.1759718e-06, 0.7769218)
bones/35/rotation = Quaternion(0.6295971, 2.8769083e-08, 4.1759718e-06, 0.77692175)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "RightIndexIntermediate"
bones/36/parent = 35
@@ -19720,14 +19719,14 @@ bones/40/parent = 39
bones/40/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0019999943, 0.04230002, -9.594936e-08)
bones/40/enabled = true
bones/40/position = Vector3(-0.0019999943, 0.04230002, -9.594936e-08)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.4966587e-06, 0.78194976)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.496629e-06, 0.78194976)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "RightMiddleDistal"
bones/41/parent = 40
bones/41/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0014999958, 0.033900008, 4.301159e-08)
bones/41/enabled = true
bones/41/position = Vector3(-0.0014999958, 0.033900008, 4.301159e-08)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.326954e-06, 0.7819494)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.3270115e-06, 0.7819494)
bones/41/scale = Vector3(1, 1, 1)
bones/42/name = "middle_04_leaf_r"
bones/42/parent = 41
@@ -19741,7 +19740,7 @@ bones/43/parent = 34
bones/43/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.040799975, 0.107699946, 0.0015997475)
bones/43/enabled = true
bones/43/position = Vector3(-0.040799975, 0.107699946, 0.0015997475)
bones/43/rotation = Quaternion(0.6630007, 0.044529956, -0.07369392, 0.74365073)
bones/43/rotation = Quaternion(0.6630007, 0.044529952, -0.07369392, 0.74365073)
bones/43/scale = Vector3(1, 1, 1)
bones/44/name = "RightLittleIntermediate"
bones/44/parent = 43
@@ -19825,28 +19824,28 @@ bones/55/parent = 1
bones/55/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, 0.089, 0.015400031, 0.051499985)
bones/55/enabled = true
bones/55/position = Vector3(0.089, 0.015400031, 0.051499985)
bones/55/rotation = Quaternion(-0.0011777148, 0.119648084, 0.9863776, -0.11288149)
bones/55/rotation = Quaternion(-0.00163945, 0.13579133, 0.98457384, -0.110328786)
bones/55/scale = Vector3(1, 1, 1)
bones/56/name = "LeftLowerLeg"
bones/56/parent = 55
bones/56/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -7.450581e-09, 0.40029997, -0.0027998893)
bones/56/enabled = true
bones/56/position = Vector3(-7.450581e-09, 0.40029997, -0.0027998893)
bones/56/rotation = Quaternion(0.016378824, 0.9824544, -0.1499833, 0.10963587)
bones/56/rotation = Quaternion(0.018505456, 0.97922075, -0.16983092, 0.10927858)
bones/56/scale = Vector3(1, 1, 1)
bones/57/name = "LeftFoot"
bones/57/parent = 56
bones/57/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -7.218184e-09, 0.42809996, 0.034399886)
bones/57/enabled = true
bones/57/position = Vector3(-7.218184e-09, 0.42809996, 0.034399886)
bones/57/rotation = Quaternion(-0.09584612, 0.7275553, -0.6792646, 0.00874709)
bones/57/rotation = Quaternion(-0.09292828, 0.7304874, -0.6765518, 0.0054874304)
bones/57/scale = Vector3(1, 1, 1)
bones/58/name = "LeftToes"
bones/58/parent = 57
bones/58/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -3.933849e-09, 0.14900002, -0.08849997)
bones/58/enabled = true
bones/58/position = Vector3(-3.933849e-09, 0.14900002, -0.08849997)
bones/58/rotation = Quaternion(4.659032e-08, 1, 5.7722527e-08, 2.7587145e-08)
bones/58/rotation = Quaternion(4.5643787e-08, 1, 5.9229336e-08, 2.8237926e-08)
bones/58/scale = Vector3(1, 1, 1)
bones/59/name = "ball_leaf_l"
bones/59/parent = 58
@@ -19860,28 +19859,28 @@ bones/60/parent = 1
bones/60/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, -0.089, 0.015400031, 0.051499985)
bones/60/enabled = true
bones/60/position = Vector3(-0.089, 0.015400031, 0.051499985)
bones/60/rotation = Quaternion(0.0010388761, -0.103355095, 0.98814464, 0.11352068)
bones/60/rotation = Quaternion(0.0009245566, -0.09752154, 0.9883424, 0.11691002)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "RightLowerLeg"
bones/61/parent = 60
bones/61/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 7.450581e-09, 0.40029997, -0.0027998893)
bones/61/enabled = true
bones/61/position = Vector3(7.450581e-09, 0.40029997, -0.0027998893)
bones/61/rotation = Quaternion(-0.03771726, 0.9299992, -0.104437694, -0.3503882)
bones/61/rotation = Quaternion(-0.034305982, 0.930912, -0.09530545, -0.350917)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "RightFoot"
bones/62/parent = 61
bones/62/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 7.683263e-09, 0.4280999, 0.034399875)
bones/62/enabled = true
bones/62/position = Vector3(7.683263e-09, 0.4280999, 0.034399875)
bones/62/rotation = Quaternion(0.16620031, 0.6437181, -0.74699664, 0.0007381945)
bones/62/rotation = Quaternion(0.1675761, 0.6431822, -0.7471485, -0.0020216284)
bones/62/scale = Vector3(1, 1, 1)
bones/63/name = "RightToes"
bones/63/parent = 62
bones/63/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 3.5171341e-09, 0.14900002, -0.08849997)
bones/63/enabled = true
bones/63/position = Vector3(3.5171341e-09, 0.14900002, -0.08849997)
bones/63/rotation = Quaternion(-6.5746896e-08, 1, 8.806346e-08, 3.4598688e-09)
bones/63/rotation = Quaternion(-5.3498534e-05, 0.99999785, 0.0020912706, -4.911824e-06)
bones/63/scale = Vector3(1, 1, 1)
bones/64/name = "ball_leaf_r"
bones/64/parent = 63
@@ -19939,15 +19938,12 @@ parameters/Crouch/blend_position = 0.0
parameters/Motion/blend_position = 0.002057613
[node name="MeleeSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_ghbft")
[node name="RangedSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_rclin")
[node name="ReloadSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = ExtResource("11_fcyur")
[node name="Subviewport" type="SubViewport" parent="."]
@@ -19975,13 +19971,11 @@ show_percentage = false
[node name="StruggleUI" type="Sprite3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.75085443, 0)
visible = false
billboard = 1
texture = SubResource("ViewportTexture_yixtd")
[node name="WalkSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
stream = SubResource("AudioStreamRandomizer_8tr25")
volume_db = 80.0
unit_size = 23.18

View File

@@ -281,6 +281,7 @@ bind/64/bone = -1
bind/64/pose = Transform3D(-1.0000001, -6.9388815e-18, -1.05879106e-22, 4.879777e-15, -1.490116e-07, 0.9999998, -5.8207675e-11, 1.0000001, -3.5527135e-15, -0.08900002, -0.19209997, -0.015200032)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_t5t85"]
albedo_color = Color(1, 0.8117647, 0, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_j3lta"]
size = Vector3(0.25, 0.25, 0.6)
@@ -19429,7 +19430,6 @@ script = ExtResource("1_t5t85")
projectile_template = ExtResource("2_p65xv")
[node name="Model" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
[node name="GeneralSkeleton" type="Skeleton3D" parent="Model"]
unique_name_in_owner = true
@@ -19446,8 +19446,8 @@ bones/1/name = "Hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9167, -0.05010003)
bones/1/enabled = true
bones/1/position = Vector3(-0.002219703, 0.8751915, -0.086504385)
bones/1/rotation = Quaternion(-0.038857117, -0.11301225, -0.004933522, 0.9928213)
bones/1/position = Vector3(0.0034290752, 0.8734538, -0.08587178)
bones/1/rotation = Quaternion(-0.04391324, -0.11337096, -0.0051048403, 0.99256873)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Spine"
bones/2/parent = 1
@@ -19461,56 +19461,56 @@ bones/3/parent = 2
bones/3/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.12309997, 0.015199981)
bones/3/enabled = true
bones/3/position = Vector3(0, 0.12309997, 0.015199981)
bones/3/rotation = Quaternion(0.09885698, 0.00015590974, 0.00053247047, 0.9951015)
bones/3/rotation = Quaternion(0.0851174, -3.5074405e-05, 0.00031055597, 0.996371)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "UpperChest"
bones/4/parent = 3
bones/4/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.14120016, -0.004500025)
bones/4/enabled = true
bones/4/position = Vector3(0, 0.14120016, -0.004500025)
bones/4/rotation = Quaternion(0.098860845, 0.00050146726, -0.00017967504, 0.99510115)
bones/4/rotation = Quaternion(0.08511802, -0.000115100265, 0.00032540943, 0.9963708)
bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Neck"
bones/5/parent = 4
bones/5/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.17280002, -0.005600037)
bones/5/enabled = true
bones/5/position = Vector3(0, 0.17280002, -0.005600037)
bones/5/rotation = Quaternion(-0.09885946, -0.0002937633, 1.8720975e-05, 0.99510133)
bones/5/rotation = Quaternion(-0.08511795, 6.079086e-05, -0.00037093184, 0.9963708)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Head"
bones/6/parent = 5
bones/6/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.081100024, 0.0155999875)
bones/6/enabled = true
bones/6/position = Vector3(0, 0.081100024, 0.0155999875)
bones/6/rotation = Quaternion(0.07143778, 0.093532264, 0.007065458, 0.99302495)
bones/6/rotation = Quaternion(0.05681539, 0.09345796, 0.01103773, 0.9939396)
bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "LeftShoulder"
bones/7/parent = 4
bones/7/rest = Transform3D(0, 1, 0, 0, 0, 1, 1, 0, 0, 0.0188, 0.14310004, 0.07629998)
bones/7/enabled = true
bones/7/position = Vector3(0.0188, 0.14310004, 0.07629998)
bones/7/rotation = Quaternion(0.49305636, 0.5239528, 0.5268875, -0.45250252)
bones/7/rotation = Quaternion(0.49635032, 0.52293545, 0.52815086, -0.44858864)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "LeftUpperArm"
bones/8/parent = 7
bones/8/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -0.13680005, 0.17309996, -0.01710007)
bones/8/enabled = true
bones/8/position = Vector3(-0.13680005, 0.17309996, -0.01710007)
bones/8/rotation = Quaternion(-0.04608989, 0.81948596, -0.57115024, 0.010298576)
bones/8/rotation = Quaternion(-0.033191722, 0.8215709, -0.5690271, 0.01130531)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "LeftLowerArm"
bones/9/parent = 8
bones/9/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0.004699965, 0.27440003, 3.769936e-08)
bones/9/enabled = true
bones/9/position = Vector3(0.004699965, 0.27440003, 3.769936e-08)
bones/9/rotation = Quaternion(0.18968888, -0.6607, 0.18610394, 0.70203924)
bones/9/rotation = Quaternion(0.1677185, -0.67427033, 0.1682622, 0.6992266)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "LeftHand"
bones/10/parent = 9
bones/10/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 2.0133815e-08, 0.27260005, 0.004700036)
bones/10/enabled = true
bones/10/position = Vector3(2.0133815e-08, 0.27260005, 0.004700036)
bones/10/rotation = Quaternion(0.099780746, 0.70681214, 0.064059675, 0.6973928)
bones/10/rotation = Quaternion(0.100645244, 0.70664513, 0.06493682, 0.69735676)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "LeftIndexProximal"
bones/11/parent = 10
@@ -19524,7 +19524,7 @@ bones/12/parent = 11
bones/12/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/enabled = true
bones/12/position = Vector3(-4.097772e-09, 0.040700007, 1.25191555e-08)
bones/12/rotation = Quaternion(0.62334186, 2.0268834e-08, -4.2690954e-06, 0.7819495)
bones/12/rotation = Quaternion(0.62334186, 2.0268828e-08, -4.269095e-06, 0.78194946)
bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "LeftIndexDistal"
bones/13/parent = 12
@@ -19657,35 +19657,35 @@ bones/31/parent = 4
bones/31/rest = Transform3D(0, -1, 0, 0, 0, 1, -1, 0, 0, -0.0188, 0.14310004, 0.07629998)
bones/31/enabled = true
bones/31/position = Vector3(-0.0188, 0.14310004, 0.07629998)
bones/31/rotation = Quaternion(0.5436264, -0.47392794, -0.47613505, -0.5031481)
bones/31/rotation = Quaternion(0.54740435, -0.47274178, -0.4764465, -0.49986243)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "RightUpperArm"
bones/32/parent = 31
bones/32/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0.13680005, 0.17309996, -0.01710007)
bones/32/enabled = true
bones/32/position = Vector3(0.13680005, 0.17309996, -0.01710007)
bones/32/rotation = Quaternion(0.0688658, 0.82236403, -0.56463414, -0.012776165)
bones/32/rotation = Quaternion(0.08300525, 0.8236736, -0.56083983, -0.011431293)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "RightLowerArm"
bones/33/parent = 32
bones/33/rest = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, -0.004699971, 0.2744, 1.6425727e-07)
bones/33/enabled = true
bones/33/position = Vector3(-0.004699971, 0.2744, 1.6425727e-07)
bones/33/rotation = Quaternion(0.28960642, 0.55713725, -0.20638974, 0.7504197)
bones/33/rotation = Quaternion(0.29069784, 0.54860634, -0.20364544, 0.75700366)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "RightHand"
bones/34/parent = 33
bones/34/rest = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, -2.829891e-08, 0.27259997, 0.004700046)
bones/34/enabled = true
bones/34/position = Vector3(-2.829891e-08, 0.27259997, 0.004700046)
bones/34/rotation = Quaternion(0.11921599, -0.69937116, -0.057012, 0.7024366)
bones/34/rotation = Quaternion(0.118351, -0.69956523, -0.05614095, 0.7024598)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "RightIndexProximal"
bones/35/parent = 34
bones/35/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.030900035, 0.11989994, 0.0019998003)
bones/35/enabled = true
bones/35/position = Vector3(0.030900035, 0.11989994, 0.0019998003)
bones/35/rotation = Quaternion(0.6295971, 2.8769072e-08, 4.1759718e-06, 0.7769218)
bones/35/rotation = Quaternion(0.6295971, 2.8769083e-08, 4.1759718e-06, 0.77692175)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "RightIndexIntermediate"
bones/36/parent = 35
@@ -19720,14 +19720,14 @@ bones/40/parent = 39
bones/40/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0019999943, 0.04230002, -9.594936e-08)
bones/40/enabled = true
bones/40/position = Vector3(-0.0019999943, 0.04230002, -9.594936e-08)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.4966587e-06, 0.78194976)
bones/40/rotation = Quaternion(0.6227322, 0.02755449, 4.496629e-06, 0.78194976)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "RightMiddleDistal"
bones/41/parent = 40
bones/41/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0014999958, 0.033900008, 4.301159e-08)
bones/41/enabled = true
bones/41/position = Vector3(-0.0014999958, 0.033900008, 4.301159e-08)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.326954e-06, 0.7819494)
bones/41/rotation = Quaternion(0.62266874, 0.02896139, 4.3270115e-06, 0.7819494)
bones/41/scale = Vector3(1, 1, 1)
bones/42/name = "middle_04_leaf_r"
bones/42/parent = 41
@@ -19741,7 +19741,7 @@ bones/43/parent = 34
bones/43/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.040799975, 0.107699946, 0.0015997475)
bones/43/enabled = true
bones/43/position = Vector3(-0.040799975, 0.107699946, 0.0015997475)
bones/43/rotation = Quaternion(0.6630007, 0.044529956, -0.07369392, 0.74365073)
bones/43/rotation = Quaternion(0.6630007, 0.044529952, -0.07369392, 0.74365073)
bones/43/scale = Vector3(1, 1, 1)
bones/44/name = "RightLittleIntermediate"
bones/44/parent = 43
@@ -19825,28 +19825,28 @@ bones/55/parent = 1
bones/55/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, 0.089, 0.015400031, 0.051499985)
bones/55/enabled = true
bones/55/position = Vector3(0.089, 0.015400031, 0.051499985)
bones/55/rotation = Quaternion(-0.0017174614, 0.14006186, 0.98344296, -0.11497729)
bones/55/rotation = Quaternion(-0.0014386552, 0.14018583, 0.9836426, -0.1131067)
bones/55/scale = Vector3(1, 1, 1)
bones/56/name = "LeftLowerLeg"
bones/56/parent = 55
bones/56/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -7.450581e-09, 0.40029997, -0.0027998893)
bones/56/enabled = true
bones/56/position = Vector3(-7.450581e-09, 0.40029997, -0.0027998893)
bones/56/rotation = Quaternion(0.01825388, 0.97968286, -0.16751526, 0.108751714)
bones/56/rotation = Quaternion(0.020425119, 0.97608227, -0.18751183, 0.10810039)
bones/56/scale = Vector3(1, 1, 1)
bones/57/name = "LeftFoot"
bones/57/parent = 56
bones/57/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, -7.218184e-09, 0.42809996, 0.034399886)
bones/57/enabled = true
bones/57/position = Vector3(-7.218184e-09, 0.42809996, 0.034399886)
bones/57/rotation = Quaternion(-0.09591657, 0.7239311, -0.68311256, 0.009009208)
bones/57/rotation = Quaternion(-0.093771756, 0.7247995, -0.6825288, 0.005193214)
bones/57/scale = Vector3(1, 1, 1)
bones/58/name = "LeftToes"
bones/58/parent = 57
bones/58/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, -3.933849e-09, 0.14900002, -0.08849997)
bones/58/enabled = true
bones/58/position = Vector3(-3.933849e-09, 0.14900002, -0.08849997)
bones/58/rotation = Quaternion(4.6074632e-08, 1, 5.9424284e-08, 2.81198e-08)
bones/58/rotation = Quaternion(4.5456044e-08, 1, 5.9144387e-08, 2.8289401e-08)
bones/58/scale = Vector3(1, 1, 1)
bones/59/name = "ball_leaf_l"
bones/59/parent = 58
@@ -19860,28 +19860,28 @@ bones/60/parent = 1
bones/60/rest = Transform3D(-1, 0, 0, 0, -1, 0, 0, 0, 1, -0.089, 0.015400031, 0.051499985)
bones/60/enabled = true
bones/60/position = Vector3(-0.089, 0.015400031, 0.051499985)
bones/60/rotation = Quaternion(0.00068275526, -0.09077584, 0.9887022, 0.11927835)
bones/60/rotation = Quaternion(0.0011705678, -0.08936617, 0.9880272, 0.12575582)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "RightLowerLeg"
bones/61/parent = 60
bones/61/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 7.450581e-09, 0.40029997, -0.0027998893)
bones/61/enabled = true
bones/61/position = Vector3(7.450581e-09, 0.40029997, -0.0027998893)
bones/61/rotation = Quaternion(-0.04082445, 0.9293716, -0.112541944, -0.34919363)
bones/61/rotation = Quaternion(-0.043489594, 0.9288716, -0.119884506, -0.3477559)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "RightFoot"
bones/62/parent = 61
bones/62/rest = Transform3D(-1, 0, 0, 0, 0, -1, 0, -1, 0, 7.683263e-09, 0.4280999, 0.034399875)
bones/62/enabled = true
bones/62/position = Vector3(7.683263e-09, 0.4280999, 0.034399875)
bones/62/rotation = Quaternion(0.16571537, 0.6334806, -0.7558044, 0.0006096732)
bones/62/rotation = Quaternion(0.16783756, 0.633235, -0.7555422, 0.00020735944)
bones/62/scale = Vector3(1, 1, 1)
bones/63/name = "RightToes"
bones/63/parent = 62
bones/63/rest = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 3.5171341e-09, 0.14900002, -0.08849997)
bones/63/enabled = true
bones/63/position = Vector3(3.5171341e-09, 0.14900002, -0.08849997)
bones/63/rotation = Quaternion(-7.738583e-05, 0.99999565, 0.0029830416, -1.0143903e-05)
bones/63/rotation = Quaternion(-4.15132e-05, 0.99999875, 0.0016303275, -3.0271615e-06)
bones/63/scale = Vector3(1, 1, 1)
bones/64/name = "ball_leaf_r"
bones/64/parent = 63
@@ -19939,15 +19939,12 @@ parameters/Crouch/blend_position = 0.0
parameters/Motion/blend_position = 0.002057613
[node name="MeleeSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_ghbft")
[node name="RangedSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = SubResource("AudioStreamRandomizer_rclin")
[node name="ReloadSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.425, 0)
stream = ExtResource("11_mw5y3")
[node name="Subviewport" type="SubViewport" parent="."]
@@ -19975,13 +19972,11 @@ show_percentage = false
[node name="StruggleUI" type="Sprite3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.75085443, 0)
visible = false
billboard = 1
texture = SubResource("ViewportTexture_yixtd")
[node name="WalkSound" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
stream = SubResource("AudioStreamRandomizer_8tr25")
volume_db = 80.0
unit_size = 23.18

View File

@@ -6,6 +6,12 @@
resource_name = "texture_0"
transparency = 4
cull_mode = 2
shading_mode = 0
diffuse_mode = 1
specular_mode = 2
disable_ambient_light = true
disable_fog = true
disable_specular_occlusion = true
albedo_texture = ExtResource("1_mttbj")
texture_filter = 0
texture_repeat = false