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;
}
}
}