73 lines
3.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Bulldozer.Entities;
namespace Bulldozer.DrawingObjects
{
public class DrawingBulldozerUpgraded : DrawingBulldozer
{
/// <summary>
/// Конструктор
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="blade">Признак наличия рыхлителя</param>
/// <param name="ripper">Признак наличия отвала</param>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
public DrawingBulldozerUpgraded(int speed, double weight, Color bodyColor, Color additionalColor, Color dopColor, bool blade, bool ripper, int width, int height) :
base(speed, weight, bodyColor, additionalColor, width, height)
{
if (EntityBulldozer != null)
{
EntityBulldozer = new EntityBulldozerUpgraded(speed, weight, bodyColor, additionalColor, dopColor, blade, ripper);
}
}
public override void DrawTransport(Graphics g)
{
if (EntityBulldozer is not EntityBulldozerUpgraded upgradedBulldozer)
{
return;
}
Brush dopBrush = new SolidBrush(upgradedBulldozer.DopColor);
Pen dopPen = new Pen(upgradedBulldozer.DopColor);
/// <summary>
/// Отрисовка отвала бульдозера
/// </summary>
base.DrawTransport(g);
if (upgradedBulldozer.Blade)
{
Point point1 = new Point(_startPosX + 8, _startPosY + 29);
Point point2 = new Point(_startPosX + 8, _startPosY + 50);
Point point3 = new Point(_startPosX, _startPosY + 50);
Point[] triangle = { point1, point2, point3 };
g.FillRectangle(dopBrush, _startPosX + 8, _startPosY + 29, 8, 8); // заливка основания отвала
g.FillPolygon(dopBrush, triangle); // заливка отвала
g.DrawRectangle(dopPen, _startPosX + 8, _startPosY + 29, 8, 8); // обводка основания отвала
g.DrawPolygon(dopPen, triangle); // обводка отвала
}
/// <summary>
/// Отрисовка рыхлителя бульдозера
/// </summary>
if (upgradedBulldozer.Ripper)
{
Point ripperPoint1 = new Point(_startPosX + 140, _startPosY + 37);
Point ripperPoint2 = new Point(_startPosX + 151, _startPosY + 37);
Point ripperPoint3 = new Point(_startPosX + 140, _startPosY + 60);
Point[] ripper = { ripperPoint1, ripperPoint2, ripperPoint3 };
g.FillRectangle(dopBrush, _startPosX + 136, _startPosY + 29, 15, 8); // заливка основания рыхлителя
g.FillPolygon(dopBrush, ripper); // заливка отвала
g.DrawRectangle(dopPen, _startPosX + 136, _startPosY + 29, 15, 8); // обводка основания рыхлителя
g.DrawPolygon(dopPen, ripper);
}
}
}
}