namespace ProjectCruiser.Entities { internal class EntityMilitaryCruiser : EntityCruiser { /// /// Признак (опция) наличие вертолетной площадки /// public bool HelicopterArea { get; private set; } /// /// Признак (опция) наличие шлюпок /// public bool Boat { get; private set; } /// /// Признак (опция) наличие пушки /// public bool Weapon { get; private set; } /// /// Дополнительный цвет (для опциональных элементов) /// public Color AdditionalColor { get; private set; } public void setAdditionalColor(Color color) { AdditionalColor = color; } public EntityMilitaryCruiser(int speed, double weight, Color bodyColor, Color additionalColor, bool helicopterArea, bool boat, bool weapon) : base(speed, weight, bodyColor) { AdditionalColor = additionalColor; HelicopterArea = helicopterArea; Boat = boat; Weapon = weapon; } /// /// Получение строк со значениями свойств объекта класса-сущности /// /// public override string[] GetStringRepresentation() { return new[] { nameof(EntityCruiser), Speed.ToString(), Weight.ToString(), BodyColor.Name, AdditionalColor.Name, HelicopterArea.ToString(), Boat.ToString(), Weapon.ToString() }; } /// /// Создание объекта из массива строк /// /// /// public static EntityCruiser? CreateEntityMilitaryCruiser(string[] strs) { if (strs.Length != 8 || strs[0] != nameof(EntityCruiser)) { return null; } return new EntityMilitaryCruiser(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]), Color.FromName(strs[4]), Convert.ToBoolean(strs[5]), Convert.ToBoolean(strs[6]), Convert.ToBoolean(strs[7])); } } }