using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ProjectAntiAircraftGun.Entities; namespace ProjectAntiAircraftGun.DrawingObjects { /// /// Класс, отвечающий за прорисовку и перемещение объекта-сущности /// public class DrawingAntiAircraftGun : DrawingTank { /// /// Конструктор /// /// Скорость /// Вес /// Основной цвет /// Дополнительный цвет /// Признак наличия радара /// Признак наличия люка /// Признак наличия пушки /// Ширина картинки /// Высота картинки public DrawingAntiAircraftGun(int speed, double weight, Color bodyColor, Color additionalColor, bool radar, bool hatch, bool cannon, int width, int height) : base(speed, weight, bodyColor, additionalColor, width, height, 102, 139) { if (EntityTank != null) { EntityTank = new EntityAntiAircraftGun(speed, weight, bodyColor, additionalColor, radar, hatch, cannon); } } public override void DrawTransport(Graphics g) { if (EntityTank is not EntityAntiAircraftGun antiAircraftGun) { return; } Pen pen = new(Color.Black); pen.Width = 2; base.DrawTransport(g); // радар if (antiAircraftGun.Radar) { Pen penRadar = new(Color.DarkGreen); g.DrawEllipse(penRadar, _startPosX + 52, _startPosY + 46, 21, 12); g.DrawEllipse(penRadar, _startPosX + 55, _startPosY + 48, 14, 8); pen = new(Color.Green); g.DrawLine(penRadar, _startPosX + 61, _startPosY + 52, _startPosX + 70, _startPosY + 48); } // пушка if (antiAircraftGun.Cannon) { g.DrawLine(pen, _startPosX + 54, _startPosY + 33, _startPosX + 113, _startPosY + 2); g.DrawLine(pen, _startPosX + 57, _startPosY + 35, _startPosX + 122, _startPosY + 2); } // люк if (antiAircraftGun.Hatch) { pen = new(antiAircraftGun.AdditionalColor); g.DrawRectangle(pen, _startPosX + 88, _startPosY + 64, 17, 6); g.DrawLine(pen, _startPosX + 88, _startPosY + 67, _startPosX + 105, _startPosY + 67); g.DrawLine(pen, _startPosX + 94, _startPosY + 64, _startPosX + 94, _startPosY + 70); } } } }