45 lines
1.1 KiB
C#
45 lines
1.1 KiB
C#
using Godot;
|
|
|
|
namespace Newlon.Components.Zombies;
|
|
|
|
public partial class ZombieMover : Node
|
|
{
|
|
[Export]
|
|
private FloatModifiers _speed;
|
|
public float Speed => _speed.GetValue();
|
|
[Export]
|
|
private float _speedControlMult;
|
|
private Node2D _zombie;
|
|
|
|
public override void _Ready()
|
|
{
|
|
_zombie = GetParent<Node2D>();
|
|
}
|
|
|
|
public override void _PhysicsProcess(double delta)
|
|
{
|
|
_zombie.Position -= _zombie.Transform.X
|
|
* (float)delta
|
|
* FieldParams.TileWidth
|
|
* GetParent<RuntimeZombieData>().LocalTimescale
|
|
* Speed
|
|
* _speedControlMult;
|
|
}
|
|
|
|
public void SetSpeedFlat(float speed)
|
|
{
|
|
_speed.SetFlat(speed);
|
|
}
|
|
public void SetSpeedPercentage(float speed)
|
|
{
|
|
_speed.SetPercentage(speed);
|
|
}
|
|
public void SetSpeedMult(float speed)
|
|
{
|
|
_speed.SetMult(speed);
|
|
}
|
|
public void AddMult(float amount)
|
|
{
|
|
_speed.ChangeMult(amount);
|
|
}
|
|
}
|