2022-10-30 10:53:52 +04:00

58 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArmoredVehicle
{
internal class DrawingTank : DrawingArmoredVehicle
{
public DrawingTank(int speed, float weight, Color bodyColor, Color dopColor, bool machineGun, bool tower)
: base(speed, weight, bodyColor, 200, 60)
{
ArmoredVehicle = new TankEnity(speed, weight, bodyColor, dopColor, machineGun, tower);
}
public DrawingTank Copy(int? speed = null, float? weight = null, Color? bodyColor = null,
Color? dopColor = null, bool? machineGun = null, bool? tower = null)
{
var e = (TankEnity)ArmoredVehicle;
return new DrawingTank(speed ?? e.Speed, weight ?? e.Weight, bodyColor ?? e.BodyColor, dopColor ?? e.DopColor,
machineGun ?? e.MachineGun, tower ?? e.Tower);
}
public override void DrawTransport(Graphics g)
{
if (ArmoredVehicle is not TankEnity machine)
{
return;
}
Brush br = new SolidBrush(machine?.DopColor ?? Color.Black);
Pen p = new Pen(machine?.DopColor ?? Color.Black, 5);
_startPosY += 40;
base.DrawTransport(g);
_startPosY -= 40;
if (machine.Tower)
{
g.FillRectangle(br, _startPosX + 60, _startPosY + 10, 80, 30);
g.DrawLine(p, _startPosX + 90, _startPosY +20, _startPosX + 250, _startPosY + 20);
if (machine.MachineGun)
{
p = new Pen(machine?.DopColor ?? Color.Black, 3);
g.DrawLine(p, _startPosX + 90, _startPosY, _startPosX + 90, _startPosY + 10);
g.DrawLine(p, _startPosX + 85, _startPosY + 5, _startPosX + 120, _startPosY + 5);
}
}
}
}
}