diff --git a/gui/buy_menu/buy_button/buy_button.gd b/gui/buy_menu/buy_button/buy_button.gd index 02fef47..da09b77 100644 --- a/gui/buy_menu/buy_button/buy_button.gd +++ b/gui/buy_menu/buy_button/buy_button.gd @@ -7,9 +7,10 @@ func _ready() -> void: text = str(weapon.cost) func _pressed() -> void: - var player_data = Session.get_player_data() - if player_data["money"] >= weapon.cost: - var player: Player = Session.player_nodes[multiplayer.get_unique_id()] - - player_data["money"] -= weapon.cost - player.get_node("WeaponSystem").add(weapon.weapon_system_scene.instantiate(),"ability_first") + try_server_buy.rpc_id(1) + +@rpc("any_peer","call_local","reliable") +func try_server_buy() -> void: + if not multiplayer.is_server(): + return + Shop.buy(multiplayer.get_remote_sender_id(),weapon) diff --git a/gui/buy_menu/shop.gd b/gui/buy_menu/shop.gd new file mode 100644 index 0000000..562d147 --- /dev/null +++ b/gui/buy_menu/shop.gd @@ -0,0 +1,29 @@ +extends Node + + +func can_buy(player_id: int,weapon: WeaponResource) -> bool: + return Session.player_data[player_id]["money"] >= weapon.cost + +func buy(player_id: int, weapon: WeaponResource) -> void: + if not multiplayer.is_server() or can_buy(player_id,weapon) == false: + return + + var player: Player = Session.player_nodes[player_id] + if player.hp == 0: + return + + var weapon_system: WeaponSystem = player.get_node("%WeaponSystem") + var slot: StringName = "" + match weapon.slot: + "ability": + slot = weapon_system.get_empty_ability_slot() + var anything: + slot = anything + + if not weapon_system.can_add(slot): + return + + var player_data = Session.player_data[player_id] + player_data["money"] -= weapon.cost + + weapon_system.add(weapon.weapon_system_scene.instantiate(),slot) diff --git a/gui/buy_menu/shop.gd.uid b/gui/buy_menu/shop.gd.uid new file mode 100644 index 0000000..e9a964b --- /dev/null +++ b/gui/buy_menu/shop.gd.uid @@ -0,0 +1 @@ +uid://hyldsai23dh4 diff --git a/project.godot b/project.godot index d35f188..d54e068 100644 --- a/project.godot +++ b/project.godot @@ -26,12 +26,19 @@ Session="*res://multiplayer/session.gd" ClientSettings="*res://gui/client_settings/client_settings.gd" ClientSettingsMenu="res://gui/client_settings/client_settings.tscn" Registry="*res://systems/registry.gd" +Shop="*res://gui/buy_menu/shop.gd" [display] window/size/viewport_width=1280 window/size/viewport_height=720 +[file_customization] + +folder_colors={ +"res://gui/": "green" +} + [input] plr_forward={ diff --git a/scenes/molikman.tscn b/scenes/molikman.tscn index d034709..bbdfb81 100644 --- a/scenes/molikman.tscn +++ b/scenes/molikman.tscn @@ -8140,365 +8140,365 @@ bones/1/name = "Arm.L" bones/1/parent = 0 bones/1/rest = Transform3D(-0.967654, 0.25016752, 0.0325744, -0.25158498, -0.96648616, -0.05108291, 0.018703416, -0.057625845, 0.998163, 0.26421797, 0.773799, 4.559311e-08) bones/1/enabled = true -bones/1/position = Vector3(0.264218, 0.773799, 7.5726156e-08) -bones/1/rotation = Quaternion(-0.11607456, -0.007566696, 0.95669395, -0.26684496) +bones/1/position = Vector3(0.264218, 0.7737991, 8.241175e-08) +bones/1/rotation = Quaternion(0.012689503, -0.12897189, 0.9333643, -0.33471844) bones/1/scale = Vector3(0.9999995, 1, 0.99999994) bones/2/name = "Forearm.L" bones/2/parent = 1 bones/2/rest = Transform3D(0.9995757, 0.013401157, 0.025863314, -0.011816048, 0.9980985, -0.060496498, -0.026624857, 0.060165223, 0.9978333, -1.3533281e-08, 0.4103367, 9.313226e-10) bones/2/enabled = true bones/2/position = Vector3(-1.3533281e-08, 0.4103367, 9.313226e-10) -bones/2/rotation = Quaternion(0.35293797, 0.012252082, -0.073760726, 0.9326543) +bones/2/rotation = Quaternion(0.6806289, 0.009440267, -0.14224508, 0.71862483) bones/2/scale = Vector3(1, 1, 1) bones/3/name = "Wrist.L" bones/3/parent = 2 bones/3/rest = Transform3D(-0.9710889, 0.23862918, 0.0065318705, 0.2375265, 0.96860886, -0.07333562, -0.023826849, -0.069663905, -0.9972859, 1.2121745e-08, 0.40612826, -7.421477e-10) bones/3/enabled = true bones/3/position = Vector3(1.2121745e-08, 0.40612826, -7.421477e-10) -bones/3/rotation = Quaternion(0.1121526, 0.9382349, -0.23010647, 0.23278317) +bones/3/rotation = Quaternion(0.08838514, 0.85444033, -0.45975256, 0.22527176) bones/3/scale = Vector3(1, 1, 1) bones/4/name = "ThumbU.L" bones/4/parent = 3 bones/4/rest = Transform3D(0.9771098, -0.21273556, 7.7299774e-08, 0.2122333, 0.97480285, 0.068675034, -0.014609697, -0.06710303, 0.99763906, -0.0045400136, 0.06477452, -0.046769787) bones/4/enabled = true bones/4/position = Vector3(-0.0045400136, 0.06477452, -0.046769787) -bones/4/rotation = Quaternion(-0.18413022, 0.109042466, -0.01852451, 0.97665894) +bones/4/rotation = Quaternion(-0.18413022, 0.10904248, -0.018524533, 0.97665894) bones/4/scale = Vector3(1, 0.99999994, 1) bones/5/name = "ThumbM.L" bones/5/parent = 4 bones/5/rest = Transform3D(0.96273476, -0.2702871, -0.009302501, 0.270358, 0.96273106, 0.0074529527, 0.0069413693, -0.009690224, 0.9999289, -9.109499e-09, 0.050440647, -1.0863523e-09) bones/5/enabled = true bones/5/position = Vector3(-9.109499e-09, 0.050440647, -1.0863523e-09) -bones/5/rotation = Quaternion(-0.003382863, -0.0049069775, -0.07181848, 0.9973999) +bones/5/rotation = Quaternion(-0.0028532161, -0.0052326904, -0.17534292, 0.98448944) bones/5/scale = Vector3(0.9999999, 1, 0.99999994) bones/6/name = "ThumbD.L" bones/6/parent = 5 bones/6/rest = Transform3D(0.9935268, -0.11359587, 0.00059893046, 0.11359593, 0.99347246, -0.01041187, 0.0005877246, 0.010412509, 0.9999456, -7.9744495e-09, 0.031673077, -2.8667273e-09) bones/6/enabled = true bones/6/position = Vector3(-7.9744495e-09, 0.031673077, -2.8667273e-09) -bones/6/rotation = Quaternion(0.004960197, 0.0016089659, -0.25340638, 0.96734595) +bones/6/rotation = Quaternion(0.0042233877, 0.0030586084, -0.5390605, 0.84225094) bones/6/scale = Vector3(0.99999994, 1, 0.99999994) bones/7/name = "IndexU.L" bones/7/parent = 3 bones/7/rest = Transform3D(0.9800801, -0.19626929, -0.030354138, 0.19836761, 0.95998544, 0.19768214, -0.009659407, -0.19976562, 0.97979605, 0.04529645, 0.07181831, -0.03615555) bones/7/enabled = true bones/7/position = Vector3(0.04529645, 0.07181831, -0.03615555) -bones/7/rotation = Quaternion(-0.100372516, -0.0052263015, 0.09966263, 0.98993206) +bones/7/rotation = Quaternion(-0.1003725, -0.0052263043, 0.09966264, 0.98993206) bones/7/scale = Vector3(1, 1, 0.99999994) bones/8/name = "IndexM.L" bones/8/parent = 7 bones/8/rest = Transform3D(0.9323135, -0.3615566, -0.008257606, 0.36068276, 0.9312451, -0.05187074, 0.026444064, 0.045381427, 0.99861956, 2.4359906e-08, 0.078790486, 4.656613e-10) bones/8/enabled = true bones/8/position = Vector3(2.4359906e-08, 0.078790486, 4.656613e-10) -bones/8/rotation = Quaternion(0.02378056, -0.011164779, 0.27729166, 0.96042657) +bones/8/rotation = Quaternion(0.023780614, -0.011164798, 0.27729172, 0.9604266) bones/8/scale = Vector3(0.9999999, 1, 0.9999999) bones/9/name = "IndexD.L" bones/9/parent = 8 bones/9/rest = Transform3D(0.99988145, 0.015218651, -0.0023559656, -0.015326478, 0.99832255, -0.055830937, 0.001502342, 0.055860423, 0.99843746, -1.967419e-08, 0.060257126, -9.313226e-10) bones/9/enabled = true bones/9/position = Vector3(-1.967419e-08, 0.060257126, -9.313226e-10) -bones/9/rotation = Quaternion(0.024683425, -0.013114907, 0.43138972, 0.9017327) +bones/9/rotation = Quaternion(0.023309475, -0.015425297, 0.5160131, 0.8561246) bones/9/scale = Vector3(1, 0.99999994, 1) bones/10/name = "MiddleU.L" bones/10/parent = 3 bones/10/rest = Transform3D(0.995789, -0.058257025, -0.070783034, 0.065396525, 0.9925152, 0.10313419, 0.064244956, -0.10732886, 0.99214566, 0.0423781, 0.07765784, -0.01126304) bones/10/enabled = true bones/10/position = Vector3(0.0423781, 0.07765784, -0.01126304) -bones/10/rotation = Quaternion(-0.052744843, -0.033839792, 0.030989215, 0.9975533) +bones/10/rotation = Quaternion(-0.05274482, -0.033839792, 0.030989213, 0.9975533) bones/10/scale = Vector3(0.99999994, 0.9999999, 0.99999994) bones/11/name = "MiddleM.L" bones/11/parent = 10 bones/11/rest = Transform3D(0.86401427, -0.5034334, 0.005847616, 0.50168175, 0.85991454, -0.09414042, 0.042364985, 0.0842723, 0.99554175, -6.426126e-08, 0.07325909, 8.731149e-10) bones/11/enabled = true bones/11/position = Vector3(-6.426126e-08, 0.07325909, 8.731149e-10) -bones/11/rotation = Quaternion(0.045131322, -0.013866683, 0.35200542, 0.9348064) +bones/11/rotation = Quaternion(0.045131326, -0.013866695, 0.35200542, 0.9348064) bones/11/scale = Vector3(1, 1, 0.99999994) bones/12/name = "MiddleD.L" bones/12/parent = 11 bones/12/rest = Transform3D(0.9998987, -0.014212552, -0.00084086665, 0.014225133, 0.99974453, 0.017563164, 0.0005910344, -0.017573344, 0.99984545, -3.655441e-08, 0.064242914, -3.259629e-09) bones/12/enabled = true bones/12/position = Vector3(-3.655441e-08, 0.064242914, -3.259629e-09) -bones/12/rotation = Quaternion(-0.008052284, 0.0035297836, 0.44480184, 0.89558583) +bones/12/rotation = Quaternion(-0.007675979, 0.004286906, 0.52877283, 0.8487179) bones/12/scale = Vector3(1, 0.99999994, 1) bones/13/name = "RingU.L" bones/13/parent = 3 bones/13/rest = Transform3D(0.9704054, 0.03888444, -0.23833017, -0.02366867, 0.9975139, 0.06637663, 0.2403187, -0.05877129, 0.9689131, 0.033461113, 0.07149333, 0.017992377) bones/13/enabled = true bones/13/position = Vector3(0.033461113, 0.07149333, 0.017992377) -bones/13/rotation = Quaternion(-0.03153701, -0.12061846, -0.015763242, 0.9920727) +bones/13/rotation = Quaternion(-0.031536993, -0.12061843, -0.015763246, 0.9920727) bones/13/scale = Vector3(0.99999994, 1, 0.9999998) bones/14/name = "RingM.L" bones/14/parent = 13 bones/14/rest = Transform3D(0.8251062, -0.5639382, -0.034260202, 0.5524452, 0.81802005, -0.16014954, 0.11833996, 0.11321349, 0.9864982, 1.6880222e-08, 0.07553467, 6.165976e-09) bones/14/enabled = true bones/14/position = Vector3(1.6880222e-08, 0.07553467, 6.165976e-09) -bones/14/rotation = Quaternion(0.067564145, -0.04675546, 0.38313726, 0.9200298) +bones/14/rotation = Quaternion(0.06756415, -0.04675546, 0.38313717, 0.9200299) bones/14/scale = Vector3(1.0000001, 1.0000001, 1.0000001) bones/15/name = "RingD.L" bones/15/parent = 14 bones/15/rest = Transform3D(0.99991727, -0.012864361, 0.00015441107, 0.012864626, 0.999672, -0.022144126, 0.00013050961, 0.022144279, 0.9997547, 1.8626451e-08, 0.064691424, -4.656613e-09) bones/15/enabled = true bones/15/position = Vector3(1.8626451e-08, 0.064691424, -4.656613e-09) -bones/15/rotation = Quaternion(0.009954605, -0.0048495512, 0.44418532, 0.89586663) +bones/15/rotation = Quaternion(0.009442741, -0.00578338, 0.528186, 0.84905654) bones/15/scale = Vector3(1, 0.99999994, 0.99999994) bones/16/name = "LittleU.L" bones/16/parent = 3 bones/16/rest = Transform3D(0.9178412, -0.18039086, -0.35359105, 0.15868124, 0.98324484, -0.089720085, 0.3638513, 0.026240522, 0.93108726, 0.03628368, 0.082845636, 0.04032454) bones/16/enabled = true bones/16/position = Vector3(0.03628368, 0.082845636, 0.04032454) -bones/16/rotation = Quaternion(0.029618153, -0.18324603, 0.0866043, 0.9787969) +bones/16/rotation = Quaternion(0.029618166, -0.18324599, 0.08660434, 0.9787969) bones/16/scale = Vector3(0.99999994, 0.9999999, 0.9999999) bones/17/name = "LittleM.L" bones/17/parent = 16 bones/17/rest = Transform3D(0.92672586, -0.36745474, -0.07846127, 0.35205162, 0.9221317, -0.16041435, 0.13129665, 0.12103772, 0.9839263, -2.0954758e-09, 0.061574344, -4.1909516e-09) bones/17/enabled = true bones/17/position = Vector3(-2.0954758e-09, 0.061574344, -4.1909516e-09) -bones/17/rotation = Quaternion(0.066403255, -0.06022823, 0.27693692, 0.95669705) +bones/17/rotation = Quaternion(0.06640326, -0.06022825, 0.27693692, 0.95669705) bones/17/scale = Vector3(1, 1, 0.99999994) bones/18/name = "LittleD.L" bones/18/parent = 17 bones/18/rest = Transform3D(0.9951905, -0.09795637, -0.0007189751, 0.09795622, 0.99507964, 0.014866696, -0.00074085005, -0.014865619, 0.9998894, 1.4901161e-08, 0.035935525, -1.7695129e-08) bones/18/enabled = true bones/18/position = Vector3(1.4901161e-08, 0.035935525, -1.7695129e-08) -bones/18/rotation = Quaternion(-0.0073038945, 0.0014285325, 0.2391246, 0.9709604) +bones/18/rotation = Quaternion(-0.0071328855, 0.0021234925, 0.33128664, 0.9435009) bones/18/scale = Vector3(1, 0.99999994, 1.0000001) bones/19/name = "ThumbCtrl.L" bones/19/parent = 3 bones/19/rest = Transform3D(0.9771098, -0.21273556, 9.247858e-08, 0.2122333, 0.97480285, 0.06867504, -0.014609714, -0.06710303, 0.99763906, -0.0045400136, 0.06477452, -0.046769787) bones/19/enabled = true bones/19/position = Vector3(-0.0045400136, 0.06477452, -0.046769787) -bones/19/rotation = Quaternion(-0.18413022, 0.10904248, -0.018524526, 0.97665894) +bones/19/rotation = Quaternion(-0.18413022, 0.109042495, -0.018524526, 0.97665894) bones/19/scale = Vector3(1, 0.99999994, 1) bones/20/name = "IndexCtrl.L" bones/20/parent = 3 bones/20/rest = Transform3D(0.9800801, -0.19626929, -0.030354116, 0.19836757, 0.9599856, 0.19768208, -0.009659403, -0.19976556, 0.9797962, 0.04529645, 0.07181834, -0.036155563) bones/20/enabled = true bones/20/position = Vector3(0.04529645, 0.07181834, -0.036155563) -bones/20/rotation = Quaternion(-0.10037247, -0.0052262973, 0.09966262, 0.98993206) +bones/20/rotation = Quaternion(-0.10037244, -0.0052262982, 0.09966263, 0.98993206) bones/20/scale = Vector3(1, 1.0000001, 1) bones/21/name = "MiddleCtrl.L" bones/21/parent = 3 bones/21/rest = Transform3D(0.995789, -0.058257017, -0.07078303, 0.06539652, 0.9925152, 0.1031342, 0.06424495, -0.10732886, 0.99214566, 0.0423781, 0.07765784, -0.011263036) bones/21/enabled = true bones/21/position = Vector3(0.0423781, 0.07765784, -0.011263036) -bones/21/rotation = Quaternion(-0.052744843, -0.033839785, 0.030989211, 0.9975533) +bones/21/rotation = Quaternion(-0.05274482, -0.033839785, 0.03098921, 0.9975533) bones/21/scale = Vector3(0.99999994, 0.9999999, 0.99999994) bones/22/name = "RingCtrl.L" bones/22/parent = 3 bones/22/rest = Transform3D(0.9704054, 0.03888438, -0.23833017, -0.023668619, 0.9975138, 0.0663766, 0.2403187, -0.05877127, 0.9689131, 0.033461053, 0.07149334, 0.017992355) bones/22/enabled = true bones/22/position = Vector3(0.033461053, 0.07149334, 0.017992355) -bones/22/rotation = Quaternion(-0.031537004, -0.12061846, -0.015763216, 0.9920727) +bones/22/rotation = Quaternion(-0.03153699, -0.12061845, -0.01576322, 0.9920727) bones/22/scale = Vector3(0.99999994, 0.9999999, 0.9999998) bones/23/name = "LittleCtrl.L" bones/23/parent = 3 bones/23/rest = Transform3D(0.91784114, -0.18039091, -0.35359108, 0.15868126, 0.9832449, -0.08972012, 0.3638513, 0.026240537, 0.9310873, 0.03628368, 0.08284565, 0.04032453) bones/23/enabled = true bones/23/position = Vector3(0.03628368, 0.08284565, 0.04032453) -bones/23/rotation = Quaternion(0.029618153, -0.18324603, 0.08660434, 0.9787969) +bones/23/rotation = Quaternion(0.029618178, -0.183246, 0.08660434, 0.9787969) bones/23/scale = Vector3(0.99999994, 0.99999994, 0.99999994) bones/24/name = "ArmPole.L" bones/24/parent = 0 bones/24/rest = Transform3D(-1, 0, 1.509958e-07, 0, 1, 0, -1.509958e-07, 0, -1, 0.35926056, 0.3746208, -0.29998538) bones/24/enabled = true -bones/24/position = Vector3(0.6056142, 0.20785579, -0.19235319) +bones/24/position = Vector3(0.6056142, 0.20785579, -0.19235316) bones/24/rotation = Quaternion(0, 1, 0, 7.54979e-08) bones/24/scale = Vector3(1, 1, 1) bones/25/name = "ArmCtrl.L" bones/25/parent = 0 bones/25/rest = Transform3D(0.94635725, 0.23162141, 0.22532214, 0.22532395, -0.97280645, 0.0536483, 0.23162217, 1.747915e-08, -0.9728062, 0.26421803, 0.77379894, 5.6864977e-08) bones/25/enabled = true -bones/25/position = Vector3(0.26421806, 0.773799, 8.248862e-08) -bones/25/rotation = Quaternion(0.98640305, 0.115810655, 0.1158104, -0.013596949) +bones/25/position = Vector3(0.26421806, 0.77379906, 8.9564054e-08) +bones/25/rotation = Quaternion(0.98640305, 0.115810655, 0.11581039, -0.013596952) bones/25/scale = Vector3(1.0000058, 1.0000005, 1) bones/26/name = "WristCtrl.L" bones/26/parent = 0 bones/26/rest = Transform3D(0.99986863, 1.6880067e-09, -0.016210483, 0.0011133, -0.9976389, 0.06866942, -0.016172118, -0.06867806, -0.9975134, 0.4638072, -0.017174125, -0.022513157) bones/26/enabled = true -bones/26/position = Vector3(0.5209434, 0.11365941, 0.27973163) -bones/26/rotation = Quaternion(0.99525756, 0.0013011391, -0.008000332, 0.096937135) +bones/26/position = Vector3(0.5027311, 0.31168783, 0.27170432) +bones/26/rotation = Quaternion(0.9950302, 0.0014013369, -0.008027737, 0.09923961) bones/26/scale = Vector3(1, 1, 1.0000056) bones/27/name = "Arm.R" bones/27/parent = 0 bones/27/rest = Transform3D(-0.9676544, -0.25016746, -0.032574747, 0.25158504, -0.96648616, -0.051082943, -0.018703751, -0.057625957, 0.99816304, -0.26421797, 0.773799, -8.039582e-08) bones/27/enabled = true -bones/27/position = Vector3(-0.2642181, 0.773799, -7.244679e-08) -bones/27/rotation = Quaternion(-0.004606466, 0.043080933, 0.98210853, 0.18326412) +bones/27/position = Vector3(-0.2642181, 0.77379906, -6.238784e-08) +bones/27/rotation = Quaternion(-0.13862602, -0.08580463, 0.9588067, 0.23261577) bones/27/scale = Vector3(0.99999994, 1, 1) bones/28/name = "Forearm.R" bones/28/parent = 27 bones/28/rest = Transform3D(0.99957556, -0.013401167, -0.025863245, 0.011816061, 0.9980984, -0.060496498, 0.026624788, 0.060165223, 0.99783325, 1.17579475e-08, 0.4103366, 3.7252903e-09) bones/28/enabled = true bones/28/position = Vector3(1.17579475e-08, 0.4103366, 3.7252903e-09) -bones/28/rotation = Quaternion(0.24371684, -0.012721976, 0.050934598, 0.96842444) +bones/28/rotation = Quaternion(0.5881924, -0.010499675, 0.12292688, 0.799255) bones/28/scale = Vector3(0.9999999, 0.9999999, 0.99999994) bones/29/name = "Wrist.R" bones/29/parent = 28 bones/29/rest = Transform3D(-0.9710889, -0.23862909, -0.0065321154, -0.23752637, 0.968609, -0.073335625, 0.02382708, -0.06966387, -0.9972859, -2.158049e-08, 0.4061282, -2.1100277e-09) bones/29/enabled = true bones/29/position = Vector3(-2.158049e-08, 0.4061282, -2.1100277e-09) -bones/29/rotation = Quaternion(-0.105007105, 0.9899002, -0.015528794, -0.09396898) +bones/29/rotation = Quaternion(-0.13033676, 0.95264983, -0.26576123, -0.06958225) bones/29/scale = Vector3(1, 1.0000001, 1) bones/30/name = "ThumbU.R" bones/30/parent = 29 bones/30/rest = Transform3D(0.97710997, 0.21273556, -2.9711325e-07, -0.21223329, 0.9748031, 0.06867511, 0.014609926, -0.067103066, 0.9976392, 0.0045400467, 0.06477455, -0.046769787) bones/30/enabled = true bones/30/position = Vector3(0.0045400467, 0.06477455, -0.046769787) -bones/30/rotation = Quaternion(-0.03416064, -0.0036758184, -0.10691859, 0.993674) +bones/30/rotation = Quaternion(-0.03416064, -0.0036758096, -0.1069186, 0.993674) bones/30/scale = Vector3(1.0000001, 1.0000001, 1.0000001) bones/31/name = "ThumbM.R" bones/31/parent = 30 bones/31/rest = Transform3D(0.9627348, 0.270287, 0.009302534, -0.27035788, 0.9627312, 0.0074529545, -0.006941402, -0.009690234, 0.99992895, 1.0739313e-08, 0.05044063, 6.8161654e-10) bones/31/enabled = true bones/31/position = Vector3(1.0739313e-08, 0.05044063, 6.8161654e-10) -bones/31/rotation = Quaternion(-0.0043263347, 0.0040993956, -0.13643965, 0.9906305) +bones/31/rotation = Quaternion(-0.004326243, 0.0040993905, -0.13643962, 0.9906305) bones/31/scale = Vector3(0.99999994, 1.0000001, 1) bones/32/name = "ThumbD.R" bones/32/parent = 31 bones/32/rest = Transform3D(0.99352676, 0.113595836, -0.0005989222, -0.113595866, 0.99347264, -0.010411862, -0.00058773125, 0.010412501, 0.99994564, 1.717126e-08, 0.031673037, 2.6193447e-09) bones/32/enabled = true bones/32/position = Vector3(1.717126e-08, 0.031673037, 2.6193447e-09) -bones/32/rotation = Quaternion(0.0052146167, -2.8286527e-06, -0.056890868, 0.99836683) +bones/32/rotation = Quaternion(0.005214617, -2.822548e-06, -0.056890875, 0.99836683) bones/32/scale = Vector3(0.9999999, 1.0000001, 1) bones/33/name = "IndexU.R" bones/33/parent = 29 bones/33/rest = Transform3D(0.9800801, 0.19626924, 0.030353922, -0.1983675, 0.95998544, 0.19768226, 0.00965963, -0.19976568, 0.97979605, -0.04529639, 0.07181834, -0.03615556) bones/33/enabled = true bones/33/position = Vector3(-0.04529639, 0.07181834, -0.03615556) -bones/33/rotation = Quaternion(-0.100372545, 0.005226185, -0.0996626, 0.98993206) +bones/33/rotation = Quaternion(-0.10037253, 0.0052261916, -0.0996626, 0.98993206) bones/33/scale = Vector3(1, 0.99999994, 0.99999994) bones/34/name = "IndexM.R" bones/34/parent = 33 bones/34/rest = Transform3D(0.9323134, 0.3615565, 0.008257622, -0.3606826, 0.9312451, -0.051870808, -0.026444094, 0.04538148, 0.9986197, 1.2980308e-08, 0.07879048, -2.3283064e-09) bones/34/enabled = true bones/34/position = Vector3(1.2980308e-08, 0.07879048, -2.3283064e-09) -bones/34/rotation = Quaternion(0.024743041, 0.008828865, -0.18375322, 0.9826214) +bones/34/rotation = Quaternion(0.024743002, 0.008828901, -0.1837532, 0.9826214) bones/34/scale = Vector3(0.9999997, 1, 1) bones/35/name = "IndexD.R" bones/35/parent = 34 bones/35/rest = Transform3D(0.99988145, -0.015218617, 0.0023559635, 0.015326444, 0.99832255, -0.05583094, -0.0015023419, 0.05586043, 0.9984374, -9.895302e-09, 0.060257077, 1.3969839e-09) bones/35/enabled = true bones/35/position = Vector3(-9.895302e-09, 0.060257077, 1.3969839e-09) -bones/35/rotation = Quaternion(0.023770574, 0.014704669, -0.48956946, 0.8715162) +bones/35/rotation = Quaternion(0.023770606, 0.014704762, -0.48956946, 0.8715162) bones/35/scale = Vector3(1, 0.99999994, 0.99999994) bones/36/name = "MiddleU.R" bones/36/parent = 29 bones/36/rest = Transform3D(0.9957891, 0.05825713, 0.07078279, -0.06539661, 0.9925152, 0.103134215, -0.064244695, -0.10732887, 0.9921457, -0.04237805, 0.07765788, -0.011263045) bones/36/enabled = true bones/36/position = Vector3(-0.04237805, 0.07765788, -0.011263045) -bones/36/rotation = Quaternion(-0.05274485, 0.03383966, -0.03098926, 0.9975533) +bones/36/rotation = Quaternion(-0.052744858, 0.03383967, -0.030989254, 0.9975533) bones/36/scale = Vector3(1, 0.9999999, 1) bones/37/name = "MiddleM.R" bones/37/parent = 36 bones/37/rest = Transform3D(0.8640145, 0.50343317, -0.0058475533, -0.5016816, 0.8599146, -0.09414036, -0.04236499, 0.08427222, 0.99554175, 3.4226105e-08, 0.073259085, -2.910383e-10) bones/37/enabled = true bones/37/position = Vector3(3.4226105e-08, 0.073259085, -2.910383e-10) -bones/37/rotation = Quaternion(0.044503566, 0.015765553, -0.39127773, 0.9190607) +bones/37/rotation = Quaternion(0.044503525, 0.01576555, -0.3912778, 0.91906077) bones/37/scale = Vector3(1.0000001, 0.99999994, 0.99999994) bones/38/name = "MiddleD.R" bones/38/parent = 37 bones/38/rest = Transform3D(0.9998987, 0.01421252, 0.00084087194, -0.014225099, 0.9997446, 0.017563174, -0.0005910403, -0.017573357, 0.9998453, 6.9849193e-09, 0.06424289, 3.259629e-09) bones/38/enabled = true bones/38/position = Vector3(6.9849193e-09, 0.06424289, 3.259629e-09) -bones/38/rotation = Quaternion(-0.0068607684, -0.0054980787, -0.661929, 0.749515) +bones/38/rotation = Quaternion(-0.006035667, -0.0063930084, -0.7591109, 0.650902) bones/38/scale = Vector3(1, 1, 0.9999999) bones/39/name = "RingU.R" bones/39/parent = 29 bones/39/rest = Transform3D(0.97040546, -0.03888434, 0.23833002, 0.023668591, 0.9975139, 0.0663766, -0.24031854, -0.05877128, 0.9689132, -0.033461094, 0.07149336, 0.017992368) bones/39/enabled = true bones/39/position = Vector3(-0.033461094, 0.07149336, 0.017992368) -bones/39/rotation = Quaternion(-0.031536996, 0.12061837, 0.015763192, 0.99207276) +bones/39/rotation = Quaternion(-0.03153701, 0.120618366, 0.015763192, 0.99207276) bones/39/scale = Vector3(1, 1, 0.9999999) bones/40/name = "RingM.R" bones/40/parent = 39 bones/40/rest = Transform3D(0.8251063, 0.56393784, 0.034260213, -0.55244493, 0.81802005, -0.16014935, -0.11833983, 0.11321335, 0.98649806, -1.9383151e-08, 0.07553466, 5.743118e-09) bones/40/enabled = true bones/40/position = Vector3(-1.9383151e-08, 0.07553466, 5.743118e-09) -bones/40/rotation = Quaternion(0.055570774, 0.06052161, -0.5768524, 0.81270564) +bones/40/rotation = Quaternion(0.055570778, 0.060521662, -0.57685244, 0.8127056) bones/40/scale = Vector3(1, 0.99999994, 1) bones/41/name = "RingD.R" bones/41/parent = 40 bones/41/rest = Transform3D(0.99991727, 0.012864309, -0.00015439918, -0.012864574, 0.999672, -0.022144107, -0.00013052007, 0.02214426, 0.9997548, 6.519258e-09, 0.06469142, 1.8626451e-08) bones/41/enabled = true bones/41/position = Vector3(6.519258e-09, 0.06469142, 1.8626451e-08) -bones/41/rotation = Quaternion(0.008899972, 0.0065879845, -0.6005104, 0.7995404) +bones/41/rotation = Quaternion(0.006386018, 0.009045998, -0.8208931, 0.57097465) bones/41/scale = Vector3(1, 0.99999994, 1) bones/42/name = "LittleU.R" bones/42/parent = 29 bones/42/rest = Transform3D(0.91784126, 0.18039082, 0.35359094, -0.15868118, 0.9832451, -0.08972006, -0.36385116, 0.026240546, 0.93108743, -0.036283698, 0.08284566, 0.04032454) bones/42/enabled = true bones/42/position = Vector3(-0.036283698, 0.08284566, 0.04032454) -bones/42/rotation = Quaternion(0.029618138, 0.18324591, -0.08660426, 0.978797) +bones/42/rotation = Quaternion(0.029618185, 0.18324591, -0.08660428, 0.978797) bones/42/scale = Vector3(1, 1.0000001, 1) bones/43/name = "LittleM.R" bones/43/parent = 42 bones/43/rest = Transform3D(0.9267258, 0.3674547, 0.078461215, -0.35205156, 0.9221319, -0.16041426, -0.13129655, 0.12103769, 0.9839263, 4.5401976e-09, 0.061574332, 1.4901161e-08) bones/43/enabled = true bones/43/position = Vector3(4.5401976e-09, 0.061574332, 1.4901161e-08) -bones/43/rotation = Quaternion(0.04652544, 0.07663028, -0.5376598, 0.83838236) +bones/43/rotation = Quaternion(0.046525456, 0.076630265, -0.5376598, 0.83838236) bones/43/scale = Vector3(0.9999999, 1.0000001, 0.99999994) bones/44/name = "LittleD.R" bones/44/parent = 43 bones/44/rest = Transform3D(0.99519044, 0.09795644, 0.00071900914, -0.097956285, 0.99507964, 0.014866768, 0.0007408244, -0.014865696, 0.99988925, -2.6077032e-08, 0.035935488, 2.0489097e-08) bones/44/enabled = true bones/44/position = Vector3(-2.6077032e-08, 0.035935488, 2.0489097e-08) -bones/44/rotation = Quaternion(-0.005342348, -0.00518124, -0.7300394, 0.68336457) +bones/44/rotation = Quaternion(-0.0030077088, -0.006807417, -0.9331264, 0.35947162) bones/44/scale = Vector3(1, 0.99999994, 1) bones/45/name = "ThumbCtrl.R" bones/45/parent = 29 bones/45/rest = Transform3D(0.97710997, 0.21273556, -3.141077e-07, -0.21223329, 0.9748031, 0.06867511, 0.014609943, -0.06710306, 0.9976392, 0.0045400467, 0.06477455, -0.046769787) bones/45/enabled = true bones/45/position = Vector3(0.0045400467, 0.06477455, -0.046769787) -bones/45/rotation = Quaternion(-0.03416064, -0.0036758187, -0.10691858, 0.993674) +bones/45/rotation = Quaternion(-0.034160633, -0.003675816, -0.10691861, 0.993674) bones/45/scale = Vector3(1.0000001, 1.0000001, 1.0000001) bones/46/name = "IndexCtrl.R" bones/46/parent = 29 bones/46/rest = Transform3D(0.9800801, 0.1962692, 0.030353911, -0.19836746, 0.9599855, 0.1976822, 0.009659619, -0.19976562, 0.9797961, -0.04529639, 0.07181837, -0.036155567) bones/46/enabled = true bones/46/position = Vector3(-0.04529639, 0.07181837, -0.036155567) -bones/46/rotation = Quaternion(-0.100372516, 0.0052261977, -0.09966259, 0.98993206) +bones/46/rotation = Quaternion(-0.10037252, 0.0052261893, -0.09966258, 0.98993206) bones/46/scale = Vector3(1, 1, 1) bones/47/name = "MiddleCtrl.R" bones/47/parent = 29 bones/47/rest = Transform3D(0.9957891, 0.05825713, 0.07078278, -0.06539661, 0.9925152, 0.103134215, -0.06424469, -0.10732887, 0.9921457, -0.04237805, 0.07765788, -0.011263043) bones/47/enabled = true bones/47/position = Vector3(-0.04237805, 0.07765788, -0.011263043) -bones/47/rotation = Quaternion(-0.052744865, 0.033839665, -0.030989254, 0.9975533) +bones/47/rotation = Quaternion(-0.052744843, 0.033839665, -0.03098925, 0.9975533) bones/47/scale = Vector3(1, 0.9999999, 1) bones/48/name = "RingCtrl.R" bones/48/parent = 29 bones/48/rest = Transform3D(0.97040546, -0.038884338, 0.23833002, 0.023668593, 0.9975139, 0.06637658, -0.24031854, -0.058771256, 0.9689132, -0.033461034, 0.07149337, 0.017992346) bones/48/enabled = true bones/48/position = Vector3(-0.033461034, 0.07149337, 0.017992346) -bones/48/rotation = Quaternion(-0.031536963, 0.120618366, 0.015763193, 0.99207276) +bones/48/rotation = Quaternion(-0.031537, 0.12061836, 0.015763195, 0.99207276) bones/48/scale = Vector3(1, 1, 0.9999999) bones/49/name = "LittleCtrl.R" bones/49/parent = 29 bones/49/rest = Transform3D(0.91784126, 0.18039085, 0.353591, -0.15868121, 0.9832451, -0.08972009, -0.36385122, 0.026240563, 0.93108743, -0.036283698, 0.08284567, 0.04032453) bones/49/enabled = true bones/49/position = Vector3(-0.036283698, 0.08284567, 0.04032453) -bones/49/rotation = Quaternion(0.029618144, 0.1832459, -0.0866043, 0.9787969) +bones/49/rotation = Quaternion(0.029618159, 0.18324593, -0.0866043, 0.9787969) bones/49/scale = Vector3(1, 1.0000001, 1) bones/50/name = "ArmPole.R" bones/50/parent = 0 bones/50/rest = Transform3D(-1, 0, 3.8941437e-07, 0, 1, 0, -3.8941437e-07, 0, -1, -0.35926044, 0.3746208, -0.29998556) bones/50/enabled = true -bones/50/position = Vector3(-0.50106835, 0.038118243, -0.18320106) +bones/50/position = Vector3(-0.5010683, 0.038118243, -0.18320103) bones/50/rotation = Quaternion(0, 1, 0, 1.9470718e-07) bones/50/scale = Vector3(1, 1, 1) bones/51/name = "ArmCtrl.R" bones/51/parent = 0 bones/51/rest = Transform3D(0.94635737, -0.23162138, -0.2253216, -0.22532392, -0.9728065, 0.05364829, -0.23162167, -1.0385237e-07, -0.9728063, -0.26421803, 0.77379894, -6.9123985e-08) bones/51/enabled = true -bones/51/position = Vector3(-0.26421806, 0.77379906, -5.8168844e-08) +bones/51/position = Vector3(-0.26421806, 0.7737991, -5.143851e-08) bones/51/rotation = Quaternion(0.9864031, -0.11581065, -0.115810156, -0.013596978) bones/51/scale = Vector3(1.0000058, 1.0000005, 1) bones/52/name = "WristCtrl.R" bones/52/parent = 0 bones/52/rest = Transform3D(0.9998686, -1.920822e-09, 0.016210958, -0.0011133328, -0.9976389, 0.068669416, 0.016172592, -0.06867806, -0.9975133, -0.4638072, -0.017174125, -0.022513377) bones/52/enabled = true -bones/52/position = Vector3(-0.4992833, 0.063198194, 0.25505123) -bones/52/rotation = Quaternion(0.9634464, -0.0027018473, 0.0076421746, 0.26777864) +bones/52/position = Vector3(-0.5291817, 0.23701736, 0.25988343) +bones/52/rotation = Quaternion(0.96344376, -0.0025806255, 0.007638432, 0.26778945) bones/52/scale = Vector3(0.99999994, 1, 1.0000055) bones/53/name = "neutral_bone" bones/53/parent = -1 @@ -8559,29 +8559,29 @@ bones/0/name = "DownCasing" bones/0/parent = -1 bones/0/rest = Transform3D(1, -3.1337524e-16, -6.436688e-14, -6.436689e-14, -0.009737134, -0.99995255, -3.1338864e-16, 0.99995255, -0.009737134, -1.376031e-17, -0.061970927, -0.35584867) bones/0/enabled = true -bones/0/position = Vector3(-1.1928003e-07, 0.12658781, 1.0104566) -bones/0/rotation = Quaternion(4.2351576e-08, 0.71054107, -0.7036557, 4.1941128e-08) +bones/0/position = Vector3(-1.19209275e-07, 0.33656913, 1.0125012) +bones/0/rotation = Quaternion(0.00010756433, -0.7105326, 0.7036643, -5.5809916e-05) bones/0/scale = Vector3(1, 0.99999994, 0.99999994) bones/1/name = "UpCasing" bones/1/parent = 0 bones/1/rest = Transform3D(1, 3.0177497e-16, 2.1433547e-14, -2.0314211e-16, 0.99998933, -0.0046016485, -2.143471e-14, 0.0046016485, 0.99998933, -4.4210334e-15, -0.0037285234, -0.06914721) bones/1/enabled = true bones/1/position = Vector3(-4.4210334e-15, -0.0037285234, -0.06914721) -bones/1/rotation = Quaternion(0.0023008303, 1.0703215e-14, -1.261531e-16, 0.9999974) +bones/1/rotation = Quaternion(0.0023008306, 2.9309312e-14, -1.904343e-12, 0.9999974) bones/1/scale = Vector3(1, 0.9999999, 0.9999999) bones/2/name = "Lock.L" bones/2/parent = 1 bones/2/rest = Transform3D(1, -2.2826183e-13, 4.7683716e-06, 4.768358e-06, -0.0023846624, -0.99999714, 1.1371185e-08, 0.99999714, -0.0023846624, 0.40466008, 0.74391246, -0.04321898) bones/2/enabled = true bones/2/position = Vector3(0.40466008, 0.74391246, -0.04321898) -bones/2/rotation = Quaternion(0.7079494, 1.6838625e-06, 1.6878829e-06, 0.7062632) +bones/2/rotation = Quaternion(0.7079494, 1.6838635e-06, 1.6878844e-06, 0.7062632) bones/2/scale = Vector3(1, 0.99999994, 0.99999994) bones/3/name = "Lock.R" bones/3/parent = 1 bones/3/rest = Transform3D(1, -2.2826183e-13, 4.7683716e-06, 4.768358e-06, -0.0023846624, -0.99999714, 1.1371185e-08, 0.99999714, -0.0023846624, -0.4074956, 0.74391246, -0.04321898) bones/3/enabled = true bones/3/position = Vector3(-0.4074956, 0.74391246, -0.04321898) -bones/3/rotation = Quaternion(0.7079494, 1.6838625e-06, 1.6878829e-06, 0.7062632) +bones/3/rotation = Quaternion(0.7079494, 1.6838635e-06, 1.6878844e-06, 0.7062632) bones/3/scale = Vector3(1, 0.99999994, 0.99999994) [node name="Case" type="MeshInstance3D" parent="Camera3D/molikman_hands/Armature/Skeleton3D"] @@ -8807,6 +8807,7 @@ player_input = NodePath("../PlayerInput") jump_velocity = 12.0 [node name="WeaponSystem" type="Node" parent="." node_paths=PackedStringArray("animation_player", "camera", "player", "player_input")] +unique_name_in_owner = true script = ExtResource("4_qlg0r") animation_player = NodePath("../Camera3D/molikman_hands/AnimationPlayer") camera = NodePath("../Camera3D") diff --git a/systems/weapon_system/weapon_system.gd b/systems/weapon_system/weapon_system.gd index 259b16d..d91a830 100644 --- a/systems/weapon_system/weapon_system.gd +++ b/systems/weapon_system/weapon_system.gd @@ -71,6 +71,15 @@ func add(state: WeaponSubStateMachine, slot: StringName,ignore_parent: bool = fa ammo_updated.emit(current_state.ammo,current_state.remaining_ammo) state.enter.call_deferred() +func get_empty_ability_slot() -> StringName: + if slots["ability_first"] == null: + return "ability_first" + elif slots["ability_second"] == null: + return "ability_second" + elif slots["ability_third"] == null: + return "ability_third" + return "ability_first" + @rpc("authority","call_remote","reliable") func switch(to: StringName, exit: bool = true): if slots.has(to) == false or slots[to] == null or slots[to] == current_state or (multiplayer.get_remote_sender_id() != 1 and is_multiplayer_authority() == false):