summaryrefslogtreecommitdiff
path: root/client/player
diff options
context:
space:
mode:
Diffstat (limited to 'client/player')
-rw-r--r--client/player/character/character.gd6
-rw-r--r--client/player/character/character.tscn145
2 files changed, 150 insertions, 1 deletions
diff --git a/client/player/character/character.gd b/client/player/character/character.gd
index 31d5230e..66a3435b 100644
--- a/client/player/character/character.gd
+++ b/client/player/character/character.gd
@@ -27,6 +27,7 @@ const WALK_ANIM_SPEED:= 15.0
var walking := false
var holding := false
var boosting := false
+var cutting := false
var was_boosting := boosting
var current_animation := "idle"
@@ -39,6 +40,7 @@ var current_animation := "idle"
@onready var boosting_particles = $Boosting
@onready var username_tag = $Username
@onready var tie = $Main/Tie
+@onready var knife = $Main/HandRight/Knife
@onready var hairstyles := {
"Brown": $Main/HeadDefault/Hair,
@@ -68,6 +70,8 @@ func _process(delta):
var next_animation: String
if holding:
next_animation = "hold"
+ elif cutting:
+ next_animation = "cut"
elif walking:
next_animation = "walk"
else:
@@ -122,6 +126,8 @@ func play_animation(name_: String):
step_sounds.start_autoplay()
else:
step_sounds.stop_autoplay()
+
+ knife.visible = name_ == "cut"
func _on_hand_animations_animation_finished(_name):
hand_animations.play(current_animation)
diff --git a/client/player/character/character.tscn b/client/player/character/character.tscn
index 0957eb68..a7c09c01 100644
--- a/client/player/character/character.tscn
+++ b/client/player/character/character.tscn
@@ -1,9 +1,10 @@
-[gd_scene load_steps=25 format=3 uid="uid://b3hhir2fvnunu"]
+[gd_scene load_steps=27 format=3 uid="uid://b3hhir2fvnunu"]
[ext_resource type="Script" path="res://player/character/character.gd" id="1_12lbh"]
[ext_resource type="ArrayMesh" uid="uid://bnmm01yjwultj" path="res://player/character/default/main.res" id="2_uovyg"]
[ext_resource type="ArrayMesh" uid="uid://46sp3fu3n6ls" path="res://player/character/default/hand_right.res" id="3_k28vh"]
[ext_resource type="ArrayMesh" uid="uid://r52cylox4imf" path="res://player/character/default/hand_left.res" id="4_tcrm3"]
+[ext_resource type="PackedScene" uid="uid://cufype1bex3r3" path="res://map/tiles/knife.tscn" id="4_tjq3a"]
[ext_resource type="ArrayMesh" uid="uid://csryncouqhwp1" path="res://player/character/default/head.res" id="5_n1vl0"]
[ext_resource type="ArrayMesh" uid="uid://bsxmxq4dfv2vy" path="res://player/character/hairstyles/hair.res" id="6_3uydp"]
[ext_resource type="ArrayMesh" uid="uid://dx7jswwaesok4" path="res://player/character/hairstyles/hair_2.res" id="7_1403k"]
@@ -152,6 +153,144 @@ tracks/11/keys = {
"times": PackedFloat32Array(0)
}
+[sub_resource type="Animation" id="Animation_557hk"]
+resource_name = "cut"
+length = 0.25
+loop_mode = 1
+step = 0.01
+tracks/0/type = "bezier"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("Main/HandLeft:position:x")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(1.302, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/1/type = "bezier"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("Main/HandLeft:position:y")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(-0.17, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/2/type = "bezier"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("Main/HandLeft:position:z")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(0, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/3/type = "bezier"
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/path = NodePath("Main/HandRight:position:x")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(-1, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/4/type = "bezier"
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/path = NodePath("Main/HandRight:position:y")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/5/type = "bezier"
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/path = NodePath("Main/HandRight:position:z")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/6/type = "bezier"
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/path = NodePath("Main/HandRight:rotation:x")
+tracks/6/interp = 1
+tracks/6/loop_wrap = true
+tracks/6/keys = {
+"handle_modes": PackedInt32Array(0, 0, 0),
+"points": PackedFloat32Array(-0.628319, -0.125, 0, 0.125, 0, 0.349066, -0.075, -0.0382189, 0.08, 0.0989729, -0.628319, 0, 0.340511, 0.125, 0),
+"times": PackedFloat32Array(0, 0.15, 0.25)
+}
+tracks/7/type = "bezier"
+tracks/7/imported = false
+tracks/7/enabled = true
+tracks/7/path = NodePath("Main/HandRight:rotation:y")
+tracks/7/interp = 1
+tracks/7/loop_wrap = true
+tracks/7/keys = {
+"handle_modes": PackedInt32Array(0, 0, 0),
+"points": PackedFloat32Array(-3.14159, -0.125, 0, 0.125, 0, -3.14159, -0.125, 0, 0.125, 0, -3.14159, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0, 0.15, 0.25)
+}
+tracks/8/type = "bezier"
+tracks/8/imported = false
+tracks/8/enabled = true
+tracks/8/path = NodePath("Main/HandRight:rotation:z")
+tracks/8/interp = 1
+tracks/8/loop_wrap = true
+tracks/8/keys = {
+"handle_modes": PackedInt32Array(0, 0, 0),
+"points": PackedFloat32Array(2.0944, -0.125, 0, 0.125, 0, 2.0944, -0.125, 0, 0.125, 0, 2.0944, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0, 0.15, 0.25)
+}
+tracks/9/type = "bezier"
+tracks/9/imported = false
+tracks/9/enabled = true
+tracks/9/path = NodePath("Main/HandLeft:rotation:x")
+tracks/9/interp = 1
+tracks/9/loop_wrap = true
+tracks/9/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(4.14408e-16, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/10/type = "bezier"
+tracks/10/imported = false
+tracks/10/enabled = true
+tracks/10/path = NodePath("Main/HandLeft:rotation:y")
+tracks/10/interp = 1
+tracks/10/loop_wrap = true
+tracks/10/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(3.14159, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+tracks/11/type = "bezier"
+tracks/11/imported = false
+tracks/11/enabled = true
+tracks/11/path = NodePath("Main/HandLeft:rotation:z")
+tracks/11/interp = 1
+tracks/11/loop_wrap = true
+tracks/11/keys = {
+"handle_modes": PackedInt32Array(0),
+"points": PackedFloat32Array(-2.0944, -0.125, 0, 0.125, 0),
+"times": PackedFloat32Array(0)
+}
+
[sub_resource type="Animation" id="Animation_cvcpd"]
resource_name = "hold"
loop_mode = 1
@@ -567,6 +706,7 @@ tracks/11/keys = {
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xtrfe"]
_data = {
"RESET": SubResource("Animation_tdhvg"),
+"cut": SubResource("Animation_557hk"),
"hold": SubResource("Animation_cvcpd"),
"idle": SubResource("Animation_r1hej"),
"walk": SubResource("Animation_7kiho")
@@ -595,6 +735,9 @@ transform = Transform3D(0.287144, 0.2864, -1.17785e-06, 0.402357, -0.133775, 0.3
mesh = ExtResource("3_k28vh")
skeleton = NodePath("")
+[node name="Knife" parent="Main/HandRight" instance=ExtResource("4_tjq3a")]
+transform = Transform3D(3.69699, 2.68602, 2.63837, -3.70658, -2.69301, 7.93544, 3.10156, -4.26893, -1.08623e-05, -0.157983, 0.472216, -0.19819)
+
[node name="HandLeft" type="MeshInstance3D" parent="Main"]
transform = Transform3D(0.287143, -0.2864, 1.45591e-06, -0.497341, -0.165355, -2.37987e-16, 7.2796e-07, -7.26076e-07, -0.574281, 1.302, -0.17, 0)
mesh = ExtResource("4_tcrm3")