hero-mark-2/objects/player/player.tscn

1635 lines
54 KiB
Text

[gd_scene load_steps=53 format=2]
[ext_resource path="res://objects/player/player.gd" type="Script" id=1]
[ext_resource path="res://graphics/player/palettes/default.png" type="Texture" id=2]
[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=3]
[ext_resource path="res://graphics/player/sg_idle.png" type="Texture" id=4]
[ext_resource path="res://addons/godot_state_charts/parallel_state.gd" type="Script" id=5]
[ext_resource path="res://addons/godot_state_charts/state_chart.gd" type="Script" id=6]
[ext_resource path="res://ui/theme.tres" type="Theme" id=7]
[ext_resource path="res://addons/godot_state_charts/state_chart_debug.gd" type="Script" id=8]
[ext_resource path="res://addons/godot_state_charts/compound_state.gd" type="Script" id=9]
[ext_resource path="res://addons/godot_state_charts/transition.gd" type="Script" id=10]
[ext_resource path="res://addons/godot_state_charts/atomic_state.gd" type="Script" id=11]
[ext_resource path="res://graphics/player/sg_walk.png" type="Texture" id=12]
[ext_resource path="res://graphics/player/sg_jump.png" type="Texture" id=13]
[ext_resource path="res://graphics/player/sg_climb.png" type="Texture" id=14]
[ext_resource path="res://graphics/player/sg_shoot_grounded.png" type="Texture" id=15]
[ext_resource path="res://graphics/player/sg_shoot_air.png" type="Texture" id=16]
[ext_resource path="res://graphics/player/sg_doublejump.png" type="Texture" id=17]
[ext_resource path="res://graphics/particles/dust.png" type="Texture" id=18]
[ext_resource path="res://graphics/player/sg_fall_scared.png" type="Texture" id=19]
[ext_resource path="res://graphics/player/sg_fall.png" type="Texture" id=20]
[ext_resource path="res://graphics/player/sg_push.png" type="Texture" id=21]
[ext_resource path="res://graphics/player/sg_blink.png" type="Texture" id=22]
[ext_resource path="res://graphics/player/sg_stim.png" type="Texture" id=23]
[ext_resource path="res://graphics/player/sg_duck.png" type="Texture" id=24]
[ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=25]
[ext_resource path="res://graphics/player/sg_jump_ladder.png" type="Texture" id=26]
[ext_resource path="res://graphics/player/sg_edge.png" type="Texture" id=27]
[ext_resource path="res://graphics/player/sg_drown.png" type="Texture" id=28]
[sub_resource type="ShaderMaterial" id=1]
shader = ExtResource( 3 )
shader_param/border_color = Color( 0, 0, 0, 1 )
shader_param/border_corners = true
shader_param/palette = ExtResource( 2 )
[sub_resource type="Curve" id=13]
_data = [ Vector2( 0, 1 ), 0.0, -0.0636948, 0, 0, Vector2( 1, 0 ), -3.43886, 0.0, 0, 0 ]
[sub_resource type="ShaderMaterial" id=24]
shader = ExtResource( 3 )
shader_param/border_color = Color( 0, 0, 0, 1 )
shader_param/border_corners = true
shader_param/palette = ExtResource( 2 )
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 2.5, 5 )
[sub_resource type="RectangleShape2D" id=3]
extents = Vector2( 2.5, 5 )
[sub_resource type="RectangleShape2D" id=16]
extents = Vector2( 2.5, 2.5 )
[sub_resource type="Animation" id=5]
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ ExtResource( 4 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 1 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("Graphics/Sprite:position")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, -10 ) ]
}
[sub_resource type="Animation" id=18]
resource_name = "blink"
length = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 22 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 2 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.1 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ 1, 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=9]
resource_name = "climb"
length = 0.3
loop = true
step = 0.15
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 14 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 2 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.15 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ 0, 1 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=12]
resource_name = "double_jump"
length = 0.32
loop = true
step = 0.04
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 17 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 2 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 0, 1, 0, 1, 0, 1 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0, 0.08, 0.16, 0.24 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 1,
"values": [ 0.0, 90.0, 180.0, 270.0 ]
}
[sub_resource type="Animation" id=23]
resource_name = "drown"
length = 10.0
step = 0.05
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:hframes")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 8 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 0.05, 0.1, 0.8, 0.85, 0.9, 1.1, 1.15 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 2, 3, 4, 5, 6, 7 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1.2 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ Vector2( 1, -10 ), Vector2( 3, -10 ), Vector2( 1, -10 ), Vector2( 3, -10 ), Vector2( 1, -10 ), Vector2( 3, -10 ), Vector2( 0, -10 ), Vector2( 0, -10 ) ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:texture")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 28 ) ]
}
tracks/4/type = "method"
tracks/4/path = NodePath("StateChart")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 1.3 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ "float_up" ],
"method": "send_event"
} ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=20]
resource_name = "duck"
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 24 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 1 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=22]
resource_name = "edge"
length = 0.4
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 27 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 4 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.1, 0.2, 0.3 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 2, 3 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=15]
resource_name = "fall"
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 20 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 1 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=14]
resource_name = "fall_scared"
length = 0.2
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 19 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 2 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.1 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ 0, 1 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0.00238396 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=6]
resource_name = "idle"
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 4 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 1 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=8]
resource_name = "jump"
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 13 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 1 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=21]
resource_name = "ladder_jump"
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 26 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 1 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=17]
resource_name = "push"
length = 0.8
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 21 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 4 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.2, 0.4, 0.6 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 2, 3 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=11]
resource_name = "shoot_airborne"
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 16 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 0.001 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ 1, 1 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=10]
resource_name = "shoot_grounded"
length = 0.25
step = 0.05
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 15 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 6 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.03, 0.06, 0.12, 0.15, 0.18 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 2, 3, 4, 5 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
tracks/4/type = "method"
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0.12 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "spawn_arrow"
} ]
}
tracks/5/type = "method"
tracks/5/path = NodePath("StateChart")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0.25 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ "shoot_end" ],
"method": "send_event"
} ]
}
[sub_resource type="Animation" id=19]
resource_name = "stim"
length = 0.3
loop = true
step = 0.05
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 23 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 2 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.15 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ 0, 1 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=7]
resource_name = "walk"
length = 0.4
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 12 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 4 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.1, 0.2, 0.3 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 1,
"values": [ 1, 2, 3, 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="StyleBoxEmpty" id=4]
[node name="Player" type="KinematicBody2D" groups=["player"]]
collision_layer = 128
collision_mask = 7
moving_platform_apply_velocity_on_leave = 2
script = ExtResource( 1 )
walk_acceleration_frames = 4.0
gravity = 700.0
jump_force = 140.0
double_jump_force = 124.0
[node name="Graphics" type="Node2D" parent="."]
[node name="Sprite" type="Sprite" parent="Graphics"]
unique_name_in_owner = true
light_mask = 5
material = SubResource( 1 )
position = Vector2( 0, -10 )
texture = ExtResource( 4 )
[node name="DissolveParticles" type="CPUParticles2D" parent="Graphics"]
unique_name_in_owner = true
position = Vector2( -9.5, -19.5 )
emitting = false
amount = 256
lifetime = 0.8
one_shot = true
explosiveness = 1.0
lifetime_randomness = 1.0
emission_shape = 3
emission_points = PoolVector2Array( 4, 6, 4, 7, 4, 8, 4, 9, 4, 10, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 5, 8, 5, 9, 5, 10, 5, 11, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8, 6, 9, 6, 10, 6, 11, 6, 12, 6, 13, 6, 14, 6, 15, 6, 16, 7, 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7, 7, 8, 7, 9, 7, 10, 7, 11, 7, 12, 7, 13, 7, 14, 7, 15, 7, 16, 7, 17, 7, 18, 7, 19, 8, 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7, 8, 8, 8, 9, 8, 10, 8, 11, 8, 12, 8, 13, 8, 14, 8, 15, 8, 16, 8, 17, 8, 18, 8, 19, 9, 0, 9, 1, 9, 2, 9, 3, 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 9, 10, 9, 11, 9, 12, 9, 13, 9, 14, 9, 15, 9, 16, 9, 17, 9, 18, 9, 19, 10, 0, 10, 1, 10, 2, 10, 3, 10, 4, 10, 5, 10, 6, 10, 7, 10, 8, 10, 9, 10, 10, 10, 11, 10, 12, 10, 13, 10, 14, 10, 15, 10, 16, 10, 17, 10, 18, 10, 19, 11, 0, 11, 1, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 11, 11, 11, 12, 11, 13, 11, 14, 11, 15, 11, 16, 11, 17, 11, 18, 11, 19, 12, 0, 12, 1, 12, 2, 12, 3, 12, 4, 12, 5, 12, 6, 12, 7, 12, 8, 12, 9, 12, 10, 12, 11, 12, 12, 12, 13, 12, 14, 12, 15, 12, 16, 12, 17, 12, 18, 12, 19, 13, 0, 13, 1, 13, 2, 13, 3, 13, 4, 13, 5, 13, 6, 13, 7, 13, 8, 13, 9, 13, 10, 13, 11, 13, 12, 13, 13, 13, 14, 13, 15, 13, 16, 13, 17, 13, 18, 13, 19, 14, 1, 14, 2, 14, 3, 14, 4, 14, 5, 14, 6, 14, 7, 14, 8, 14, 9, 14, 10, 14, 11, 15, 2, 15, 3, 15, 4, 15, 5, 15, 6, 15, 7, 15, 8, 15, 9, 15, 10, 15, 11 )
emission_colors = PoolColorArray( 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.72549, 0.607843, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.835294, 0.619608, 1, 1, 0.478431, 0.219608, 1, 1, 0.835294, 0.619608, 1, 1, 0.478431, 0.219608, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 0.458824, 0.235294, 0.0823529, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.72549, 0.607843, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 0.219608, 0.211765, 0.254902, 1, 0.360784, 0.345098, 0.439216, 1, 0.360784, 0.345098, 0.439216, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 0.458824, 0.235294, 0.0823529, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.513726, 0.47451, 0.603922, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 0.360784, 0.345098, 0.439216, 1, 0.360784, 0.345098, 0.439216, 1, 0.360784, 0.345098, 0.439216, 1, 0.219608, 0.211765, 0.254902, 1, 0.360784, 0.345098, 0.439216, 1, 0.360784, 0.345098, 0.439216, 1, 0.219608, 0.211765, 0.254902, 1, 0.219608, 0.211765, 0.254902, 1, 0.458824, 0.235294, 0.0823529, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 0, 0, 0, 1, 0.360784, 0.345098, 0.439216, 1, 0.360784, 0.345098, 0.439216, 1, 0.360784, 0.345098, 0.439216, 1, 0.219608, 0.211765, 0.254902, 1, 0.360784, 0.345098, 0.439216, 1, 0.219608, 0.211765, 0.254902, 1, 0.219608, 0.211765, 0.254902, 1, 0.219608, 0.211765, 0.254902, 1, 0.219608, 0.141176, 0.0392157, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 0.513726, 0.47451, 0.603922, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.219608, 0.141176, 0.0392157, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.513726, 0.47451, 0.603922, 1, 1, 0.835294, 0.619608, 1, 1, 0.835294, 0.619608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 1, 0.478431, 0.219608, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 )
direction = Vector2( 0, -1 )
spread = 15.0
gravity = Vector2( 0, 0 )
initial_velocity = 4.0
initial_velocity_random = 1.0
[node name="ArrowPosition" type="Position2D" parent="Graphics"]
unique_name_in_owner = true
position = Vector2( 5, -7 )
__meta__ = {
"_gizmo_extents_": 2.0
}
[node name="DeathSplatterPosition" type="Position2D" parent="Graphics"]
unique_name_in_owner = true
position = Vector2( 0, -10 )
__meta__ = {
"_gizmo_extents_": 2.0
}
[node name="DustParticles" type="CPUParticles2D" parent="Graphics"]
unique_name_in_owner = true
position = Vector2( 0, 2 )
z_index = 1
emitting = false
amount = 5
lifetime = 0.3
one_shot = true
explosiveness = 0.9
fract_delta = false
local_coords = false
texture = ExtResource( 18 )
emission_shape = 2
emission_rect_extents = Vector2( 5, 0 )
direction = Vector2( 0, -1 )
spread = 60.0
gravity = Vector2( 0, 0 )
initial_velocity = 10.0
initial_velocity_random = 0.8
angle = 720.0
angle_random = 1.0
scale_amount = 0.25
scale_amount_random = 0.5
scale_amount_curve = SubResource( 13 )
color = Color( 0.956863, 0.92549, 0.831373, 1 )
[node name="PushableDetector" type="RayCast2D" parent="Graphics"]
unique_name_in_owner = true
position = Vector2( 3, -4 )
cast_to = Vector2( 1, 0 )
collision_mask = 4
[node name="EdgeDetector" type="RayCast2D" parent="Graphics"]
position = Vector2( 1, -1 )
enabled = true
cast_to = Vector2( 0, 5 )
collision_mask = 5
[node name="CFox" type="Sprite" parent="Graphics"]
unique_name_in_owner = true
visible = false
material = SubResource( 24 )
position = Vector2( 0, -10 )
texture = ExtResource( 4 )
[node name="BodyShape" type="CollisionShape2D" parent="."]
unique_name_in_owner = true
position = Vector2( 0.5, -5 )
shape = SubResource( 2 )
[node name="Hitbox" type="Area2D" parent="." groups=["player_hitbox"]]
unique_name_in_owner = true
collision_layer = 11
collision_mask = 32
[node name="GroundedShape" type="CollisionShape2D" parent="Hitbox"]
unique_name_in_owner = true
position = Vector2( 0.5, -5 )
shape = SubResource( 3 )
[node name="AirborneShape" type="CollisionShape2D" parent="Hitbox"]
unique_name_in_owner = true
position = Vector2( 0.5, -7.5 )
shape = SubResource( 16 )
[node name="LadderDetector" type="RayCast2D" parent="."]
unique_name_in_owner = true
position = Vector2( 0.5, -0.5 )
enabled = true
cast_to = Vector2( 0, -9.5 )
collision_mask = 64
collide_with_areas = true
collide_with_bodies = false
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/RESET = SubResource( 5 )
anims/blink = SubResource( 18 )
anims/climb = SubResource( 9 )
anims/double_jump = SubResource( 12 )
anims/drown = SubResource( 23 )
anims/duck = SubResource( 20 )
anims/edge = SubResource( 22 )
anims/fall = SubResource( 15 )
anims/fall_scared = SubResource( 14 )
anims/idle = SubResource( 6 )
anims/jump = SubResource( 8 )
anims/ladder_jump = SubResource( 21 )
anims/push = SubResource( 17 )
anims/shoot_airborne = SubResource( 11 )
anims/shoot_grounded = SubResource( 10 )
anims/stim = SubResource( 19 )
anims/walk = SubResource( 7 )
[node name="StateChart" type="Node" parent="."]
script = ExtResource( 6 )
auto_initialize = false
[node name="Root" type="Node" parent="StateChart"]
script = ExtResource( 5 )
__meta__ = {
"_editor_description_": ""
}
[node name="Movement" type="Node" parent="StateChart/Root"]
process_priority = 10
script = ExtResource( 9 )
__meta__ = {
"_editor_description_": "higher process priority so it can do move_and_slide after everything else"
}
initial_state = NodePath("Grounded")
[node name="On Died" type="Node" parent="StateChart/Root/Movement"]
script = ExtResource( 10 )
to = NodePath("../Inactive")
event = "died"
[node name="On StartTeleport" type="Node" parent="StateChart/Root/Movement"]
script = ExtResource( 10 )
to = NodePath("../Teleporting")
event = "start_teleport"
[node name="Grounded" type="Node" parent="StateChart/Root/Movement"]
script = ExtResource( 9 )
__meta__ = {
"_editor_description_": "is on the ground"
}
initial_state = NodePath("CanWalk")
[node name="On Airborne" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 10 )
to = NodePath("../../Airborne/Falling/CoyoteFalling")
event = "airborne"
[node name="On Jump" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 10 )
__meta__ = {
"_editor_description_": "enter jump state when the jump button is pressed"
}
to = NodePath("../../Airborne/Jump/NormalJump")
event = "jump"
[node name="On Duck" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 10 )
to = NodePath("../Ducking")
event = "duck_pressed"
[node name="On LadderTouched" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 10 )
to = NodePath("../../Climbing")
event = "ladder_touched"
[node name="CanWalk" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 9 )
__meta__ = {
"_editor_description_": "can walk by moving left and right"
}
initial_state = NodePath("Still")
[node name="On Shoot" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
script = ExtResource( 10 )
to = NodePath("../../Shooting")
event = "shoot"
guard_expression = "can_shoot"
[node name="On PushStart" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
script = ExtResource( 10 )
to = NodePath("../../Pushing")
event = "push_start"
[node name="Still" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
script = ExtResource( 11 )
[node name="On WalkStart" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Still"]
script = ExtResource( 10 )
to = NodePath("../../Walking")
event = "walk_start"
[node name="On Edge" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Still"]
script = ExtResource( 10 )
to = NodePath("../../Edge")
event = "edge"
[node name="On Timeout" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Still"]
script = ExtResource( 10 )
to = NodePath("../../Blinking")
delay = 1.0
[node name="Walking" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
script = ExtResource( 11 )
[node name="On WalkStop" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Walking"]
script = ExtResource( 10 )
to = NodePath("../../Still")
event = "walk_stop"
[node name="Blinking" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
unique_name_in_owner = true
script = ExtResource( 11 )
[node name="On Timeout" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Blinking"]
script = ExtResource( 10 )
to = NodePath("../../Stimming")
delay = 10.0
[node name="On WalkStart" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Blinking"]
script = ExtResource( 10 )
to = NodePath("../../Walking")
event = "walk_start"
[node name="Stimming" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
script = ExtResource( 11 )
[node name="On WalkStart" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Stimming"]
script = ExtResource( 10 )
to = NodePath("../../Walking")
event = "walk_start"
[node name="Edge" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
script = ExtResource( 11 )
[node name="On WalkStart" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Edge"]
script = ExtResource( 10 )
to = NodePath("../../Walking")
event = "walk_start"
[node name="On OffEdge" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk/Edge"]
script = ExtResource( 10 )
to = NodePath("../../Still")
event = "off_edge"
[node name="Ducking" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 11 )
[node name="On DuckReleased" type="Node" parent="StateChart/Root/Movement/Grounded/Ducking"]
script = ExtResource( 10 )
to = NodePath("../../CanWalk/Still")
event = "duck_released"
[node name="On Shoot" type="Node" parent="StateChart/Root/Movement/Grounded/Ducking"]
script = ExtResource( 10 )
to = NodePath("../../Shooting")
event = "shoot"
guard_expression = "can_shoot"
[node name="On Jump" type="Node" parent="StateChart/Root/Movement/Grounded/Ducking"]
script = ExtResource( 10 )
__meta__ = {
"_editor_description_": "enter jump state when the jump button is pressed"
}
to = NodePath("../../../Airborne/Jump/NormalJump")
event = "jump"
[node name="Shooting" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 11 )
consumed_events = [ "jump", "duck_pressed" ]
[node name="On ShootEnd" type="Node" parent="StateChart/Root/Movement/Grounded/Shooting"]
script = ExtResource( 10 )
to = NodePath("../../CanWalk")
event = "shoot_end"
[node name="Pushing" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 11 )
[node name="On PushStop" type="Node" parent="StateChart/Root/Movement/Grounded/Pushing"]
script = ExtResource( 10 )
to = NodePath("../../CanWalk")
event = "push_stop"
[node name="Airborne" type="Node" parent="StateChart/Root/Movement"]
process_priority = 5
script = ExtResource( 9 )
__meta__ = {
"_editor_description_": "SG is in the air and falling DOWN, better think fast!"
}
initial_state = NodePath("Falling")
[node name="On Jump If Redfeather" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 10 )
__meta__ = {
"_editor_description_": "enter double jump state when the jump button is pressed"
}
to = NodePath("../Jump/NormalJump")
event = "jump"
guard_expression = "red_feather"
[node name="On Grounded" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 10 )
to = NodePath("../../Grounded")
event = "grounded"
[node name="On Shoot" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 10 )
to = NodePath("../AirShooting")
event = "shoot"
guard_expression = "can_shoot"
[node name="On LadderTouched" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 10 )
to = NodePath("../../Climbing")
event = "ladder_touched"
[node name="Jump" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 9 )
initial_state = NodePath("NormalJump")
[node name="On Jump" type="Node" parent="StateChart/Root/Movement/Airborne/Jump"]
script = ExtResource( 10 )
__meta__ = {
"_editor_description_": "enter double jump state when the jump button is pressed"
}
to = NodePath("../../DoubleJump")
event = "jump"
[node name="On JumpPeak" type="Node" parent="StateChart/Root/Movement/Airborne/Jump"]
script = ExtResource( 10 )
to = NodePath("../../Falling/NormalFalling")
event = "jump_peak"
[node name="NormalJump" type="Node" parent="StateChart/Root/Movement/Airborne/Jump"]
script = ExtResource( 11 )
[node name="On JumpReleased" type="Node" parent="StateChart/Root/Movement/Airborne/Jump/NormalJump"]
script = ExtResource( 10 )
__meta__ = {
"_editor_description_": ""
}
to = NodePath("../../../Falling/NormalFalling")
event = "jump_released"
[node name="LadderJump" type="Node" parent="StateChart/Root/Movement/Airborne/Jump"]
script = ExtResource( 11 )
[node name="Falling" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 9 )
initial_state = NodePath("NormalFalling")
[node name="On Jump" type="Node" parent="StateChart/Root/Movement/Airborne/Falling"]
script = ExtResource( 10 )
__meta__ = {
"_editor_description_": "enter double jump state when the jump button is pressed"
}
to = NodePath("../../DoubleJump")
event = "jump"
[node name="CoyoteFalling" type="Node" parent="StateChart/Root/Movement/Airborne/Falling"]
script = ExtResource( 11 )
[node name="On Jump" type="Node" parent="StateChart/Root/Movement/Airborne/Falling/CoyoteFalling"]
script = ExtResource( 10 )
__meta__ = {
"_editor_description_": "enter jump state when the jump button is pressed"
}
to = NodePath("../../../Jump/NormalJump")
event = "jump"
[node name="On CoyoteTimeout" type="Node" parent="StateChart/Root/Movement/Airborne/Falling/CoyoteFalling"]
script = ExtResource( 10 )
to = NodePath("../../NormalFalling")
delay = 0.067
[node name="NormalFalling" type="Node" parent="StateChart/Root/Movement/Airborne/Falling"]
script = ExtResource( 11 )
[node name="ScaredFalling" type="Node" parent="StateChart/Root/Movement/Airborne/Falling"]
script = ExtResource( 11 )
[node name="DoubleJump" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 11 )
[node name="AirShooting" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 11 )
[node name="Climbing" type="Node" parent="StateChart/Root/Movement"]
script = ExtResource( 11 )
__meta__ = {
"_editor_description_": "stuck to ladder"
}
[node name="On LadderPeak" type="Node" parent="StateChart/Root/Movement/Climbing"]
script = ExtResource( 10 )
to = NodePath("../../Airborne/Jump/NormalJump")
event = "ladder_peak"
[node name="On LadderJump" type="Node" parent="StateChart/Root/Movement/Climbing"]
script = ExtResource( 10 )
to = NodePath("../../Airborne/Jump/NormalJump")
event = "ladder_jump"
[node name="On LadderDetach" type="Node" parent="StateChart/Root/Movement/Climbing"]
script = ExtResource( 10 )
to = NodePath("../../Airborne/Falling/NormalFalling")
event = "ladder_detach"
[node name="Inactive" type="Node" parent="StateChart/Root/Movement"]
script = ExtResource( 11 )
__meta__ = {
"_editor_description_": "player can not move or do anything, immobile"
}
[node name="On GetReal" type="Node" parent="StateChart/Root/Movement/Inactive"]
script = ExtResource( 10 )
to = NodePath("../../Grounded")
event = "get_real"
[node name="Teleporting" type="Node" parent="StateChart/Root/Movement"]
script = ExtResource( 11 )
__meta__ = {
"_editor_description_": "player can not move or do anything, immobile"
}
[node name="On GetReal" type="Node" parent="StateChart/Root/Movement/Teleporting"]
script = ExtResource( 10 )
to = NodePath("../../Grounded")
event = "get_real"
[node name="Health" type="Node" parent="StateChart/Root"]
script = ExtResource( 9 )
initial_state = NodePath("Vulnerable")
[node name="Vulnerable" type="Node" parent="StateChart/Root/Health"]
script = ExtResource( 11 )
[node name="On Hurt" type="Node" parent="StateChart/Root/Health/Vulnerable"]
script = ExtResource( 10 )
to = NodePath("../../Dead")
event = "hurt"
[node name="On Drown" type="Node" parent="StateChart/Root/Health/Vulnerable"]
script = ExtResource( 10 )
to = NodePath("../../Drowning")
event = "drown"
[node name="On BecomeInvulnerable" type="Node" parent="StateChart/Root/Health/Vulnerable"]
script = ExtResource( 10 )
to = NodePath("../../Invulnerable")
event = "become_invulnerable"
[node name="Invulnerable" type="Node" parent="StateChart/Root/Health"]
script = ExtResource( 11 )
[node name="Respawn" type="Node" parent="StateChart/Root/Health"]
script = ExtResource( 11 )
[node name="If Iframes" type="Node" parent="StateChart/Root/Health/Respawn"]
script = ExtResource( 10 )
to = NodePath("../../Vulnerable")
delay = 0.5
guard_expression = "use_iframes"
[node name="On Timeout" type="Node" parent="StateChart/Root/Health/Respawn"]
script = ExtResource( 10 )
to = NodePath("../../Vulnerable")
guard_expression = "!use_iframes"
[node name="Dead" type="Node" parent="StateChart/Root/Health"]
script = ExtResource( 11 )
[node name="On Respawn" type="Node" parent="StateChart/Root/Health/Dead"]
script = ExtResource( 10 )
to = NodePath("../../Respawn")
event = "respawn"
guard_expression = "can_respawn"
[node name="Drowning" type="Node" parent="StateChart/Root/Health"]
script = ExtResource( 9 )
initial_state = NodePath("DrownStart")
[node name="On Respawn" type="Node" parent="StateChart/Root/Health/Drowning"]
script = ExtResource( 10 )
to = NodePath("../../Respawn")
event = "respawn"
guard_expression = "can_respawn"
[node name="DrownStart" type="Node" parent="StateChart/Root/Health/Drowning"]
script = ExtResource( 11 )
[node name="On FloatUp" type="Node" parent="StateChart/Root/Health/Drowning/DrownStart"]
script = ExtResource( 10 )
to = NodePath("../../FloatingUp")
event = "float_up"
[node name="FloatingUp" type="Node" parent="StateChart/Root/Health/Drowning"]
script = ExtResource( 11 )
[node name="StateDebugLayer" type="CanvasLayer" parent="."]
layer = 128
[node name="StateChartDebug" type="Tree" parent="StateDebugLayer"]
visible = false
anchor_left = 1.0
anchor_right = 1.0
margin_left = -147.0
margin_bottom = 137.0
theme = ExtResource( 7 )
custom_styles/bg = SubResource( 4 )
script = ExtResource( 8 )
[node name="OxygenTimer" type="Timer" parent="."]
wait_time = 20.0
[node name="JumpPeakTimer" type="Timer" parent="."]
wait_time = 0.2
[node name="LabelLayerHack" type="Node2D" parent="."]
z_index = 1000
[node name="LowOxygenLabel" type="Label" parent="LabelLayerHack"]
unique_name_in_owner = true
material = ExtResource( 25 )
margin_left = -8.0
margin_top = -32.0
margin_right = 8.0
margin_bottom = -18.0
theme = ExtResource( 7 )
align = 1
[connection signal="tree_exited" from="." to="." method="_on_Player_tree_exited"]
[connection signal="body_entered" from="Hitbox" to="." method="_on_Hitbox_body_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement" to="." method="_process_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded" to="." method="_on_Grounded_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Grounded" to="." method="_process_grounded"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Grounded/CanWalk" to="." method="_process_horizontal_movement_grounded"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Grounded/CanWalk" to="." method="_process_can_walk"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/CanWalk/Still" to="." method="_on_Still_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/CanWalk/Walking" to="." method="_on_Walking_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/CanWalk/Blinking" to="." method="_on_Blinking_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/CanWalk/Stimming" to="." method="_on_Stimming_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/CanWalk/Edge" to="." method="_on_Edge_state_entered"]
[connection signal="event_received" from="StateChart/Root/Movement/Grounded/Ducking" to="." method="_on_Ducking_event_received"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/Ducking" to="." method="_on_Ducking_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/Shooting" to="." method="_on_Shooting_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/Pushing" to="." method="_on_Pushing_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Grounded/Pushing" to="." method="_process_pushing"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne" to="." method="reset_fall_speed"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne" to="." method="_on_Airborne_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne" to="." method="_process_gravity"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/Jump" to="." method="_process_horizontal_movement"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/Jump" to="." method="_process_jump"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Jump/NormalJump" to="." method="_on_NormalJump_state_entered"]
[connection signal="state_exited" from="StateChart/Root/Movement/Airborne/Jump/NormalJump" to="." method="_on_NormalJump_state_exited"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Jump/LadderJump" to="." method="_on_LadderJump_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Falling/CoyoteFalling" to="." method="_on_CoyoteFalling_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/Falling/CoyoteFalling" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Falling/NormalFalling" to="." method="_on_NormalFalling_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/Falling/NormalFalling" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Falling/ScaredFalling" to="." method="_on_ScaredFalling_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="reset_fall_speed"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="_on_DoubleJump_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/AirShooting" to="." method="_on_AirShooting_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/AirShooting" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Climbing" to="." method="_on_Climbing_state_entered"]
[connection signal="state_exited" from="StateChart/Root/Movement/Climbing" to="." method="_on_Climbing_state_exited"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Climbing" to="." method="_process_climbing"]
[connection signal="state_entered" from="StateChart/Root/Movement/Inactive" to="." method="_on_Inactive_state_entered"]
[connection signal="state_exited" from="StateChart/Root/Movement/Inactive" to="." method="_on_Inactive_state_exited"]
[connection signal="state_entered" from="StateChart/Root/Movement/Teleporting" to="." method="_on_Inactive_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Teleporting" to="." method="_on_Teleporting_state_entered"]
[connection signal="state_exited" from="StateChart/Root/Movement/Teleporting" to="." method="_on_Inactive_state_exited"]
[connection signal="state_entered" from="StateChart/Root/Health/Respawn" to="." method="_on_Respawn_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Health/Dead" to="." method="_on_Dead_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Health/Drowning" to="." method="_on_Drowning_state_entered"]
[connection signal="state_exited" from="StateChart/Root/Health/Drowning" to="." method="_on_Drowning_state_exited"]
[connection signal="state_physics_processing" from="StateChart/Root/Health/Drowning/FloatingUp" to="." method="_process_floating_up"]
[connection signal="timeout" from="OxygenTimer" to="." method="_on_OxygenTimer_timeout"]