Исправлена логика шипов

This commit is contained in:
Евгений Титаренко 2023-08-19 12:06:48 +03:00
parent 1fe08a596d
commit 4dbcb00029
2 changed files with 56 additions and 14 deletions

View file

@ -1,5 +1,7 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class Spikes : Area2D
{
@ -16,6 +18,7 @@ public partial class Spikes : Area2D
private AnimatedSprite2D _sprite;
private State _state = State.Waiting;
private float _timeSinceState;
private readonly List<Node2D> _bodiesOnButton = new List<Node2D>();
// Called when the node enters the scene tree for the first time.
@ -47,6 +50,7 @@ public partial class Spikes : Area2D
break;
case State.Opening:
_sprite.Play("default");
KillBodiesOnButton();
break;
case State.Closing:
_sprite.PlayBackwards("default");
@ -56,27 +60,50 @@ public partial class Spikes : Area2D
}
private void KillBodiesOnButton()
{
foreach (var body in _bodiesOnButton)
{
switch (body)
{
case LivingArmor armor:
armor.Kill(this);
break;
case Wretched wretched:
wretched.Kill(this);
break;
case Player player:
player.Kill(this);
break;
default:
return;
}
}
}
private void _OnEntered(Node2D body)
{
if (_state is State.Waiting)
return;
switch (body)
{
case Wretched wretched:
wretched.Kill(this);
break;
case Player player:
player.Kill(this);
break;
default:
return;
}
// if (_state is State.Waiting)
// {
_bodiesOnButton.Add(body);
// }
// switch (body)
// {
// case Wretched wretched:
// wretched.Kill(this);
// break;
// case Player player:
// player.Kill(this);
// break;
// default:
// return;
// }
}
private void _OnExited(Node2D body)
{
// Replace with function body.
_bodiesOnButton.Remove(body);
}
private void _WhenOpened()