2023-08-14 14:07:57 -07:00
|
|
|
[gd_scene load_steps=44 format=3 uid="uid://3bcudbixirkj"]
|
2023-08-05 23:50:08 -07:00
|
|
|
|
|
|
|
[ext_resource type="Shader" path="res://Shaders/Flash.gdshader" id="2_2lfeo"]
|
|
|
|
[ext_resource type="Script" path="res://Characters/Enemy.cs" id="2_l16dp"]
|
|
|
|
[ext_resource type="Script" path="res://State/Character/CharacterStateMachine.cs" id="3_lj2a2"]
|
|
|
|
[ext_resource type="Script" path="res://State/Character/NPCIdleState.cs" id="4_38uyt"]
|
|
|
|
[ext_resource type="Script" path="res://State/Character/NPCMoveState.cs" id="5_0peb6"]
|
|
|
|
[ext_resource type="Script" path="res://Utils/AnimationManager.cs" id="6_1a373"]
|
|
|
|
[ext_resource type="Script" path="res://State/Thinker/ThinkerStateMachine.cs" id="6_8y4xc"]
|
|
|
|
[ext_resource type="Script" path="res://State/Thinker/PursueState.cs" id="7_q01ij"]
|
|
|
|
[ext_resource type="Animation" uid="uid://8e8r3y1imvsx" path="res://Assets/Animations/stun.res" id="8_n0iqj"]
|
|
|
|
[ext_resource type="Script" path="res://State/Thinker/AttackState.cs" id="8_woh6n"]
|
2023-08-14 14:07:57 -07:00
|
|
|
[ext_resource type="Script" path="res://State/Thinker/IdleState.cs" id="9_kypol"]
|
2023-08-05 23:50:08 -07:00
|
|
|
[ext_resource type="Material" uid="uid://bat28samf7ukd" path="res://Assets/Sprites/Particles/NPCDamageProcessMaterial.tres" id="9_x36vb"]
|
|
|
|
[ext_resource type="Texture2D" uid="uid://bd8l8kafb42dt" path="res://Assets/Sprites/Particles/circle.png" id="10_io6bw"]
|
|
|
|
[ext_resource type="Material" uid="uid://2tsvsp45elru" path="res://Assets/Sprites/Particles/NPCDeathParticles.tres" id="10_yyggy"]
|
|
|
|
[ext_resource type="Texture2D" uid="uid://c1a7lvb4uuwfy" path="res://Assets/Sprites/Particles/circle-16.png" id="12_vfix1"]
|
|
|
|
[ext_resource type="AudioStream" uid="uid://k6kpdj1kv0jg" path="res://Assets/Sounds/splat.ogg" id="15_luroj"]
|
|
|
|
[ext_resource type="Texture2D" uid="uid://cynlarq6mmvmd" path="res://Assets/Sprites/Characters/doc-cultist.png" id="16_licfs"]
|
|
|
|
[ext_resource type="PackedScene" uid="uid://bgavhkdtbx2o6" path="res://Items/Weapons/ProjectileSpawner.tscn" id="17_dmlbb"]
|
|
|
|
[ext_resource type="Script" path="res://Items/Inventory.cs" id="17_sjq8t"]
|
|
|
|
[ext_resource type="PackedScene" uid="uid://cjgxyhgcyvsv7" path="res://BoundingBoxes/Hurtbox.tscn" id="18_ajs2x"]
|
|
|
|
[ext_resource type="PackedScene" uid="uid://1y5r6sklwgrp" path="res://Entities/UnwantedFrequency.tscn" id="18_lwg36"]
|
|
|
|
|
|
|
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2fq6c"]
|
|
|
|
resource_local_to_scene = true
|
|
|
|
shader = ExtResource("2_2lfeo")
|
|
|
|
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
|
|
|
|
tracks/0/path = NodePath("../Sprites/Node2D/Character:frame")
|
|
|
|
tracks/0/interp = 1
|
|
|
|
tracks/0/loop_wrap = true
|
|
|
|
tracks/0/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [0]
|
|
|
|
}
|
|
|
|
tracks/1/type = "value"
|
|
|
|
tracks/1/imported = false
|
|
|
|
tracks/1/enabled = true
|
|
|
|
tracks/1/path = NodePath("../Sprites/Node2D/Character:position")
|
|
|
|
tracks/1/interp = 1
|
|
|
|
tracks/1/loop_wrap = true
|
|
|
|
tracks/1/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 0,
|
|
|
|
"values": [Vector2(0, -8)]
|
|
|
|
}
|
|
|
|
|
|
|
|
[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
|
|
|
|
tracks/0/path = NodePath("../Sprites/Node2D/Character:frame")
|
|
|
|
tracks/0/interp = 1
|
|
|
|
tracks/0/loop_wrap = true
|
|
|
|
tracks/0/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [0]
|
|
|
|
}
|
|
|
|
tracks/1/type = "value"
|
|
|
|
tracks/1/imported = false
|
|
|
|
tracks/1/enabled = true
|
|
|
|
tracks/1/path = NodePath("../Sprites/Node2D/Character:position")
|
|
|
|
tracks/1/interp = 1
|
|
|
|
tracks/1/loop_wrap = true
|
|
|
|
tracks/1/keys = {
|
|
|
|
"times": PackedFloat32Array(0, 0.4, 0.8),
|
|
|
|
"transitions": PackedFloat32Array(-2, -2, -2),
|
|
|
|
"update": 0,
|
|
|
|
"values": [Vector2(0, -9), Vector2(0, -7), Vector2(0, -9)]
|
|
|
|
}
|
|
|
|
|
|
|
|
[sub_resource type="Animation" id="Animation_dwyme"]
|
|
|
|
resource_name = "move"
|
|
|
|
length = 0.8
|
|
|
|
loop_mode = 1
|
|
|
|
tracks/0/type = "value"
|
|
|
|
tracks/0/imported = false
|
|
|
|
tracks/0/enabled = false
|
|
|
|
tracks/0/path = NodePath("../Sprites/Node2D/Character:frame")
|
|
|
|
tracks/0/interp = 1
|
|
|
|
tracks/0/loop_wrap = true
|
|
|
|
tracks/0/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [0]
|
|
|
|
}
|
|
|
|
tracks/1/type = "value"
|
|
|
|
tracks/1/imported = false
|
|
|
|
tracks/1/enabled = true
|
|
|
|
tracks/1/path = NodePath("../Sprites/Node2D/Character:position")
|
|
|
|
tracks/1/interp = 1
|
|
|
|
tracks/1/loop_wrap = true
|
|
|
|
tracks/1/keys = {
|
|
|
|
"times": PackedFloat32Array(0, 0.4, 0.8),
|
|
|
|
"transitions": PackedFloat32Array(-2, -2, -2),
|
|
|
|
"update": 0,
|
|
|
|
"values": [Vector2(0, -9), Vector2(0, -7), Vector2(0, -9)]
|
|
|
|
}
|
|
|
|
|
|
|
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_hvti5"]
|
|
|
|
_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
|
|
|
|
tracks/0/type = "value"
|
|
|
|
tracks/0/imported = false
|
|
|
|
tracks/0/enabled = true
|
|
|
|
tracks/0/path = NodePath("../Sprites/Node2D/Character:frame")
|
|
|
|
tracks/0/interp = 1
|
|
|
|
tracks/0/loop_wrap = true
|
|
|
|
tracks/0/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [0]
|
|
|
|
}
|
|
|
|
tracks/1/type = "value"
|
|
|
|
tracks/1/imported = false
|
|
|
|
tracks/1/enabled = true
|
|
|
|
tracks/1/path = NodePath("../Effects/SpawnParticles:emitting")
|
|
|
|
tracks/1/interp = 1
|
|
|
|
tracks/1/loop_wrap = true
|
|
|
|
tracks/1/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [false]
|
|
|
|
}
|
|
|
|
|
|
|
|
[sub_resource type="Animation" id="Animation_3w3u1"]
|
|
|
|
resource_name = "attack"
|
|
|
|
length = 2.0
|
|
|
|
tracks/0/type = "value"
|
|
|
|
tracks/0/imported = false
|
|
|
|
tracks/0/enabled = true
|
|
|
|
tracks/0/path = NodePath("../Sprites/Node2D/Character:frame")
|
|
|
|
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, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9),
|
|
|
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
|
|
|
|
}
|
|
|
|
tracks/1/type = "value"
|
|
|
|
tracks/1/imported = false
|
|
|
|
tracks/1/enabled = true
|
|
|
|
tracks/1/path = NodePath("../Effects/SpawnParticles:emitting")
|
|
|
|
tracks/1/interp = 1
|
|
|
|
tracks/1/loop_wrap = true
|
|
|
|
tracks/1/keys = {
|
|
|
|
"times": PackedFloat32Array(0, 2),
|
|
|
|
"transitions": PackedFloat32Array(1, 1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [true, false]
|
|
|
|
}
|
|
|
|
|
|
|
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6wkji"]
|
|
|
|
_data = {
|
|
|
|
"RESET": SubResource("Animation_adxyh"),
|
|
|
|
"attack": SubResource("Animation_3w3u1")
|
|
|
|
}
|
|
|
|
|
|
|
|
[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
|
|
|
|
tracks/2/path = NodePath("Effects/DeathParticles:emitting")
|
|
|
|
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
|
|
|
|
tracks/3/path = NodePath("Effects/HurtParticles:emitting")
|
|
|
|
tracks/3/interp = 1
|
|
|
|
tracks/3/loop_wrap = true
|
|
|
|
tracks/3/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [false]
|
|
|
|
}
|
|
|
|
tracks/4/type = "value"
|
|
|
|
tracks/4/imported = false
|
|
|
|
tracks/4/enabled = true
|
|
|
|
tracks/4/path = NodePath("Sprites/Node2D/Character:frame")
|
|
|
|
tracks/4/interp = 1
|
|
|
|
tracks/4/loop_wrap = true
|
|
|
|
tracks/4/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [8]
|
|
|
|
}
|
|
|
|
|
|
|
|
[sub_resource type="Animation" id="Animation_lhc4c"]
|
|
|
|
resource_name = "death"
|
|
|
|
tracks/0/type = "value"
|
|
|
|
tracks/0/imported = false
|
|
|
|
tracks/0/enabled = true
|
|
|
|
tracks/0/path = NodePath("Effects/DeathParticles:emitting")
|
|
|
|
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
|
|
|
|
tracks/1/path = NodePath("Effects/HurtParticles:emitting")
|
|
|
|
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
|
|
|
|
tracks/2/path = NodePath("Effects/HurtParticles")
|
|
|
|
tracks/2/interp = 1
|
|
|
|
tracks/2/loop_wrap = true
|
|
|
|
tracks/2/keys = {
|
|
|
|
"times": PackedFloat32Array(0.1),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"values": [{
|
|
|
|
"args": [],
|
|
|
|
"method": &"restart"
|
|
|
|
}]
|
|
|
|
}
|
|
|
|
tracks/3/type = "value"
|
|
|
|
tracks/3/imported = false
|
|
|
|
tracks/3/enabled = false
|
|
|
|
tracks/3/path = NodePath("Sprites/Node2D/Character:frame")
|
|
|
|
tracks/3/interp = 1
|
|
|
|
tracks/3/loop_wrap = true
|
|
|
|
tracks/3/keys = {
|
|
|
|
"times": PackedFloat32Array(0),
|
|
|
|
"transitions": PackedFloat32Array(1),
|
|
|
|
"update": 1,
|
|
|
|
"values": [8]
|
|
|
|
}
|
|
|
|
|
|
|
|
[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("8_n0iqj")
|
|
|
|
}
|
|
|
|
|
|
|
|
[sub_resource type="CanvasTexture" id="CanvasTexture_pited"]
|
|
|
|
diffuse_texture = ExtResource("12_vfix1")
|
|
|
|
|
|
|
|
[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
|
2024-06-06 19:15:07 -07:00
|
|
|
gravity = Vector3(0, 0, 0)
|
2023-08-05 23:50:08 -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="RectangleShape2D" id="RectangleShape2D_bfqew"]
|
|
|
|
size = Vector2(12, 8)
|
|
|
|
|
|
|
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1gjgc"]
|
|
|
|
size = Vector2(12, 16)
|
|
|
|
|
|
|
|
[node name="Cultist" type="CharacterBody2D" node_paths=PackedStringArray("DefaultSelectedItem", "ThinkerStateMachine", "Sprite", "Inventory", "StateMachine", "Hurtbox")]
|
|
|
|
y_sort_enabled = true
|
|
|
|
texture_filter = 3
|
|
|
|
material = SubResource("ShaderMaterial_2fq6c")
|
|
|
|
collision_layer = 6
|
|
|
|
collision_mask = 17
|
|
|
|
script = ExtResource("2_l16dp")
|
|
|
|
DefaultSelectedItem = NodePath("Inventory/ProjectileSpawner")
|
|
|
|
ShouldMoveWhenUsingItem = false
|
|
|
|
ThinkerStateMachine = NodePath("ThinkerStateMachine")
|
|
|
|
Speed = 40.0
|
|
|
|
Friction = 8.0
|
|
|
|
Mass = 0.5
|
|
|
|
Health = 170.0
|
|
|
|
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-05 23:50:08 -07:00
|
|
|
|
|
|
|
[node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState", "Character")]
|
|
|
|
script = ExtResource("3_lj2a2")
|
|
|
|
InitialState = NodePath("Idle")
|
|
|
|
Character = NodePath("..")
|
|
|
|
|
|
|
|
[node name="Idle" type="Node" parent="StateMachine" node_paths=PackedStringArray("MoveState", "Character")]
|
|
|
|
script = ExtResource("4_38uyt")
|
|
|
|
MoveState = NodePath("../Move")
|
|
|
|
Character = NodePath("../..")
|
|
|
|
|
|
|
|
[node name="Move" type="Node" parent="StateMachine" node_paths=PackedStringArray("IdleState", "Character")]
|
|
|
|
script = ExtResource("5_0peb6")
|
|
|
|
IdleState = NodePath("../Idle")
|
|
|
|
Character = NodePath("../..")
|
|
|
|
|
|
|
|
[node name="ThinkerStateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState")]
|
|
|
|
script = ExtResource("6_8y4xc")
|
2023-08-14 14:07:57 -07:00
|
|
|
InitialState = NodePath("Idle")
|
2023-08-05 23:50:08 -07:00
|
|
|
|
2023-08-14 14:07:57 -07:00
|
|
|
[node name="Pursue" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("NavigationAgent", "AttackState", "PassiveState", "NPC")]
|
2023-08-05 23:50:08 -07:00
|
|
|
script = ExtResource("7_q01ij")
|
|
|
|
NavigationAgent = NodePath("../../NavigationAgent2D")
|
|
|
|
AttackState = NodePath("../Attack")
|
2023-08-14 14:07:57 -07:00
|
|
|
PassiveState = NodePath("../Idle")
|
2023-08-05 23:50:08 -07:00
|
|
|
MinDistanceToTarget = 96.0
|
2023-08-14 14:07:57 -07:00
|
|
|
MaxDistanceFromOrigin = 256.0
|
2023-08-05 23:50:08 -07:00
|
|
|
ThinkDelta = 0.05
|
|
|
|
NPC = NodePath("../..")
|
|
|
|
|
|
|
|
[node name="Attack" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("PassiveState", "PursueState", "NPC")]
|
|
|
|
script = ExtResource("8_woh6n")
|
|
|
|
MaxDistanceToTarget = 128.0
|
2023-08-14 14:07:57 -07:00
|
|
|
UseItemDistance = 128.0
|
2023-08-05 23:50:08 -07:00
|
|
|
PassiveState = NodePath("../Pursue")
|
|
|
|
PursueState = NodePath("../Pursue")
|
|
|
|
NPC = NodePath("../..")
|
|
|
|
|
2023-08-14 14:07:57 -07:00
|
|
|
[node name="Idle" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("PursueState", "NavigationAgent", "NPC")]
|
|
|
|
script = ExtResource("9_kypol")
|
|
|
|
PursueState = NodePath("../Pursue")
|
|
|
|
MinTargetDistance = 32.0
|
|
|
|
PursueOnLineOfSight = true
|
|
|
|
MinLineOfSightDistance = 128.0
|
|
|
|
NavigationAgent = NodePath("../../NavigationAgent2D")
|
|
|
|
NPC = NodePath("../..")
|
2023-08-05 23:50:08 -07:00
|
|
|
|
|
|
|
[node name="NavigationAgent2D" type="NavigationAgent2D" parent="."]
|
|
|
|
debug_enabled = true
|
|
|
|
|
|
|
|
[node name="Animations" type="Node" parent="."]
|
|
|
|
script = ExtResource("6_1a373")
|
|
|
|
|
|
|
|
[node name="Movement" type="AnimationPlayer" parent="Animations"]
|
|
|
|
libraries = {
|
|
|
|
"": SubResource("AnimationLibrary_hvti5")
|
|
|
|
}
|
|
|
|
|
|
|
|
[node name="Attack" type="AnimationPlayer" parent="Animations"]
|
|
|
|
libraries = {
|
|
|
|
"": SubResource("AnimationLibrary_6wkji")
|
|
|
|
}
|
|
|
|
|
|
|
|
[node name="Hurt" type="AnimationPlayer" parent="Animations"]
|
|
|
|
root_node = NodePath("../..")
|
|
|
|
libraries = {
|
|
|
|
"": SubResource("AnimationLibrary_rc55s")
|
|
|
|
}
|
|
|
|
|
|
|
|
[node name="Stun" type="AnimationPlayer" parent="Animations"]
|
|
|
|
libraries = {
|
|
|
|
"": SubResource("AnimationLibrary_kks2p")
|
|
|
|
}
|
|
|
|
|
|
|
|
[node name="Effects" type="Node2D" parent="."]
|
|
|
|
|
|
|
|
[node name="HurtParticles" type="GPUParticles2D" parent="Effects"]
|
|
|
|
position = Vector2(0, -8)
|
|
|
|
emitting = false
|
|
|
|
process_material = ExtResource("9_x36vb")
|
|
|
|
texture = ExtResource("10_io6bw")
|
|
|
|
lifetime = 0.4
|
|
|
|
one_shot = true
|
|
|
|
explosiveness = 1.0
|
|
|
|
|
|
|
|
[node name="DeathParticles" type="GPUParticles2D" parent="Effects"]
|
|
|
|
emitting = false
|
|
|
|
amount = 32
|
|
|
|
process_material = ExtResource("10_yyggy")
|
|
|
|
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("12_vfix1")
|
|
|
|
|
|
|
|
[node name="HurtSound" type="AudioStreamPlayer2D" parent="Effects"]
|
|
|
|
stream = ExtResource("15_luroj")
|
|
|
|
|
|
|
|
[node name="Sprites" type="Node2D" parent="."]
|
|
|
|
y_sort_enabled = true
|
|
|
|
use_parent_material = true
|
|
|
|
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
|
|
|
|
position = Vector2(0, -8)
|
|
|
|
texture = ExtResource("16_licfs")
|
|
|
|
offset = Vector2(0, -4)
|
|
|
|
hframes = 6
|
|
|
|
|
|
|
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
|
|
|
position = Vector2(0, -4)
|
|
|
|
shape = SubResource("RectangleShape2D_bfqew")
|
|
|
|
|
2024-06-06 19:15:07 -07:00
|
|
|
[node name="Inventory" type="Node2D" parent="." node_paths=PackedStringArray("Hotbar")]
|
2023-08-05 23:50:08 -07:00
|
|
|
position = Vector2(0, -4)
|
|
|
|
script = ExtResource("17_sjq8t")
|
2024-06-06 19:15:07 -07:00
|
|
|
Hotbar = []
|
2023-08-05 23:50:08 -07:00
|
|
|
|
2024-06-06 19:15:07 -07:00
|
|
|
[node name="ProjectileSpawner" parent="Inventory" node_paths=PackedStringArray("StateMachine") instance=ExtResource("17_dmlbb")]
|
2023-08-05 23:50:08 -07:00
|
|
|
Projectile = ExtResource("18_lwg36")
|
|
|
|
ShouldOverrideProjectileDamage = false
|
2023-08-14 14:07:57 -07:00
|
|
|
ShouldOverrideVelocity = false
|
2023-08-05 23:50:08 -07:00
|
|
|
ShouldRotate = false
|
2024-06-06 19:15:07 -07:00
|
|
|
StateMachine = NodePath("StateMachine")
|
2023-08-05 23:50:08 -07:00
|
|
|
UseTime = 2.0
|
|
|
|
|
|
|
|
[node name="Hurtbox" parent="." instance=ExtResource("18_ajs2x")]
|
|
|
|
|
|
|
|
[node name="CollisionShape2D" parent="Hurtbox" index="0"]
|
|
|
|
position = Vector2(0, -8)
|
|
|
|
shape = SubResource("RectangleShape2D_1gjgc")
|
|
|
|
|
|
|
|
[editable path="Hurtbox"]
|