This commit is contained in:
Daniya_Youdakova 2022-12-25 17:47:11 +04:00
parent 8aeba4bf1e
commit 267d861a60

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms.Design.Behavior;
namespace AircraftCarrier
{
@ -14,6 +15,7 @@ namespace AircraftCarrier
_aircraftcarrier = aircraftcarrier;
}
public float Step => _aircraftcarrier?.AircraftCarrier?.Step ?? 0;
public DrawningAircraftCarrier GetAircraftCarrier => _aircraftcarrier;
public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
{
return _aircraftcarrier?.GetCurrentPosition() ?? default;
@ -32,5 +34,61 @@ namespace AircraftCarrier
}
public string GetInfo() => _aircraftcarrier?.GetDataForSave();
public static IDrawningObject Create(string data) => new DrawningObjectAircraftCarrier(data.CreateDrawningAircraftCarrier());
public bool Equals(IDrawningObject? other)
{
if (other == null)
{
return false;
}
var otherAircraftCarrier = other as DrawningObjectAircraftCarrier;
if (otherAircraftCarrier == null)
{
return false;
}
var aircraftcarrier = _aircraftcarrier.AircraftCarrier;
var otherAircraftCarrierAircraftCarrier = otherAircraftCarrier._aircraftcarrier.AircraftCarrier;
if (aircraftcarrier.GetType().Name != otherAircraftCarrierAircraftCarrier.GetType().Name)
{
return false;
}
if (aircraftcarrier.Speed != otherAircraftCarrierAircraftCarrier.Speed)
{
return false;
}
if (aircraftcarrier.Weight != otherAircraftCarrierAircraftCarrier.Weight)
{
return false;
}
if (aircraftcarrier.BodyColor != otherAircraftCarrierAircraftCarrier.BodyColor)
{
return false;
}
// TODO доделать проверки в случае продвинутого объекта
if (aircraftcarrier is EntityModernAircraftCarrier Modernaircraftcarrier && otherAircraftCarrierAircraftCarrier is EntityModernAircraftCarrier otherModernaircraftcarrier)
{
if (Modernaircraftcarrier.Route != otherModernaircraftcarrier.Route)
{
return false;
}
if (Modernaircraftcarrier.FlightDeck != otherModernaircraftcarrier.FlightDeck)
{
return false;
}
if (Modernaircraftcarrier.HangarDeck != otherModernaircraftcarrier.HangarDeck)
{
return false;
}
if (Modernaircraftcarrier.DopColor != otherModernaircraftcarrier.DopColor)
{
return false;
}
}
else if (aircraftcarrier is EntityModernAircraftCarrier || aircraftcarrier is EntityModernAircraftCarrier)
{
return false;
}
return true;
}
}
}