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