PIBD-14_Lavrova_K.I._Simple/solution/lab1/Entities/EntityFighter.cs

77 lines
2.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using static System.Reflection.Metadata.BlobBuilder;
using System.Net.Sockets;
namespace lab1.Entities;
/// <summary>
/// Класс-сущность "Истребитель"
/// </summary>
public class EntityFighter : EntityTrackedVehicle
{
/// <summary>
/// Дополнительный цвет (для опциональных элементов)
/// </summary>
public Color AdditionalColor { get; private set; }
/// <summary>
/// Признак (опция) наличия ковша
/// </summary>
public bool Kovsh { get; private set; }
public void setBodyTankColor(Color color)
{
AdditionalColor = color;
}
/// <summary>
/// Признак (опция) наличия опор для фиксации
/// </summary>
public bool Otval { get; private set; }
/// <summary>
/// Инициализация полей объекта-класса истребителя
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">>Вес истребителя</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="rockets">Признак наличия ракет</param>
/// <param name="extraWings">Признак наличия доп. крыльев</param>
public EntityFighter(int speed, double weight, Color bodyColor, Color additionalColor, bool rockets, bool extraWings) : base(speed, weight, bodyColor)
{
AdditionalColor = additionalColor;
Kovsh = rockets;
Otval = extraWings;
}
/// <summary>
/// Получение строк со значениями свойств объекта класса-сущности
/// </summary>
/// <returns></returns>
public override string[] GetStringRepresentation()
{
return new[] { nameof(EntityFighter), Speed.ToString(), Weight.ToString(), BodyColor.Name, AdditionalColor.Name, Kovsh.ToString(), Otval.ToString() };
}
/// <summary>
/// Создание объекта из массива строк
/// </summary>
/// <param name="strs"></param>
/// <returns></returns>
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]));
}
}