Different damage based on body part

This commit is contained in:
Rendo 2025-12-11 20:54:24 +05:00
commit 1d5065cbbf
8 changed files with 86 additions and 101 deletions

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=83 format=4 uid="uid://dpsr6ug3pkb40"]
[gd_scene load_steps=86 format=4 uid="uid://dpsr6ug3pkb40"]
[ext_resource type="Script" uid="uid://3dphlay25fih" path="res://players/player/player.gd" id="1_l07l8"]
[ext_resource type="Material" uid="uid://cjb0h3of85nc2" path="res://materials/players/molikman/mat_Molikman.tres" id="2_330gv"]
@ -38,6 +38,21 @@
[ext_resource type="Script" uid="uid://dsp1sq46c5i3y" path="res://players/player/player_interaction.gd" id="37_3lpnn"]
[ext_resource type="Script" uid="uid://dfvnx8f1v6m5g" path="res://players/player/player_input.gd" id="38_2cl6u"]
[sub_resource type="SphereShape3D" id="SphereShape3D_tgg0h"]
radius = 0.15783496
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_l07l8"]
radius = 0.2163086
height = 1.5151367
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_330gv"]
radius = 0.083984375
height = 0.73394775
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_og1ui"]
radius = 0.08154297
height = 0.7824707
[sub_resource type="ArrayMesh" id="ArrayMesh_lot4n"]
_surfaces = [{
"aabb": AABB(-1.6094911, -1.1382344, -1.5418212, 3.2189822, 2.1382344, 2.9440465),
@ -325,9 +340,6 @@ _surfaces = [{
}]
blend_shape_mode = 0
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_u8vuu"]
resource_local_to_scene = true
[sub_resource type="ArrayMesh" id="ArrayMesh_xd1kh"]
resource_name = "molikman_hands_Plane_004"
_surfaces = [{
@ -7444,124 +7456,64 @@ length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CollisionShape3D:position")
tracks/0/path = NodePath("Camera3D:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 1, 0)]
"values": [Vector3(0, 2, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("CollisionShape3D:shape:height")
tracks/1/path = NodePath("molikman_ingame:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [2.0]
"values": [Vector3(0, 1.1793717, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Camera3D:position")
tracks/2/path = NodePath("molikman_ingame:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 2, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("molikman_ingame:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 1.1793717, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("molikman_ingame:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("CollisionShape3D:disabled")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_oprun"]
resource_name = "crouch"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("CollisionShape3D:position")
tracks/0/path = NodePath("Camera3D:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 1.166, 0), Vector3(0, 0.874, 0)]
"values": [Vector3(0, 2, 0), Vector3(0, 1.5, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("CollisionShape3D:shape:height")
tracks/1/path = NodePath("molikman_ingame:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [2.331, 1.7479999999999998]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Camera3D:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 2, 0), Vector3(0, 1.5, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("molikman_ingame:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 1.1793717, 0), Vector3(0, 0.6695229, 0)]
}
@ -7592,18 +7544,6 @@ tracks/1/keys = {
"update": 0,
"values": [Vector3(0, 1.1793717, 0), Vector3(0, 0.019058675, 1.1753564)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("CollisionShape3D:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_a8ls1"]
_data = {
@ -7634,6 +7574,30 @@ weapon_models = {
&"sp": NodePath("Camera3D/molikman_hands/GunArm")
}
[node name="HeadShape" type="CollisionShape3D" parent="." groups=["Head"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0182142, 0)
shape = SubResource("SphereShape3D_tgg0h")
[node name="TorsoShape" type="CollisionShape3D" parent="." groups=["Torso"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1868755, 0)
shape = SubResource("CapsuleShape3D_l07l8")
[node name="LegShape1" type="CollisionShape3D" parent="." groups=["Limb"]]
transform = Transform3D(0.9984104, 0.056361705, 0, -0.056361705, 0.9984104, 0, 0, 0, 1, -0.15081304, 0.36279398, -0.039083213)
shape = SubResource("CapsuleShape3D_330gv")
[node name="LegShape2" type="CollisionShape3D" parent="." groups=["Limb"]]
transform = Transform3D(0.99874574, -0.050070006, 0, 0.050070006, 0.99874574, 0, 0, 0, 1, 0.15715861, 0.35183817, -0.046561778)
shape = SubResource("CapsuleShape3D_330gv")
[node name="HandShape1" type="CollisionShape3D" parent="." groups=["Limb"]]
transform = Transform3D(0.9803125, 0.19745202, 0, -0.19745202, 0.9803125, 0, 0, 0, 1, -0.27572715, 1.5459963, 0)
shape = SubResource("CapsuleShape3D_og1ui")
[node name="HandShape2" type="CollisionShape3D" parent="." groups=["Limb"]]
transform = Transform3D(0.9477017, -0.31915784, 0, 0.31915784, 0.9477017, 0, 0, 0, 1, 0.27863508, 1.5459963, 0)
shape = SubResource("CapsuleShape3D_og1ui")
[node name="molikman_ingame" type="Node3D" parent="."]
transform = Transform3D(0.75, 0, 0, 0, 0.74999994, 0, 0, 0, 0.74999994, 0, 1.1793717, 0)
@ -8112,10 +8076,6 @@ visible_for_others = true
reference_player = NodePath("../..")
metadata/_custom_type_script = "uid://dd5mp72dq43v6"
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("CapsuleShape3D_u8vuu")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 2, 0)
cull_mask = 1048573
@ -8819,6 +8779,7 @@ layer = true
inverse = true
[node name="PickupRange" type="Area3D" parent="." node_paths=PackedStringArray("weapon_system")]
visible = false
collision_layer = 0
collision_mask = 8
script = ExtResource("34_anida")

View file

@ -20,10 +20,11 @@ func _enter() -> void:
player_input.walk_begin.connect(begin_walk)
func _exit() -> void:
player_input.jumped.disconnect(on_jumped)
player_input.crouch_begin.disconnect(begin_crouch)
player_input.walk_begin.disconnect(begin_walk)
step_time = 0
if Session.is_server_request():
player_input.jumped.disconnect(on_jumped)
player_input.crouch_begin.disconnect(begin_crouch)
player_input.walk_begin.disconnect(begin_walk)
step_time = 0
func physics_update(delta: float) -> void:
if not is_multiplayer_authority():