diff --git a/Resources/Bullets/EmitterTestBullet.tres b/Resources/Bullets/EmitterTestBullet.tres index 21b48ea7..02cee960 100644 --- a/Resources/Bullets/EmitterTestBullet.tres +++ b/Resources/Bullets/EmitterTestBullet.tres @@ -10,7 +10,8 @@ BulletSpeed = 20.0 Direction = Vector2(1, 0) BulletDamage = 8.0 LifeTime = 4.0 -DestroyOnCollision = false +DestroyOnCollision = true Owner = 0 DamageType = 2 +Controllable = false TimeModifiers = Array[Object]([]) diff --git a/Resources/Materials/Player_Blink_Teleport_Material.tres b/Resources/Materials/Player_Blink_Teleport_Material.tres new file mode 100644 index 00000000..392a1115 --- /dev/null +++ b/Resources/Materials/Player_Blink_Teleport_Material.tres @@ -0,0 +1,11 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dnvwgyt2tbqmr"] + +[ext_resource type="Shader" uid="uid://0ruey5bjl7mh" path="res://Shaders/Blink.gdshader" id="1_oiiyf"] + +[resource] +resource_local_to_scene = true +shader = ExtResource("1_oiiyf") +shader_parameter/blink_color = Color(1, 0.0705882, 0.0392157, 1) +shader_parameter/blink_intensity = 0.0 +shader_parameter/teleport_progress = 0.0 +shader_parameter/scanline_density = 0.0 diff --git a/Scenes/Actors/fsm_player.tscn b/Scenes/Actors/fsm_player.tscn index 127f016d..066b0bed 100644 --- a/Scenes/Actors/fsm_player.tscn +++ b/Scenes/Actors/fsm_player.tscn @@ -1,21 +1,35 @@ -[gd_scene load_steps=21 format=3 uid="uid://c4pr2707hbeph"] +[gd_scene load_steps=28 format=3 uid="uid://c4pr2707hbeph"] [ext_resource type="Script" uid="uid://bw2hakslndaxm" path="res://Scripts/Components/FSM/PlayerStateMachine.cs" id="1_mpmil"] [ext_resource type="Script" uid="uid://chwqogny2v8t1" path="res://Scripts/Components/FSM/Player/Init.cs" id="2_i6wc8"] [ext_resource type="Script" uid="uid://bl0o35xt8wxtg" path="res://Scripts/Components/FSM/Player/Active.cs" id="3_3tuio"] +[ext_resource type="Script" uid="uid://bo6xcjnw3yn6s" path="res://Scripts/Components/FSM/Player/Dead.cs" id="4_0pqs8"] +[ext_resource type="Material" uid="uid://dnvwgyt2tbqmr" path="res://Resources/Materials/Player_Blink_Teleport_Material.tres" id="4_5qlss"] [ext_resource type="SpriteFrames" uid="uid://bc7mghjx75qip" path="res://Resources/Sprites/player.tres" id="4_s0ir4"] [ext_resource type="Script" uid="uid://b4nixnxhj5qhw" path="res://Scripts/Components/Actors/PlayerWeaponProvider.cs" id="5_gp3hw"] [ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="6_8dcio"] [ext_resource type="Script" uid="uid://bo5sgbv1t8ril" path="res://Scripts/Components/Actors/PlayerAnimationProvider.cs" id="7_pmkfo"] [ext_resource type="Script" uid="uid://dq338w2lw5phl" path="res://Scripts/Components/Actors/KeyboardInputProvider.cs" id="8_i6wc8"] +[ext_resource type="PackedScene" uid="uid://biugfbp0yae2s" path="res://Scenes/Particles/DeathParticles.tscn" id="9_0pyos"] [ext_resource type="Script" uid="uid://d208gvthkstvc" path="res://Scripts/Components/Actors/PlayerCrosshairProvider.cs" id="9_s0ir4"] [ext_resource type="Texture2D" uid="uid://cfrvb1moh857m" path="res://Sprites/Crosshair.png" id="10_8dcio"] [ext_resource type="Script" uid="uid://3jxrxcqp3ndr" path="res://Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs" id="10_gp3hw"] [ext_resource type="Texture2D" uid="uid://bwjrdlnysft15" path="res://Sprites/Actors/Focus_Circle.png" id="12_8dcio"] [ext_resource type="Texture2D" uid="uid://bf37ce6jskdel" path="res://Sprites/SmallHitbox.png" id="13_pmkfo"] +[ext_resource type="Script" uid="uid://dkmsw828qwikk" path="res://Scripts/Components/Actors/PlayerDamageReceiver.cs" id="14_igu66"] +[ext_resource type="Script" uid="uid://cqwvssstkrdmw" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="15_5qlss"] [sub_resource type="CircleShape2D" id="CircleShape2D_b3hxm"] +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_0pqs8"] +particle_flag_disable_z = true +emission_shape = 2 +emission_sphere_radius = 16.0 +orbit_velocity_min = -1.0 +orbit_velocity_max = 1.098 +gravity = Vector3(0, 0, 0) +color = Color(0.0392157, 0.380392, 1, 1) + [sub_resource type="AtlasTexture" id="AtlasTexture_pmkfo"] atlas = ExtResource("10_8dcio") region = Rect2(0, 0, 8, 8) @@ -61,6 +75,9 @@ animations = [{ "speed": 5.0 }] +[sub_resource type="CircleShape2D" id="CircleShape2D_igu66"] +radius = 2.23607 + [node name="FSMPlayer" type="CharacterBody2D"] collision_layer = 2 collision_mask = 97 @@ -71,19 +88,26 @@ InitialState = 1 [node name="Init" type="Node2D" parent="."] script = ExtResource("2_i6wc8") -[node name="Active" type="Node2D" parent="." node_paths=PackedStringArray("_weaponProvider", "_animationProvider", "_crosshairProvider", "_hitboxSpriteProvider", "_inputProvider")] +[node name="Active" type="Node2D" parent="." node_paths=PackedStringArray("_weaponProvider", "_animationProvider", "_crosshairProvider", "_hitboxSpriteProvider", "_inputProvider", "_damageReceiver")] script = ExtResource("3_3tuio") _weaponProvider = NodePath("../WeaponProvider") _animationProvider = NodePath("../AnimationProvider") _crosshairProvider = NodePath("../CrosshairProvider") _hitboxSpriteProvider = NodePath("../StrafeSpriteProvider") _inputProvider = NodePath("../InputProvider") +_damageReceiver = NodePath("../DamageReceiver") State = 1 +[node name="Dead" type="Node2D" parent="." node_paths=PackedStringArray("_animationProvider")] +script = ExtResource("4_0pqs8") +_animationProvider = NodePath("../AnimationProvider") +State = 4 + [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_b3hxm") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +material = ExtResource("4_5qlss") sprite_frames = ExtResource("4_s0ir4") animation = &"idle" @@ -91,9 +115,19 @@ animation = &"idle" script = ExtResource("5_gp3hw") WeaponTemplate = ExtResource("6_8dcio") -[node name="AnimationProvider" type="Node2D" parent="." node_paths=PackedStringArray("_animatedSprite")] +[node name="AnimationProvider" type="Node2D" parent="." node_paths=PackedStringArray("_animatedSprite", "_shieldParticles")] script = ExtResource("7_pmkfo") _animatedSprite = NodePath("../AnimatedSprite2D") +_deathParticles = ExtResource("9_0pyos") +_shieldParticles = NodePath("ShieldParticles") +BlinkMaterial = ExtResource("4_5qlss") + +[node name="ShieldParticles" type="GPUParticles2D" parent="AnimationProvider"] +emitting = false +amount = 32 +lifetime = 0.4 +one_shot = true +process_material = SubResource("ParticleProcessMaterial_0pqs8") [node name="InputProvider" type="Node2D" parent="."] script = ExtResource("8_i6wc8") @@ -119,3 +153,25 @@ sprite_frames = SubResource("SpriteFrames_igu66") [node name="Hitbox" type="AnimatedSprite2D" parent="StrafeSpriteProvider"] z_index = 2 sprite_frames = SubResource("SpriteFrames_5qlss") + +[node name="DamageReceiver" type="Area2D" parent="." node_paths=PackedStringArray("_healthProvider", "_shieldProvider")] +collision_layer = 2 +collision_mask = 136 +script = ExtResource("14_igu66") +_healthProvider = NodePath("HealthProvider") +_shieldProvider = NodePath("ShieldProvider") + +[node name="HealthProvider" type="Node2D" parent="DamageReceiver"] +script = ExtResource("15_5qlss") +ResourceName = "Health" +MaxResource = 32.0 + +[node name="ShieldProvider" type="Node2D" parent="DamageReceiver"] +script = ExtResource("15_5qlss") +ResourceName = "Shield" +MaxResource = 32.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageReceiver"] +shape = SubResource("CircleShape2D_igu66") + +[connection signal="area_entered" from="DamageReceiver" to="DamageReceiver" method="_on_damage_hitbox_area_entered"] diff --git a/Scenes/Maps/PlayerFSMTest.tscn b/Scenes/Maps/PlayerFSMTest.tscn index d0ff54d4..1bb9eb77 100644 --- a/Scenes/Maps/PlayerFSMTest.tscn +++ b/Scenes/Maps/PlayerFSMTest.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=4 uid="uid://dqyfnby0t7gu1"] +[gd_scene load_steps=19 format=4 uid="uid://dqyfnby0t7gu1"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_c3v4x"] [ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_w1v1g"] @@ -6,6 +6,7 @@ [ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_u1i8n"] [ext_resource type="Resource" uid="uid://dhbltvgsa3g88" path="res://Resources/Items/Spider_Bomb_Pickup.tres" id="4_yyg8m"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_6314l"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="5_u1i8n"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_yyg8m"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="8_c3v4x"] [ext_resource type="Script" uid="uid://cfya7sndh7vy2" path="res://Scenes/CameraController.gd" id="9_dj0ui"] @@ -14,11 +15,13 @@ [ext_resource type="Script" uid="uid://bdshph801ac2i" path="res://Scenes/CameraTarget.gd" id="12_8to53"] [ext_resource type="Script" uid="uid://cnkipcolyj61w" path="res://Scripts/AlarmManager.cs" id="13_8fnge"] [ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="14_q7rh4"] +[ext_resource type="PackedScene" uid="uid://cd36ch65jijg0" path="res://Scenes/Activable/BulletEmitter.tscn" id="15_b3hxm"] +[ext_resource type="Resource" uid="uid://bj331rcsq65es" path="res://Resources/Bullets/EmitterTestBullet.tres" id="16_u1i8n"] [sub_resource type="Resource" id="Resource_6wo78"] script = ExtResource("4_u1i8n") EggIndex = 0 -StartingEquipment = [] +StartingEquipment = Array[ExtResource("5_u1i8n")]([]) [node name="GameScene" type="Node2D"] process_mode = 3 @@ -86,3 +89,8 @@ script = ExtResource("13_8fnge") [node name="AudioStreamPlayer2D" parent="." instance=ExtResource("14_q7rh4")] process_mode = 3 autoplay = true + +[node name="BulletEmitter" parent="." instance=ExtResource("15_b3hxm")] +position = Vector2(59.7855, 263.59) +BulletResource = ExtResource("16_u1i8n") +EmitOnStart = true diff --git a/Scenes/player.tscn b/Scenes/player.tscn index 9d5a8eca..ec7c7468 100644 --- a/Scenes/player.tscn +++ b/Scenes/player.tscn @@ -10,6 +10,7 @@ [ext_resource type="PackedScene" uid="uid://cfb3nsay84xdb" path="res://Scenes/Weapons/crosshair.tscn" id="6_l43rf"] [ext_resource type="Shader" uid="uid://0ruey5bjl7mh" path="res://Shaders/Blink.gdshader" id="6_xugve"] [ext_resource type="SpriteFrames" uid="uid://bc7mghjx75qip" path="res://Resources/Sprites/player.tres" id="7_fd4e3"] +[ext_resource type="Material" uid="uid://dnvwgyt2tbqmr" path="res://Resources/Materials/Player_Blink_Teleport_Material.tres" id="7_igrcy"] [ext_resource type="Texture2D" uid="uid://bf37ce6jskdel" path="res://Sprites/SmallHitbox.png" id="7_msn8i"] [ext_resource type="Script" uid="uid://cem7a1agaqtrt" path="res://Scenes/InteractionController.cs" id="7_uvgjg"] [ext_resource type="Texture2D" uid="uid://bwjrdlnysft15" path="res://Sprites/Actors/Focus_Circle.png" id="8_1og8b"] @@ -25,14 +26,6 @@ size = Vector2(6, 6) atlas = ExtResource("2_bwf6x") region = Rect2(0, 0, 8, 16) -[sub_resource type="ShaderMaterial" id="ShaderMaterial_s7co1"] -resource_local_to_scene = true -shader = ExtResource("6_xugve") -shader_parameter/blink_color = Color(1, 0.0705882, 0.0392157, 1) -shader_parameter/blink_intensity = 0.0 -shader_parameter/teleport_progress = 0.0 -shader_parameter/scanline_density = 0.0 - [sub_resource type="AtlasTexture" id="AtlasTexture_lsyrf"] atlas = ExtResource("8_1og8b") region = Rect2(0, 0, 32, 32) @@ -103,7 +96,7 @@ frame = 1 [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Smoothing2D" groups=["player_sprite"]] y_sort_enabled = true -material = SubResource("ShaderMaterial_s7co1") +material = ExtResource("7_igrcy") sprite_frames = ExtResource("7_fd4e3") animation = &"walk_left" frame = 1 diff --git a/Scripts/Components/Actors/PlayerAnimationProvider.cs b/Scripts/Components/Actors/PlayerAnimationProvider.cs index 34c3e1b0..9784f13b 100644 --- a/Scripts/Components/Actors/PlayerAnimationProvider.cs +++ b/Scripts/Components/Actors/PlayerAnimationProvider.cs @@ -1,10 +1,19 @@ +using System.Threading.Tasks; +using Cirno.Scripts; +using Cirno.Scripts.Components; using Godot; +using GTweens.Builders; +using GTweens.Tweens; +using GTweensGodot.Extensions; public partial class PlayerAnimationProvider : Node2D { [Export] public AnimatedSprite2D _animatedSprite {get; private set;} + [Export] private PackedScene _deathParticles; + [Export] private GpuParticles2D _shieldParticles; + [ExportCategory("Animation Names")] [Export] public string WalkRightAnimationName {get; private set;} = "walk_right"; @@ -16,6 +25,13 @@ public partial class PlayerAnimationProvider : Node2D [Export] public string WalkUpAnimationName {get; private set;} = "walk_up"; + [ExportCategory("Shaders")] + [Export] public ShaderMaterial BlinkMaterial {get; private set;} + + [Export] public StringName BlinkShaderPropertyName { get; private set; } = new StringName("blink_intensity"); + + private GTween _blinkTween; + public void SetAnimation(Vector2 velocity) { if (velocity.X == 0 && velocity.Y == 0) @@ -45,4 +61,46 @@ public partial class PlayerAnimationProvider : Node2D } } + public void Blink() + { + if (BlinkMaterial == null) return; + _animatedSprite.Material = BlinkMaterial; + + var material = ((ShaderMaterial)_animatedSprite.Material); + + _blinkTween?.Kill(); + + _blinkTween = GTweenSequenceBuilder.New() + .Append(material.TweenPropertyFloat(BlinkShaderPropertyName, 1f, 0f)) + .Append(material.TweenPropertyFloat(BlinkShaderPropertyName, 0f, 0.5f)) + .Build(); + + _blinkTween.Play(); + } + + private void SetShaderTeleportProgress(float value) + { + ((ShaderMaterial)_animatedSprite.Material).SetShaderParameter("teleport_progress", value); + } + + private void SetShaderScanlineDensity(float value) + { + ((ShaderMaterial)_animatedSprite.Material).SetShaderParameter("scanline_density", value); + } + + private void SetShaderBlinkIntensity(float newValue) + { + ((ShaderMaterial)_animatedSprite.Material).SetShaderParameter("blink_intensity", newValue); + } + + public void PlayDeathAnimation() + { + this.CreateSibling(_deathParticles, this.GlobalPosition); + _animatedSprite.Visible = false; + } + + public void PlayShieldAnimation() + { + _shieldParticles.Emitting = true; + } } \ No newline at end of file diff --git a/Scripts/Components/Actors/PlayerDamageReceiver.cs b/Scripts/Components/Actors/PlayerDamageReceiver.cs new file mode 100644 index 00000000..9f86324a --- /dev/null +++ b/Scripts/Components/Actors/PlayerDamageReceiver.cs @@ -0,0 +1,104 @@ +using System; +using Godot; + +namespace Cirno.Scripts.Components.Actors; + +public partial class PlayerDamageReceiver : Area2D +{ + [Export] + public bool Enabled { get; set; } = false; + [Export] + public bool Invulnerable { get; private set; } = false; + [Export] public BulletOwner BulletGroup { get; set; } = BulletOwner.Player; + + [Export] + private ActorResourceProvider _healthProvider; + [Export] + private ActorResourceProvider _shieldProvider; + + [Signal] + public delegate void HealthChangedEventHandler(float newValue, float maxValue); + + [Signal] + public delegate void ShieldChangedEventHandler(float newValue, float maxValue); + + [Signal] + public delegate void DeathEventHandler(); + + public float CurrentHealth + { + get => _healthProvider.CurrentResource; + set => _healthProvider.CurrentResource = value; + } + + public float CurrentShield + { + get => _shieldProvider.CurrentResource; + set => _shieldProvider.CurrentResource = value; + } + + public void Init() + { + _healthProvider.FillResource(); + _shieldProvider.FillResource(); + + _healthProvider.ResourceChanged += ((value, maxValue) => + { + if (!Enabled) return; + EmitSignal(SignalName.HealthChanged, value, maxValue); + }); + + _shieldProvider.ResourceChanged += ((value, maxValue) => + { + if (!Enabled) return; + EmitSignal(SignalName.ShieldChanged, value, maxValue); + }); + + _healthProvider.ResourceDepleted += () => + { + if (!Enabled) return; + EmitSignal(SignalName.Death); + }; + } + + private void _on_damage_hitbox_area_entered(Area2D area) + { + if (!Enabled) return; + if (Invulnerable) return; + if (area is not Bullet bullet || bullet.BulletOwner == BulletGroup) return; + this.Hit(bullet.Damage, bullet.DamageType); + bullet.RequestCollisionDestruction(); + } + + public void Hit(float damage, DamageType type = DamageType.Neutral) + { + if (!Enabled) return; + + if (CurrentShield > 0 && type is not DamageType.Explosive or DamageType.Acid) + { + // Reduce shield + //PlayShieldAnimation(); // Let this be handled by event + CurrentShield -= damage; + if (CurrentShield < 0) + { + CurrentHealth -= Math.Abs(CurrentShield); + CurrentShield = 0; + } + } + else + { + if (type is DamageType.Fire) + { + CurrentHealth -= damage * 2; + } + else + { + CurrentHealth -= damage; + } + + //Blink(); // Let this be handled by event + } + + if (!(CurrentHealth <= 0)) return; + } +} \ No newline at end of file diff --git a/Scripts/Components/Actors/PlayerDamageReceiver.cs.uid b/Scripts/Components/Actors/PlayerDamageReceiver.cs.uid new file mode 100644 index 00000000..ae97f96b --- /dev/null +++ b/Scripts/Components/Actors/PlayerDamageReceiver.cs.uid @@ -0,0 +1 @@ +uid://dkmsw828qwikk diff --git a/Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs b/Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs index 878d2a62..8a9018b3 100644 --- a/Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs +++ b/Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs @@ -21,15 +21,15 @@ public partial class PlayerHitboxSpriteProvider : Node2D } } - public void Show() - { - Hitbox.Show(); - Circle.Show(); - } - - public void Hide() - { - Hitbox.Hide(); - Circle.Hide(); - } + // public void Show() + // { + // Hitbox.Show(); + // Circle.Show(); + // } + // + // public void Hide() + // { + // Hitbox.Hide(); + // Circle.Hide(); + // } } \ No newline at end of file diff --git a/Scripts/Components/FSM/Player/Active.cs b/Scripts/Components/FSM/Player/Active.cs index 8fdcb566..a9c6ab1a 100644 --- a/Scripts/Components/FSM/Player/Active.cs +++ b/Scripts/Components/FSM/Player/Active.cs @@ -7,7 +7,7 @@ namespace Cirno.Scripts.Components.FSM.Player; public partial class Active : PlayerFSMState { private Vector2 _movementDirection { get; set; } - public Vector2 FacingDirection { get; private set; } + public Vector2 FacingDirection { get; private set; } = Vector2.Down; [Export] public int Speed { get; set; } = 45; @@ -27,16 +27,37 @@ public partial class Active : PlayerFSMState [Export] private InputProvider _inputProvider; + [Export] private PlayerDamageReceiver _damageReceiver; + private bool _isStrafing; - - public int MovementSpeed => _isStrafing ? StrafeSpeed : Speed; + private PlayerStateMachine _player; + public override void Init(ActorStateMachine stateMachine) { base.Init(stateMachine); + _player = (PlayerStateMachine)stateMachine; + + _damageReceiver.Death += () => + { + ChangeState(PlayerState.Dead); + }; + + _damageReceiver.HealthChanged += (value, maxValue) => + { + _animationProvider.Blink(); + }; + + _damageReceiver.ShieldChanged += (value, maxValue) => + { + _animationProvider.PlayShieldAnimation(); + }; + + _damageReceiver.Init(); + //_weaponProvider = stateMachine.GetNode("WeaponProvider"); //_animationProvider = stateMachine.GetNode("AnimationProvider"); @@ -48,6 +69,8 @@ public partial class Active : PlayerFSMState // enable sprite // enable crosshair _crosshairProvider.Show(); + + _damageReceiver.Enabled = true; } public override void ExitState() @@ -55,6 +78,8 @@ public partial class Active : PlayerFSMState _animationProvider.SetAnimation(Vector2.Zero); _crosshairProvider.Hide(); _hitboxSpriteProvider.Hide(); + + _damageReceiver.Enabled = false; } public override void PhysicsProcessState(double delta) diff --git a/Scripts/Components/FSM/Player/Dead.cs b/Scripts/Components/FSM/Player/Dead.cs new file mode 100644 index 00000000..29b5b8ea --- /dev/null +++ b/Scripts/Components/FSM/Player/Dead.cs @@ -0,0 +1,29 @@ +using Godot; + +namespace Cirno.Scripts.Components.FSM.Player; + +public partial class Dead : PlayerFSMState +{ + [Export] + private PlayerAnimationProvider _animationProvider; + + public override void EnterState() + { + _animationProvider.PlayDeathAnimation(); + } + + public override void ExitState() + { + + } + + public override void ProcessState(double delta) + { + + } + + public override void PhysicsProcessState(double delta) + { + + } +} \ No newline at end of file diff --git a/Scripts/Components/FSM/Player/Dead.cs.uid b/Scripts/Components/FSM/Player/Dead.cs.uid new file mode 100644 index 00000000..c6000a46 --- /dev/null +++ b/Scripts/Components/FSM/Player/Dead.cs.uid @@ -0,0 +1 @@ +uid://bo6xcjnw3yn6s diff --git a/Scripts/PlayerMovement.cs b/Scripts/PlayerMovement.cs index a00083dd..74557f5e 100644 --- a/Scripts/PlayerMovement.cs +++ b/Scripts/PlayerMovement.cs @@ -178,7 +178,6 @@ public partial class PlayerMovement : CharacterBody2D, IDestructible case GameState.Menu: case GameState.Paused: _canMove = false; - _state = PlayerState.Paused; break; case GameState.Playing: _canMove = true; @@ -186,7 +185,6 @@ public partial class PlayerMovement : CharacterBody2D, IDestructible break; case GameState.Dialogue: _canMove = false; - _state = PlayerState.Paused; break; case GameState.Controlling: _canMove = false; @@ -585,7 +583,7 @@ public enum PlayerState { Init, Active, - Paused, + Cutscene, Controlling, Dead, } \ No newline at end of file