SupaLidlGame/Characters/DocLegionary.tscn

456 lines
15 KiB
Plaintext
Raw Permalink Normal View History

[gd_scene load_steps=45 format=3 uid="uid://cdj50hb84aujp"]
2023-08-08 00:54:00 -07:00
[ext_resource type="Shader" path="res://Shaders/Flash.gdshader" id="1_hvgeb"]
[ext_resource type="Script" path="res://Characters/Enemy.cs" id="2_h5w5n"]
[ext_resource type="Script" path="res://State/Character/CharacterStateMachine.cs" id="3_04p3j"]
[ext_resource type="Script" path="res://State/Character/NPCIdleState.cs" id="4_1ngkf"]
[ext_resource type="Script" path="res://State/Character/NPCMoveState.cs" id="5_wcpa1"]
[ext_resource type="Script" path="res://State/Thinker/ThinkerStateMachine.cs" id="6_121gp"]
2023-08-16 21:02:37 -07:00
[ext_resource type="Script" path="res://State/Character/CharacterDashState.cs" id="6_pwguk"]
[ext_resource type="Script" path="res://State/Thinker/DashDefensive.cs" id="8_n8t7f"]
2023-08-08 00:54:00 -07:00
[ext_resource type="Script" path="res://State/Thinker/IdleState.cs" id="9_ewnq3"]
[ext_resource type="Script" path="res://Utils/AnimationManager.cs" id="9_ssmee"]
2023-08-16 21:02:37 -07:00
[ext_resource type="Script" path="res://State/Thinker/PursueState.cs" id="9_u7gxx"]
2023-08-08 00:54:00 -07:00
[ext_resource type="Animation" uid="uid://8e8r3y1imvsx" path="res://Assets/Animations/stun.res" id="10_oplmj"]
[ext_resource type="Script" path="res://Utils/CharacterStats.cs" id="11_6o2tx"]
2023-08-08 00:54:00 -07:00
[ext_resource type="Material" uid="uid://bat28samf7ukd" path="res://Assets/Sprites/Particles/NPCDamageProcessMaterial.tres" id="11_qcw5x"]
[ext_resource type="Script" path="res://Utils/Values/DoubleValue.cs" id="12_ds5eh"]
2023-08-08 00:54:00 -07:00
[ext_resource type="Texture2D" uid="uid://bd8l8kafb42dt" path="res://Assets/Sprites/Particles/circle.png" id="12_rlelw"]
[ext_resource type="Material" uid="uid://2tsvsp45elru" path="res://Assets/Sprites/Particles/NPCDeathParticles.tres" id="13_kgmsk"]
[ext_resource type="Texture2D" uid="uid://c1a7lvb4uuwfy" path="res://Assets/Sprites/Particles/circle-16.png" id="14_88n3w"]
[ext_resource type="AudioStream" uid="uid://k6kpdj1kv0jg" path="res://Assets/Sounds/splat.ogg" id="15_w7mkq"]
[ext_resource type="Texture2D" uid="uid://khq0ujwl6xrt" path="res://Assets/Sprites/Characters/doc-legionary.png" id="16_vtfwo"]
[ext_resource type="Script" path="res://Items/Inventory.cs" id="17_5rur0"]
[ext_resource type="PackedScene" uid="uid://p7oijq6dbvvk" path="res://Items/Weapons/DocLance.tscn" id="18_jblpi"]
[ext_resource type="PackedScene" uid="uid://cjgxyhgcyvsv7" path="res://BoundingBoxes/Hurtbox.tscn" id="20_dwjfv"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2fq6c"]
resource_local_to_scene = true
shader = ExtResource("1_hvgeb")
shader_parameter/color = Vector4(1, 1, 1, 1)
shader_parameter/intensity = 0.0
shader_parameter/alpha_modulate = 1.0
[sub_resource type="Animation" id="Animation_rqtrh"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
2023-12-09 16:26:44 -08:00
tracks/0/path = NodePath("%Sprites/Node2D/Character:frame")
2023-08-08 00:54:00 -07:00
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_qws2q"]
resource_name = "idle"
length = 0.8
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
2023-10-02 00:10:24 -07:00
tracks/0/path = NodePath("%Sprites/Node2D/Character:frame")
2023-08-08 00:54:00 -07:00
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_dwyme"]
resource_name = "move"
length = 0.6
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
2023-10-02 00:10:24 -07:00
tracks/0/path = NodePath("%Sprites/Node2D/Character:frame")
2023-08-08 00:54:00 -07:00
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 1,
"values": [1, 2, 3, 4, 5, 6]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_uqsue"]
_data = {
"RESET": SubResource("Animation_rqtrh"),
"idle": SubResource("Animation_qws2q"),
"move": SubResource("Animation_dwyme")
}
[sub_resource type="Animation" id="Animation_adxyh"]
resource_local_to_scene = true
length = 0.001
[sub_resource type="AnimationLibrary" id="AnimationLibrary_sxq14"]
_data = {
"RESET": SubResource("Animation_adxyh")
}
[sub_resource type="Animation" id="Animation_k6l16"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:material:shader_parameter/intensity")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:material:shader_parameter/alpha_modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
2023-09-11 10:14:50 -07:00
tracks/2/path = NodePath("%Effects/DeathParticles:emitting")
2023-08-08 00:54:00 -07:00
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
2023-09-11 10:14:50 -07:00
tracks/3/path = NodePath("%Effects/HurtParticles:emitting")
2023-08-08 00:54:00 -07:00
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_lhc4c"]
resource_name = "death"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
2023-09-11 10:14:50 -07:00
tracks/0/path = NodePath("%Effects/DeathParticles:emitting")
2023-08-08 00:54:00 -07:00
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:material:shader_parameter/alpha_modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [1.0, 0.0]
}
[sub_resource type="Animation" id="Animation_0vgmg"]
resource_local_to_scene = true
resource_name = "hurt"
length = 0.2
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:material:shader_parameter/intensity")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.05, 0.1, 0.2),
"transitions": PackedFloat32Array(4, 4, 4, 4),
"update": 0,
"values": [1.0, 0.0, 1.0, 0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
2023-09-11 10:14:50 -07:00
tracks/1/path = NodePath("%Effects/HurtParticles:emitting")
2023-08-08 00:54:00 -07:00
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
2023-09-11 10:14:50 -07:00
tracks/2/path = NodePath("%Effects/HurtParticles")
2023-08-08 00:54:00 -07:00
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"restart"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_rc55s"]
_data = {
"RESET": SubResource("Animation_k6l16"),
"death": SubResource("Animation_lhc4c"),
"hurt": SubResource("Animation_0vgmg")
}
[sub_resource type="Animation" id="Animation_7j54f"]
length = 0.001
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kks2p"]
_data = {
"RESET": SubResource("Animation_7j54f"),
"stun": ExtResource("10_oplmj")
}
[sub_resource type="CanvasTexture" id="CanvasTexture_pited"]
diffuse_texture = ExtResource("14_88n3w")
[sub_resource type="Gradient" id="Gradient_b2o0f"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_iyaih"]
gradient = SubResource("Gradient_b2o0f")
[sub_resource type="Curve" id="Curve_30p4b"]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.2, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.5), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_5uulw"]
curve = SubResource("Curve_30p4b")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_qdhau"]
particle_flag_disable_z = true
spread = 180.0
initial_velocity_min = 32.0
initial_velocity_max = 32.0
angular_velocity_min = 90.0
angular_velocity_max = 90.0
2023-12-09 16:26:44 -08:00
gravity = Vector3(0, 0, 0)
2023-08-08 00:54:00 -07:00
linear_accel_min = -64.0
linear_accel_max = -32.0
tangential_accel_min = 8.0
tangential_accel_max = 8.0
scale_min = 0.13
scale_max = 0.25
scale_curve = SubResource("CurveTexture_5uulw")
color = Color(1, 0, 0, 1)
color_ramp = SubResource("GradientTexture1D_iyaih")
[sub_resource type="CircleShape2D" id="CircleShape2D_umi1b"]
radius = 4.0
2023-08-08 00:54:00 -07:00
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1gjgc"]
size = Vector2(12, 16)
[node name="Legionary" type="CharacterBody2D" node_paths=PackedStringArray("DefaultSelectedItem", "ThinkerStateMachine", "Stats", "Sprite", "Inventory", "StateMachine", "Hurtbox")]
2023-08-08 00:54:00 -07:00
y_sort_enabled = true
texture_filter = 3
material = SubResource("ShaderMaterial_2fq6c")
collision_layer = 6
collision_mask = 17
script = ExtResource("2_h5w5n")
DefaultSelectedItem = NodePath("Inventory/DocLance")
ThinkerStateMachine = NodePath("ThinkerStateMachine")
Speed = 56.0
Stats = NodePath("Stats")
2023-08-16 21:02:37 -07:00
Health = 130.0
2023-08-08 00:54:00 -07:00
Sprite = NodePath("Sprites/Node2D/Character")
Inventory = NodePath("Inventory")
StateMachine = NodePath("StateMachine")
Hurtbox = NodePath("Hurtbox")
2024-06-06 09:29:34 -07:00
Faction = 2
2023-08-16 21:02:37 -07:00
metadata/_edit_vertical_guides_ = []
2023-08-08 00:54:00 -07:00
[node name="Stats" type="Node" parent="."]
script = ExtResource("11_6o2tx")
[node name="StaggerDamage" type="Node" parent="Stats"]
script = ExtResource("12_ds5eh")
2023-08-08 00:54:00 -07:00
[node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState", "Character")]
script = ExtResource("3_04p3j")
InitialState = NodePath("Idle")
Character = NodePath("..")
[node name="Idle" type="Node" parent="StateMachine" node_paths=PackedStringArray("MoveState", "Character")]
script = ExtResource("4_1ngkf")
MoveState = NodePath("../Move")
Character = NodePath("../..")
[node name="Move" type="Node" parent="StateMachine" node_paths=PackedStringArray("IdleState", "Character")]
script = ExtResource("5_wcpa1")
IdleState = NodePath("../Idle")
Character = NodePath("../..")
2023-08-16 21:02:37 -07:00
[node name="Dash" type="Node" parent="StateMachine" node_paths=PackedStringArray("IdleState", "Character")]
script = ExtResource("6_pwguk")
IdleState = NodePath("../Idle")
TimeToDash = 0.1
VelocityModifier = 10.0
2023-08-16 21:02:37 -07:00
Character = NodePath("../..")
2023-08-08 00:54:00 -07:00
[node name="ThinkerStateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState")]
script = ExtResource("6_121gp")
InitialState = NodePath("Idle")
[node name="Attack" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("PassiveState", "PursueState", "NPC")]
2023-08-16 21:02:37 -07:00
script = ExtResource("8_n8t7f")
MaxDistanceToTarget = 256.0
2023-08-08 00:54:00 -07:00
UseItemDistance = 64.0
PassiveState = NodePath("../Idle")
2023-08-16 21:02:37 -07:00
PursueState = NodePath("../Pursue")
2023-08-08 00:54:00 -07:00
NPC = NodePath("../..")
[node name="Idle" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("PursueState", "NavigationAgent", "NPC")]
script = ExtResource("9_ewnq3")
2023-08-16 21:02:37 -07:00
PursueState = NodePath("../Pursue")
2023-08-08 00:54:00 -07:00
MinTargetDistance = 24.0
PursueOnLineOfSight = true
MinLineOfSightDistance = 256.0
NavigationAgent = NodePath("../../NavigationAgent2D")
NPC = NodePath("../..")
2023-08-16 21:02:37 -07:00
[node name="Pursue" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("NavigationAgent", "AttackState", "PassiveState", "NPC")]
script = ExtResource("9_u7gxx")
NavigationAgent = NodePath("../../NavigationAgent2D")
AttackState = NodePath("../Attack")
PassiveState = NodePath("../Idle")
MinDistanceToTarget = 72.0
MaxDistanceFromOrigin = 128.0
NPC = NodePath("../..")
2023-08-08 00:54:00 -07:00
[node name="NavigationAgent2D" type="NavigationAgent2D" parent="."]
target_desired_distance = 16.0
2023-12-09 16:26:44 -08:00
debug_enabled = true
2023-08-08 00:54:00 -07:00
[node name="Animations" type="Node" parent="."]
script = ExtResource("9_ssmee")
[node name="Movement" type="AnimationPlayer" parent="Animations"]
2023-10-02 00:10:24 -07:00
root_node = NodePath("../..")
2023-08-08 00:54:00 -07:00
libraries = {
"": SubResource("AnimationLibrary_uqsue")
}
[node name="Attack" type="AnimationPlayer" parent="Animations"]
2023-10-02 00:10:24 -07:00
root_node = NodePath("../..")
2023-08-08 00:54:00 -07:00
libraries = {
"": SubResource("AnimationLibrary_sxq14")
}
[node name="Hurt" type="AnimationPlayer" parent="Animations"]
root_node = NodePath("../..")
libraries = {
"": SubResource("AnimationLibrary_rc55s")
}
[node name="Stun" type="AnimationPlayer" parent="Animations"]
2023-10-02 00:10:24 -07:00
root_node = NodePath("../..")
2023-08-08 00:54:00 -07:00
libraries = {
"": SubResource("AnimationLibrary_kks2p")
}
[node name="Effects" type="Node2D" parent="."]
2023-09-11 10:14:50 -07:00
unique_name_in_owner = true
2023-08-08 00:54:00 -07:00
[node name="HurtParticles" type="GPUParticles2D" parent="Effects"]
position = Vector2(0, -8)
emitting = false
process_material = ExtResource("11_qcw5x")
texture = ExtResource("12_rlelw")
lifetime = 0.4
one_shot = true
explosiveness = 1.0
[node name="DeathParticles" type="GPUParticles2D" parent="Effects"]
emitting = false
amount = 32
process_material = ExtResource("13_kgmsk")
texture = SubResource("CanvasTexture_pited")
lifetime = 2.0
one_shot = true
preprocess = 0.1
explosiveness = 0.9
[node name="SpawnParticles" type="GPUParticles2D" parent="Effects"]
emitting = false
amount = 24
process_material = SubResource("ParticleProcessMaterial_qdhau")
texture = ExtResource("14_88n3w")
[node name="HurtSound" type="AudioStreamPlayer2D" parent="Effects"]
stream = ExtResource("15_w7mkq")
[node name="Sprites" type="Node2D" parent="."]
2023-12-09 16:26:44 -08:00
unique_name_in_owner = true
2023-08-08 00:54:00 -07:00
y_sort_enabled = true
use_parent_material = true
2024-06-06 09:31:13 -07:00
position = Vector2(0, 4)
2023-08-08 00:54:00 -07:00
rotation = 6.28319
[node name="Node2D" type="Node2D" parent="Sprites"]
use_parent_material = true
[node name="Character" type="Sprite2D" parent="Sprites/Node2D"]
use_parent_material = true
texture = ExtResource("16_vtfwo")
offset = Vector2(0, -12)
hframes = 7
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_umi1b")
2023-08-08 00:54:00 -07:00
[node name="Inventory" type="Node2D" parent="." node_paths=PackedStringArray("Hotbar")]
2023-08-08 00:54:00 -07:00
script = ExtResource("17_5rur0")
Hotbar = []
2023-12-13 18:25:20 -08:00
Items = []
2023-08-08 00:54:00 -07:00
[node name="DocLance" parent="Inventory" node_paths=PackedStringArray("Hitbox", "AnimationPlayer", "ParryParticles", "StateMachine", "Anchor", "HandAnchor") instance=ExtResource("18_jblpi")]
Hitbox = NodePath("Hitbox")
AnimationPlayer = NodePath("AnimationPlayer")
ParryParticles = NodePath("Anchor/Node2D/Sprite2D/ParryParticles")
StateMachine = NodePath("State")
Anchor = NodePath("Anchor")
HandAnchor = NodePath("Anchor/Node2D/Sprite2D/Hand")
2023-08-08 00:54:00 -07:00
[node name="Hurtbox" parent="." instance=ExtResource("20_dwjfv")]
position = Vector2(0, 4)
2023-08-08 00:54:00 -07:00
[node name="CollisionShape2D" parent="Hurtbox" index="0"]
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_1gjgc")
[editable path="Hurtbox"]