using System; using System.Collections.Generic; using System.ComponentModel.Design; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProjectElectricLocomotive.Entities { public class EntityElectricLocomotive : EntityLocomotive { public Color AdditionalColor { get; private set; } /// /// Признак (опция) "рогов" /// public bool Pantograph { get; private set; } /// /// Признак (опция) наличия отсека под батареи /// public bool BatteryStorage { get; private set; } /// /// Шаг перемещения Локомотива /// public double Step => Speed * 100 / Weight; /// /// Инициализация полей объекта-класса ЭлектроЛокомотива /// /// Дополнительный цвет /// Признак "рогов" /// Признак наличия отсека под батареи /// ------------------------------------------------------------------------------ /// Переписать!!!!!!!!! /// САМИМ ТО ЧТО СНИЗУ!!!!!!!!!!!!!!!!!! public EntityElectricLocomotive(int speed, double weight, Color bodyColor, Color additionalColor, bool pantograph , bool batteryStorage) : base(speed, weight, bodyColor) { AdditionalColor = additionalColor; Pantograph = pantograph; BatteryStorage = batteryStorage; } /// /// Получение строк со значениями свойств объекта класса-сущности /// /// public override string[] GetStringRepresentation() { return new string[] { nameof(EntityElectricLocomotive), Speed.ToString(), Weight.ToString(), BodyColor.Name, AdditionalColor.Name, Pantograph.ToString(), BatteryStorage.ToString() }; } /// /// Создание объекта из массива строк /// /// /// public static EntityElectricLocomotive? CreateEntityElectricLocomotive(string[] strs) { if (strs.Length != 7 || strs[0] != nameof(EntityElectricLocomotive)) { return null; } return new EntityElectricLocomotive(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 void setAdditionalColor(Color additionalColor) { AdditionalColor = additionalColor; } } }