[gd_scene format=3] [ext_resource type="Script" path="res://scenes/characters/player.gd" id="1_player_script"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/16_idle/idle_loop.png" id="2_idle"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/01_basic_attack_i/air_prep.png" id="3_atk1_prep"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/01_basic_attack_i/air_swing.png" id="4_atk1_swing"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/01_basic_attack_i/slash_overlay_fx.png" id="5_atk1_fx"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/02_basic_attack_ii/air_prep.png" id="6_atk2_prep"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/02_basic_attack_ii/air_swing.png" id="7_atk2_swing"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/02_basic_attack_ii/slash_overlay_fx.png" id="8_atk2_fx"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/07_rising_slash/prep.png" id="9_rise_prep"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/07_rising_slash/swing.png" id="10_rise_swing"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/07_rising_slash/slash_overlay_fx.png" id="11_rise_fx"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/17_turn_around/turn.png" id="12_turn"] [ext_resource type="Texture2D" path="res://assets/art/characters/player/18_block/air_block_start.png" id="25_block_start"] [ext_resource type="Script" path="res://scenes/components/state_machine.gd" id="13_state_machine"] [ext_resource type="Script" path="res://scenes/components/input_component.gd" id="14_input_component"] [ext_resource type="Script" path="res://scenes/components/movement_motor.gd" id="15_movement_motor"] [ext_resource type="Script" path="res://scenes/components/combo_window.gd" id="16_combo_window"] [ext_resource type="Script" path="res://scenes/combat/action_resolver.gd" id="17_action_resolver"] [ext_resource type="Script" path="res://scenes/components/action_executor.gd" id="18_action_executor"] [ext_resource type="Script" path="res://scenes/components/action_controller.gd" id="19_action_controller"] [ext_resource type="Script" path="res://scenes/components/motion_executor.gd" id="20_motion_executor"] [ext_resource type="Script" path="res://scenes/components/burst_component.gd" id="21_burst_component"] [ext_resource type="Script" path="res://scenes/components/charge_component.gd" id="22_charge_component"] [ext_resource type="Script" path="res://scenes/components/energy_component.gd" id="23_energy_component"] [ext_resource type="Script" path="res://scenes/components/effect_container.gd" id="24_effect_container"] [ext_resource type="Script" path="res://scenes/components/damage_emitter.gd" id="26_damage_emitter"] [ext_resource type="Script" path="res://scenes/components/damage_receiver.gd" id="27_damage_receiver"] [ext_resource type="Script" path="res://scenes/components/health_component.gd" id="28_health_component"] [ext_resource type="Script" path="res://scenes/combat/contact_fx_spawner.gd" id="31_contact_fx"] [ext_resource type="Script" path="res://scenes/components/streak_counter.gd" id="32_streak_counter"] [ext_resource type="Script" path="res://scenes/components/attack_buff_component.gd" id="33_attack_buff"] [ext_resource type="Script" path="res://scenes/components/frame_collision_driver.gd" id="34_frame_collision"] [ext_resource type="Script" path="res://scenes/components/attack_buff_visual.gd" id="35_attack_buff_visual"] [ext_resource type="Script" path="res://scenes/components/overhead_charge_segments.gd" id="36_overhead_charge_segments"] [ext_resource type="Resource" path="res://resources/effects/effect_on_perfect_damage_reward.tres" id="29_perfect_reward"] [ext_resource type="Resource" path="res://resources/effects/effect_on_landed_haste.tres" id="30_landed_haste"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_player"] size = Vector2(34, 52) [sub_resource type="RectangleShape2D" id="RectangleShape2D_hitbox"] size = Vector2(48, 40) [sub_resource type="RectangleShape2D" id="RectangleShape2D_hurtbox"] size = Vector2(22, 52) [sub_resource type="Animation" id="Animation_idle"] resource_name = "idle" length = 0.4 loop_mode = 1 step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visual/CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("2_idle")]} tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visual/CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [4]} tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visual/CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [2]} tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visual/CharacterSprite:frame") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = {"times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 4, 5, 6, 7]} tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Visual/FxOverlay:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false]} [sub_resource type="Animation" id="Animation_atk_ground_1"] resource_name = "atk_ground_1" length = 0.35 step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visual/CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = {"times": PackedFloat32Array(0, 0.15), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [ExtResource("3_atk1_prep"), ExtResource("4_atk1_swing")]} tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visual/CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [3]} tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visual/CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [1]} tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visual/CharacterSprite:frame") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = {"times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2, 0.25), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 0, 1, 2]} tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Visual/FxOverlay:texture") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = {"times": PackedFloat32Array(0.15), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("5_atk1_fx")]} tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Visual/FxOverlay:hframes") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = {"times": PackedFloat32Array(0.15), "transitions": PackedFloat32Array(1), "update": 1, "values": [5]} tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("Visual/FxOverlay:vframes") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = {"times": PackedFloat32Array(0.15), "transitions": PackedFloat32Array(1), "update": 1, "values": [1]} tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true tracks/7/path = NodePath("Visual/FxOverlay:frame") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = {"times": PackedFloat32Array(0.15, 0.2, 0.25, 0.3), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 1, "values": [1, 2, 3, 4]} tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true tracks/8/path = NodePath("Visual/FxOverlay:visible") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = {"times": PackedFloat32Array(0, 0.15, 0.35), "transitions": PackedFloat32Array(1, 1, 1), "update": 1, "values": [false, true, false]} tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true tracks/9/path = NodePath("Visual/FxOverlay:offset") tracks/9/interp = 1 tracks/9/loop_wrap = true tracks/9/keys = {"times": PackedFloat32Array(0.15), "transitions": PackedFloat32Array(1), "update": 1, "values": [Vector2(-147, -191)]} [sub_resource type="Animation" id="Animation_atk_ground_2"] resource_name = "atk_ground_2" length = 0.35 step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visual/CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = {"times": PackedFloat32Array(0, 0.15), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [ExtResource("6_atk2_prep"), ExtResource("7_atk2_swing")]} tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visual/CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [3]} tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visual/CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [1]} tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visual/CharacterSprite:frame") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = {"times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2, 0.25), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 0, 1, 2]} tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Visual/FxOverlay:texture") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = {"times": PackedFloat32Array(0.15), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("8_atk2_fx")]} tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Visual/FxOverlay:hframes") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = {"times": PackedFloat32Array(0.15), "transitions": PackedFloat32Array(1), "update": 1, "values": [5]} tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("Visual/FxOverlay:vframes") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = {"times": PackedFloat32Array(0.15), "transitions": PackedFloat32Array(1), "update": 1, "values": [1]} tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true tracks/7/path = NodePath("Visual/FxOverlay:frame") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = {"times": PackedFloat32Array(0.15, 0.2, 0.25, 0.3), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 1, "values": [1, 2, 3, 4]} tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true tracks/8/path = NodePath("Visual/FxOverlay:visible") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = {"times": PackedFloat32Array(0, 0.15, 0.35), "transitions": PackedFloat32Array(1, 1, 1), "update": 1, "values": [false, true, false]} tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true tracks/9/path = NodePath("Visual/FxOverlay:offset") tracks/9/interp = 1 tracks/9/loop_wrap = true tracks/9/keys = {"times": PackedFloat32Array(0.15), "transitions": PackedFloat32Array(1), "update": 1, "values": [Vector2(-147, -191)]} [sub_resource type="Animation" id="Animation_rising_slash"] resource_name = "rising_slash" length = 0.42 step = 0.03 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visual/CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = {"times": PackedFloat32Array(0, 0.09), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [ExtResource("9_rise_prep"), ExtResource("10_rise_swing")]} tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visual/CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = {"times": PackedFloat32Array(0, 0.09), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [3, 5]} tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visual/CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = {"times": PackedFloat32Array(0, 0.09), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [1, 2]} tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visual/CharacterSprite:frame") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = {"times": PackedFloat32Array(0, 0.03, 0.06, 0.09, 0.12, 0.15, 0.18, 0.21, 0.24, 0.27, 0.3, 0.33, 0.36), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]} tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Visual/FxOverlay:texture") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = {"times": PackedFloat32Array(0.09), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("11_rise_fx")]} tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Visual/FxOverlay:hframes") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = {"times": PackedFloat32Array(0.09), "transitions": PackedFloat32Array(1), "update": 1, "values": [5]} tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("Visual/FxOverlay:vframes") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = {"times": PackedFloat32Array(0.09), "transitions": PackedFloat32Array(1), "update": 1, "values": [2]} tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true tracks/7/path = NodePath("Visual/FxOverlay:frame") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = {"times": PackedFloat32Array(0.09, 0.12, 0.15, 0.18, 0.21, 0.24, 0.27, 0.3, 0.33), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1), "update": 1, "values": [1, 2, 3, 4, 5, 6, 7, 8, 9]} tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true tracks/8/path = NodePath("Visual/FxOverlay:visible") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = {"times": PackedFloat32Array(0, 0.09, 0.42), "transitions": PackedFloat32Array(1, 1, 1), "update": 1, "values": [false, true, false]} tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true tracks/9/path = NodePath("Visual/FxOverlay:offset") tracks/9/interp = 1 tracks/9/loop_wrap = true tracks/9/keys = {"times": PackedFloat32Array(0.09), "transitions": PackedFloat32Array(1), "update": 1, "values": [Vector2(-111, -156)]} [sub_resource type="Animation" id="Animation_block_start"] resource_name = "block_start" length = 0.25 step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visual/CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("25_block_start")]} tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visual/CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [5]} tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visual/CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [1]} tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visual/CharacterSprite:frame") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = {"times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2), "transitions": PackedFloat32Array(1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 4]} tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Visual/FxOverlay:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false]} [sub_resource type="Animation" id="Animation_turn"] resource_name = "turn" length = 0.15 step = 0.025 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Visual/CharacterSprite:texture") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [ExtResource("12_turn")]} tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Visual/CharacterSprite:hframes") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [3]} tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Visual/CharacterSprite:vframes") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [2]} tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Visual/CharacterSprite:frame") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = {"times": PackedFloat32Array(0, 0.025, 0.05, 0.075, 0.1, 0.125), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 4, 5]} tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Visual/FxOverlay:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = {"times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false]} [sub_resource type="AnimationLibrary" id="AnimationLibrary_player"] _data = { &"atk_ground_1": SubResource("Animation_atk_ground_1"), &"atk_ground_2": SubResource("Animation_atk_ground_2"), &"block_start": SubResource("Animation_block_start"), &"idle": SubResource("Animation_idle"), &"rising_slash": SubResource("Animation_rising_slash"), &"turn": SubResource("Animation_turn") } [node name="Player" type="CharacterBody2D"] collision_layer = 32 collision_mask = 65 floor_snap_length = 0.0 safe_margin = 0.001 script = ExtResource("1_player_script") [node name="Visual" type="Node2D" parent="."] [node name="CharacterSprite" type="Sprite2D" parent="Visual"] texture_filter = 2 texture = ExtResource("2_idle") centered = false offset = Vector2(-64, -128) hframes = 4 vframes = 2 [node name="FxOverlay" type="Sprite2D" parent="Visual"] visible = false z_index = 2 texture_filter = 2 centered = false [node name="AttackBuffVisual" type="Node2D" parent="Visual"] z_index = 1 script = ExtResource("35_attack_buff_visual") [node name="FxAnimationPlayer" type="AnimationPlayer" parent="Visual"] [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, -72) shape = SubResource("RectangleShape2D_player") [node name="DamageEmitter" type="Area2D" parent="."] collision_layer = 8 collision_mask = 4 monitoring = false script = ExtResource("26_damage_emitter") damage = 100 [node name="CollisionShape2D" type="CollisionShape2D" parent="DamageEmitter"] position = Vector2(0, -72) shape = SubResource("RectangleShape2D_hitbox") [node name="DamageReceiver" type="Area2D" parent="."] collision_layer = 2 collision_mask = 16 script = ExtResource("27_damage_receiver") [node name="CollisionShape2D" type="CollisionShape2D" parent="DamageReceiver"] position = Vector2(0, -72) shape = SubResource("RectangleShape2D_hurtbox") [node name="OverheadChargeSegments" type="Node2D" parent="."] visible = false position = Vector2(0, -18) z_index = 96 script = ExtResource("36_overhead_charge_segments") segment_count = 3 segment_size = Vector2(42, 12) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries/ = SubResource("AnimationLibrary_player") autoplay = &"idle" [node name="ContactFxSpawner" type="Node" parent="."] script = ExtResource("31_contact_fx") [node name="StateMachine" type="Node" parent="."] script = ExtResource("13_state_machine") [node name="InputComponent" type="Node" parent="."] script = ExtResource("14_input_component") [node name="MovementMotor" type="Node" parent="."] script = ExtResource("15_movement_motor") [node name="ComboWindow" type="Node" parent="."] script = ExtResource("16_combo_window") [node name="ActionResolver" type="Node" parent="."] script = ExtResource("17_action_resolver") [node name="ActionExecutor" type="Node" parent="."] script = ExtResource("18_action_executor") energy_component_path = NodePath("../EnergyComponent") damage_emitter_path = NodePath("../DamageEmitter") [node name="ActionController" type="Node" parent="."] script = ExtResource("19_action_controller") combo_window_path = NodePath("../ComboWindow") action_resolver_path = NodePath("../ActionResolver") action_executor_path = NodePath("../ActionExecutor") state_machine_path = NodePath("../StateMachine") burst_component_path = NodePath("../BurstComponent") [node name="MotionExecutor" type="Node" parent="."] script = ExtResource("20_motion_executor") [node name="BurstComponent" type="Node" parent="."] script = ExtResource("21_burst_component") [node name="EffectContainer" type="Node" parent="."] script = ExtResource("24_effect_container") initial_effects = Array[Resource]([ExtResource("29_perfect_reward"), ExtResource("30_landed_haste")]) [node name="HealthComponent" type="Node" parent="."] script = ExtResource("28_health_component") maximum = 1000 current = 1000 hitstun_seconds = 0.4 [node name="ChargeComponent" type="Node" parent="."] script = ExtResource("22_charge_component") animation_player_path = NodePath("../AnimationPlayer") effect_sprite_path = NodePath("../Visual/FxOverlay") [node name="EnergyComponent" type="Node" parent="."] script = ExtResource("23_energy_component") [node name="StreakCounter" type="Node" parent="."] script = ExtResource("32_streak_counter") [node name="AttackBuffComponent" type="Node" parent="."] script = ExtResource("33_attack_buff") [node name="FrameCollisionDriver" type="Node" parent="."] script = ExtResource("34_frame_collision")