31 lines
977 B
C#
Raw Normal View History

2024-05-07 01:50:39 +04:00
namespace ProjectStormtrooper.MovementStrategy;
2024-04-10 01:14:09 +04:00
public class MoveToBorder : AbstractStrategy
{
protected override bool IsTargetDestinaion()
{
ObjectParameters? objParams = GetObjectParameters;
if (objParams == null)
{
return false;
}
2024-05-07 01:50:39 +04:00
return objParams.LeftBorder - GetStep() <= 0 ||
objParams.RightBorder + GetStep() >= FieldWidth ||
objParams.TopBorder - GetStep() <= 0
|| objParams.ObjectMiddleVertical + GetStep() >= FieldHeight;
2024-04-10 01:14:09 +04:00
}
protected override void MoveToTarget()
{
ObjectParameters? objParams = GetObjectParameters;
if (objParams == null)
{
return;
}
2024-05-07 01:50:39 +04:00
//реализация в правый нижний угол
int x = objParams.RightBorder;
if (x + GetStep() < FieldWidth) MoveRight();
int y = objParams.DownBorder;
if (y + GetStep() < FieldHeight) MoveDown();
2024-04-10 01:14:09 +04:00
}
}