64 lines
2.3 KiB
C#
64 lines
2.3 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace ProjectMachine
|
||
{
|
||
internal class DrawningTank : DrawningMachine
|
||
{
|
||
/// <summary>
|
||
/// Инициализация свойств
|
||
/// </summary>
|
||
/// <param name="speed">Скорость</param>
|
||
/// <param name="weight">Вес автомобиля</param>
|
||
/// <param name="bodyColor">Цвет кузова</param>
|
||
/// <param name="dopColor">Дополнительный цвет</param>
|
||
/// <param name="turret">Признак наличия башни с орудием</param>
|
||
/// <param name="gun">Признак наличия зенитного пулемета</param>
|
||
public DrawningTank(int speed, float weight, Color bodyColor, Color dopColor, bool turret, bool gun) :
|
||
base(speed, weight, bodyColor, 90, 50)
|
||
{
|
||
Machine = new EntityTank(speed, weight, bodyColor, dopColor, turret, gun);
|
||
}
|
||
public override void DrawTransport(Graphics g)
|
||
{
|
||
if (Machine is not EntityTank tank)
|
||
{
|
||
return;
|
||
}
|
||
|
||
Pen pen = new(Color.Black);
|
||
Brush dopBrush = new SolidBrush(tank.DopColor);
|
||
|
||
if (tank.Turret)
|
||
{
|
||
g.FillRectangle(dopBrush, _startPosX + 45, _startPosY, 20, 10);
|
||
g.DrawLine(pen, _startPosX + 65, _startPosY + 2, _startPosX + 85, _startPosY + 2);
|
||
}
|
||
|
||
if (tank.Gun)
|
||
{
|
||
g.FillRectangle(dopBrush, _startPosX + 23, _startPosY + 4, 3, 11);
|
||
g.DrawLine(pen, _startPosX + 23, _startPosY + 8, _startPosX + 5, _startPosY + 8);
|
||
}
|
||
|
||
_startPosX += 10;
|
||
_startPosY += 5;
|
||
base.DrawTransport(g);
|
||
_startPosX -= 10;
|
||
_startPosY -= 5;
|
||
}
|
||
public void SetDopColor(Color color)
|
||
{
|
||
Machine = Machine as EntityTank;
|
||
if (Machine is not null)
|
||
{
|
||
Machine = new EntityTank(Machine.Speed, Machine.Weight, Machine.BodyColor,
|
||
color, (Machine as EntityTank).Turret, (Machine as EntityTank).Gun);
|
||
}
|
||
}
|
||
}
|
||
}
|