small death animation and toolbox
This commit is contained in:
@@ -16,6 +16,8 @@ public partial class HeadSystem : Node3D
|
||||
public delegate void HitTargetEventHandler();
|
||||
[Signal]
|
||||
public delegate void GotHitEventHandler();
|
||||
[Signal]
|
||||
public delegate void DeathAnimationFinishedEventHandler();
|
||||
|
||||
[Signal]
|
||||
public delegate void StepFootEventHandler();
|
||||
@@ -129,6 +131,15 @@ public partial class HeadSystem : Node3D
|
||||
{
|
||||
_animationTree.Set("parameters/OnHit/request", (int) AnimationNodeOneShot.OneShotRequest.Fire);
|
||||
}
|
||||
public void OnStartDeathAnimation()
|
||||
{
|
||||
_animationTree.Set("parameters/OnDie/request", (int) AnimationNodeOneShot.OneShotRequest.Fire);
|
||||
}
|
||||
|
||||
public void OnDeathAnimationFinished()
|
||||
{
|
||||
EmitSignalDeathAnimationFinished();
|
||||
}
|
||||
|
||||
public void OnHitTarget()
|
||||
{
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
[gd_resource type="AnimationNodeBlendTree" load_steps=11 format=3 uid="uid://c26yvcyyyj811"]
|
||||
[gd_resource type="AnimationNodeBlendTree" load_steps=13 format=3 uid="uid://c26yvcyyyj811"]
|
||||
|
||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://3r5oeg0ho0d4" path="res://systems/head/fp_state_machine.tres" id="1_knaxl"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1hkum"]
|
||||
animation = &"die"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_knaxl"]
|
||||
animation = &"idle"
|
||||
|
||||
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_ao3u1"]
|
||||
|
||||
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_1hkum"]
|
||||
|
||||
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_knaxl"]
|
||||
@@ -32,8 +37,8 @@ animation = &"jump_start"
|
||||
animation = &"mantle"
|
||||
|
||||
[resource]
|
||||
graph_offset = Vector2(-223.13931, -84.56735)
|
||||
nodes/output/position = Vector2(1540, 0)
|
||||
graph_offset = Vector2(-290.66962, -123.155754)
|
||||
nodes/output/position = Vector2(1700, -40)
|
||||
nodes/AnimationNodeStateMachine/node = ExtResource("1_knaxl")
|
||||
nodes/AnimationNodeStateMachine/position = Vector2(-560, 180)
|
||||
nodes/Idle/node = SubResource("AnimationNodeAnimation_knaxl")
|
||||
@@ -54,4 +59,8 @@ nodes/OnMantle/node = SubResource("AnimationNodeOneShot_dlkjl")
|
||||
nodes/OnMantle/position = Vector2(900, -60)
|
||||
nodes/mantle/node = SubResource("AnimationNodeAnimation_lwjon")
|
||||
nodes/mantle/position = Vector2(640, 320)
|
||||
node_connections = [&"output", 0, &"OnHit", &"OnHit", 0, &"OnMantle", &"OnHit", 1, &"hit1", &"OnJumpStart", 0, &"Idle", &"OnJumpStart", 1, &"jump_start", &"OnJumpEnd", 0, &"OnJumpStart", &"OnJumpEnd", 1, &"jump_end", &"OnMantle", 0, &"OnJumpEnd", &"OnMantle", 1, &"mantle"]
|
||||
nodes/OnDie/node = SubResource("AnimationNodeOneShot_ao3u1")
|
||||
nodes/OnDie/position = Vector2(1500, -60)
|
||||
nodes/Die/node = SubResource("AnimationNodeAnimation_1hkum")
|
||||
nodes/Die/position = Vector2(1280, 340)
|
||||
node_connections = [&"output", 0, &"OnDie", &"OnHit", 0, &"OnMantle", &"OnHit", 1, &"hit1", &"OnJumpStart", 0, &"Idle", &"OnJumpStart", 1, &"jump_start", &"OnJumpEnd", 0, &"OnJumpStart", &"OnJumpEnd", 1, &"jump_end", &"OnMantle", 0, &"OnJumpEnd", &"OnMantle", 1, &"mantle", &"OnDie", 0, &"OnHit", &"OnDie", 1, &"Die"]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=29 format=3 uid="uid://0ysqmqphq6mq"]
|
||||
[gd_scene load_steps=30 format=3 uid="uid://0ysqmqphq6mq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dtkdrnsmlwm67" path="res://systems/head/HeadSystem.cs" id="1_8abgy"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://ckr26s4e3fj1m" path="res://assets/swords/resources/fp_sword23.tres" id="2_c5qep"]
|
||||
@@ -133,6 +133,30 @@ tracks/4/keys = {
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../../FPRig:position")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("../../FPRig:rotation")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_r0h40"]
|
||||
resource_name = "hit1"
|
||||
@@ -305,9 +329,76 @@ tracks/0/keys = {
|
||||
"values": [Vector3(0, 0, 0.00011616433), Vector3(-0.5235988, 0, 0), Vector3(0, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_sdjj3"]
|
||||
resource_name = "die"
|
||||
length = 1.0000033
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("..:position")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.7),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(4.792308e-05, -0.4125456, 0.56061167)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("..:rotation")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.3, 0.7),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0.00011616433), Vector3(0, 0, 0), Vector3(-0.12217305, -0.090757124, 1.727876)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("../../FPRig:position")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.33333334, 0.8333333),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(-0.426, 10, 0.028), Vector3(-1.2110655, 0.36514676, 0.080477595)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("../../FPRig:rotation")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.33333334, 0.8333333),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(0.39806452, 0.17761895, 1.4115733), Vector3(-0.5466285, -1.1119838, -2.9170606)]
|
||||
}
|
||||
tracks/4/type = "method"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../..")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"OnDeathAnimationFinished"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_0hyrq"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_urko7"),
|
||||
&"die": SubResource("Animation_sdjj3"),
|
||||
&"hit1": SubResource("Animation_r0h40"),
|
||||
&"idle": SubResource("Animation_0hyrq"),
|
||||
&"jump_end": SubResource("Animation_1ay6d"),
|
||||
@@ -322,6 +413,7 @@ DisplacedWeaponSway = 1.0
|
||||
DisplacedWeaponAdjustmentSpeed = 8.0
|
||||
|
||||
[node name="FPRig" type="Node3D" parent="."]
|
||||
transform = Transform3D(0.9999998, 0, 0, 0, 1.0000002, 0, 0, 0, 1.0000002, 0, 0, 0)
|
||||
|
||||
[node name="Sword" type="Node3D" parent="FPRig"]
|
||||
transform = Transform3D(0.42791694, -0.008550272, -0.9037781, 0.19667713, 0.9768738, 0.0838801, 0.88215953, -0.2136461, 0.41970265, 0.53640664, -0.7880347, -1.9288678)
|
||||
@@ -332,7 +424,7 @@ cast_shadow = 0
|
||||
mesh = ExtResource("2_c5qep")
|
||||
|
||||
[node name="CameraSmooth" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, -0.00011616431, 0, 0.00011616433, 0.9999998, 0, 0, 0, 0.9999998, 0, 0, 0)
|
||||
transform = Transform3D(0.99999994, -0.0001161643, 0, 0.00011616432, 0.99999976, 0, 0, 0, 0.9999998, 0, 0, 0)
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CameraSmooth"]
|
||||
transform = Transform3D(1, -7.508787e-09, -1.4551914e-08, 7.508788e-09, 0.99999994, -1.5046679e-08, 1.4551915e-08, 1.5046679e-08, 0.99999994, -0.04610423, -0.02960227, -0.053528003)
|
||||
@@ -382,6 +474,9 @@ parameters/OnJumpEnd/request = 0
|
||||
parameters/OnMantle/active = false
|
||||
parameters/OnMantle/internal_active = false
|
||||
parameters/OnMantle/request = 0
|
||||
parameters/OnDie/active = false
|
||||
parameters/OnDie/internal_active = false
|
||||
parameters/OnDie/request = 0
|
||||
|
||||
[connection signal="GotHit" from="." to="CameraSmooth/Camera3D/OnGetHitShaker" method="play_shake"]
|
||||
[connection signal="HitTarget" from="." to="CameraSmooth/Camera3D/OnHitShaker" method="play_shake"]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=161 format=3 uid="uid://bl5crtu1gkrtr"]
|
||||
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=163 format=3 uid="uid://bl5crtu1gkrtr"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cpplm41b5bt6m" path="res://addons/guide/guide_action_mapping.gd" id="1_qmhk6"]
|
||||
[ext_resource type="Resource" uid="uid://htqvokm8mufq" path="res://systems/inputs/base_mode/move.tres" id="2_g6bbx"]
|
||||
@@ -36,6 +36,7 @@
|
||||
[ext_resource type="Resource" uid="uid://dxy0071ic1wdj" path="res://systems/inputs/base_mode/slam.tres" id="32_s8kjn"]
|
||||
[ext_resource type="Resource" uid="uid://s1l0n1iitc6m" path="res://systems/inputs/base_mode/move_back.tres" id="33_fykw6"]
|
||||
[ext_resource type="Resource" uid="uid://brswsknpgwal2" path="res://systems/inputs/base_mode/move_front.tres" id="34_rvpjj"]
|
||||
[ext_resource type="Resource" uid="uid://ca68r7n3bwba3" path="res://systems/inputs/base_mode/toolbox.tres" id="34_s8kjn"]
|
||||
[ext_resource type="Resource" uid="uid://f3vs6l4m623s" path="res://systems/inputs/base_mode/move_left.tres" id="35_s8kjn"]
|
||||
[ext_resource type="Resource" uid="uid://t612lts1wi1s" path="res://systems/inputs/base_mode/move_right.tres" id="36_vibkn"]
|
||||
|
||||
@@ -479,23 +480,28 @@ script = ExtResource("3_yp12v")
|
||||
input = SubResource("Resource_jjamb")
|
||||
triggers = Array[ExtResource("8_2tfaw")]([SubResource("Resource_4kb6s")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_weyro"]
|
||||
script = ExtResource("1_qmhk6")
|
||||
action = ExtResource("29_q86qg")
|
||||
input_mappings = Array[ExtResource("3_yp12v")]([SubResource("Resource_ai85f"), SubResource("Resource_1ycft")])
|
||||
metadata/_guide_input_mappings_collapsed = false
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8e1uk"]
|
||||
script = ExtResource("19_qkgmj")
|
||||
button = 4
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ilhhf"]
|
||||
[sub_resource type="Resource" id="Resource_k8i2y"]
|
||||
script = ExtResource("15_fykw6")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_k8i2y"]
|
||||
[sub_resource type="Resource" id="Resource_ilhhf"]
|
||||
script = ExtResource("3_yp12v")
|
||||
input = SubResource("Resource_8e1uk")
|
||||
triggers = Array[ExtResource("8_2tfaw")]([SubResource("Resource_ilhhf")])
|
||||
triggers = Array[ExtResource("8_2tfaw")]([SubResource("Resource_k8i2y")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_weyro"]
|
||||
[sub_resource type="Resource" id="Resource_o5fur"]
|
||||
script = ExtResource("1_qmhk6")
|
||||
action = ExtResource("29_q86qg")
|
||||
input_mappings = Array[ExtResource("3_yp12v")]([SubResource("Resource_ai85f"), SubResource("Resource_1ycft"), SubResource("Resource_k8i2y")])
|
||||
metadata/_guide_input_mappings_collapsed = false
|
||||
action = ExtResource("34_s8kjn")
|
||||
input_mappings = Array[ExtResource("3_yp12v")]([SubResource("Resource_ilhhf")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_kcylj"]
|
||||
script = ExtResource("30_cvxqo")
|
||||
@@ -551,5 +557,5 @@ input_mappings = Array[ExtResource("3_yp12v")]([SubResource("Resource_7io5e")])
|
||||
|
||||
[resource]
|
||||
script = ExtResource("23_llfhp")
|
||||
mappings = Array[ExtResource("1_qmhk6")]([SubResource("Resource_88x08"), SubResource("Resource_tgr2g"), SubResource("Resource_iarn8"), SubResource("Resource_cvxqo"), SubResource("Resource_tb8ii"), SubResource("Resource_iihs4"), SubResource("Resource_vibkn"), SubResource("Resource_2hs2y"), SubResource("Resource_d2r0d"), SubResource("Resource_xt1x5"), SubResource("Resource_ew1hw"), SubResource("Resource_3frwi"), SubResource("Resource_0qat1"), SubResource("Resource_vtk18"), SubResource("Resource_weyro"), SubResource("Resource_fjku4"), SubResource("Resource_odnhd"), SubResource("Resource_0eff7"), SubResource("Resource_gt77e")])
|
||||
mappings = Array[ExtResource("1_qmhk6")]([SubResource("Resource_88x08"), SubResource("Resource_tgr2g"), SubResource("Resource_iarn8"), SubResource("Resource_cvxqo"), SubResource("Resource_tb8ii"), SubResource("Resource_iihs4"), SubResource("Resource_vibkn"), SubResource("Resource_2hs2y"), SubResource("Resource_d2r0d"), SubResource("Resource_xt1x5"), SubResource("Resource_ew1hw"), SubResource("Resource_3frwi"), SubResource("Resource_0qat1"), SubResource("Resource_vtk18"), SubResource("Resource_weyro"), SubResource("Resource_o5fur"), SubResource("Resource_fjku4"), SubResource("Resource_odnhd"), SubResource("Resource_0eff7"), SubResource("Resource_gt77e")])
|
||||
metadata/_custom_type_script = "uid://dsa1dnifd6w32"
|
||||
|
||||
7
systems/inputs/base_mode/toolbox.tres
Normal file
7
systems/inputs/base_mode/toolbox.tres
Normal file
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://ca68r7n3bwba3"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_pmr0d"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_pmr0d")
|
||||
metadata/_custom_type_script = "uid://cluhc11vixkf1"
|
||||
@@ -1,28 +1,42 @@
|
||||
@icon("res://assets/ui/IconGodotNode/white/icon_gear_2.png")
|
||||
extends Node
|
||||
|
||||
@export_category("Scenes")
|
||||
@export_group("General")
|
||||
@export var main_menu_path : String = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
|
||||
|
||||
@export_group("Levels")
|
||||
|
||||
@export_category("Menus")
|
||||
@export_group("Overlaid")
|
||||
@export var lost_menu : PackedScene = preload("uid://ciyq8eiv1mtie")
|
||||
@export var lost_menu_scene : PackedScene = preload("uid://ciyq8eiv1mtie")
|
||||
@export var toolbox_scene : PackedScene = preload("uid://bcn582q8qd4ns")
|
||||
|
||||
@export_category("Others")
|
||||
@export var focused_viewport : Viewport
|
||||
@export var toolbox_action:GUIDEAction = preload("uid://ca68r7n3bwba3")
|
||||
|
||||
# Debug
|
||||
@onready var debug_layer: CanvasLayer = $"../DebugLayer"
|
||||
@onready var player: PlayerController = $"../Player"
|
||||
|
||||
func on_player_died() -> void:
|
||||
func _ready() -> void:
|
||||
toolbox_action.triggered.connect(open_toolbox)
|
||||
|
||||
func open_overlaid_menu(menu: PackedScene) -> Node:
|
||||
if not focused_viewport:
|
||||
focused_viewport = get_viewport()
|
||||
var _initial_focus_control = focused_viewport.gui_get_focus_owner()
|
||||
var current_menu: LevelLostMenu = lost_menu.instantiate()
|
||||
|
||||
get_tree().current_scene.call_deferred("add_child", current_menu)
|
||||
current_menu.restart_pressed.connect(restart_current_level)
|
||||
current_menu.main_menu_pressed.connect(back_to_main_menu)
|
||||
return menu.instantiate()
|
||||
|
||||
func open_toolbox() -> void:
|
||||
var toolbox: Toolbox = open_overlaid_menu(toolbox_scene)
|
||||
toolbox.player = player
|
||||
debug_layer.call_deferred("add_child", toolbox)
|
||||
|
||||
func on_player_died() -> void:
|
||||
var lost_menu: LevelLostMenu = open_overlaid_menu(lost_menu_scene)
|
||||
get_tree().current_scene.call_deferred("add_child", lost_menu)
|
||||
lost_menu.restart_pressed.connect(restart_current_level)
|
||||
lost_menu.main_menu_pressed.connect(back_to_main_menu)
|
||||
|
||||
func back_to_main_menu():
|
||||
SceneLoader.load_scene(main_menu_path)
|
||||
|
||||
Reference in New Issue
Block a user