using static System.Reflection.Metadata.BlobBuilder; using System.Net.Sockets; namespace lab1.Entities; /// /// Класс-сущность "Истребитель" /// public class EntityFighter : EntityTrackedVehicle { /// /// Дополнительный цвет (для опциональных элементов) /// public Color AdditionalColor { get; private set; } /// /// Признак (опция) наличия ковша /// public bool Kovsh { get; private set; } public void setBodyTankColor(Color color) { AdditionalColor = color; } /// /// Признак (опция) наличия опор для фиксации /// public bool Otval { get; private set; } /// /// Инициализация полей объекта-класса истребителя /// /// Скорость /// >Вес истребителя /// Основной цвет /// Дополнительный цвет /// Признак наличия ракет /// Признак наличия доп. крыльев public EntityFighter(int speed, double weight, Color bodyColor, Color additionalColor, bool rockets, bool extraWings) : base(speed, weight, bodyColor) { AdditionalColor = additionalColor; Kovsh = rockets; Otval = extraWings; } /// /// Получение строк со значениями свойств объекта класса-сущности /// /// public override string[] GetStringRepresentation() { return new[] { nameof(EntityFighter), Speed.ToString(), Weight.ToString(), BodyColor.Name, AdditionalColor.Name, Kovsh.ToString(), Otval.ToString() }; } /// /// Создание объекта из массива строк /// /// /// public static EntityFighter? CreateEntityStormtrooper(string[] strs) { if (strs.Length != 7 || strs[0] != nameof(EntityFighter)) { return null; } return new EntityFighter(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]), Color.FromName(strs[4]), Convert.ToBoolean(strs[5]), Convert.ToBoolean(strs[6])); } internal static EntityTrackedVehicle? CreateEntityFighter(string[] strs) { throw new NotImplementedException(); } }