diff --git a/ArmoredCar/ArmoredCar/DrawningTank.cs b/ArmoredCar/ArmoredCar/DrawningTank.cs new file mode 100644 index 0000000..b874d52 --- /dev/null +++ b/ArmoredCar/ArmoredCar/DrawningTank.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ArmoredCar +{ + internal class DrawningTank : DrawningArmoredCar + { + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес бронированной машины + /// Цвет кузова + /// Дополнительный цвет + /// Признак наличия башни с орудием + /// Признак наличия зенитного пулемета + public DrawningTank(int speed, float weight, Color bodyColor, Color + dopColor, bool towerWeapon, bool aMachineGun) : + base(speed, weight, bodyColor, 110, 60) + { + ArmoredCar = new EntityTank(speed, weight, bodyColor, dopColor, towerWeapon, aMachineGun); + } + public override void DrawTransport(Graphics g) + { + if (ArmoredCar is not EntityTank Tank) + { + return; + } + Brush dopBrush = new SolidBrush(Tank.DopColor); + + if (Tank.AMachineGun) + { + g.FillRectangle(dopBrush, _startPosX + 40, _startPosY, 5, 20); + g.FillRectangle(dopBrush, _startPosX + 40, _startPosY, 40, 5); + g.FillEllipse(dopBrush, _startPosX + 27, _startPosY + 7, 30, 10); + } + if (Tank.TowerWeapon) + { + g.FillRectangle(dopBrush, _startPosX + 60, _startPosY + 15, 7, 10); + g.FillRectangle(dopBrush, _startPosX + 60, _startPosY + 17, 20, 5); + } + _startPosY += 10; + base.DrawTransport(g); + _startPosY -= 10; + } + + } +} diff --git a/ArmoredCar/ArmoredCar/EntityTank.cs b/ArmoredCar/ArmoredCar/EntityTank.cs new file mode 100644 index 0000000..e540189 --- /dev/null +++ b/ArmoredCar/ArmoredCar/EntityTank.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ArmoredCar +{ + internal class EntityTank : EntityArmoredCar + { + /// + /// Дополнительный цвет + /// + public Color DopColor { get; private set; } + /// + /// Признак наличия башни с орудием + /// + public bool TowerWeapon { get; private set; } + /// + /// Признак наличия зенитного пулемета + /// + public bool AMachineGun { get; private set; } + + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес бронированной машины + /// Цвет кузова + /// Дополнительный цвет + /// Признак наличия башни с орудием + /// Признак наличия зенитного пулемета + public EntityTank(int speed, float weight, Color bodyColor, Color + dopColor, bool towerWeapon, bool aMachineGun) : + base(speed, weight, bodyColor) + { + DopColor = dopColor; + TowerWeapon = towerWeapon; + AMachineGun = aMachineGun; + } + } +}