using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sailboat
{
///
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
///
class DrawingSailboat : DrawingBoat
{
///
/// Инициализация свойств
///
/// Скорость
/// Вес автомобиля
/// Цвет кузова
/// Признак наличия паруса
/// Признак наличия усиленного корпуса
public DrawingSailboat(int speed, float weight, Color bodyColor, Color edgeColor, bool sail, bool extendedBody) :
base(speed, weight, bodyColor, 80, 135)
{
Boat = new Sailboat(speed, weight, bodyColor, edgeColor, sail, extendedBody);
}
public override void DrawTransport(Graphics g)
{
if (Boat is not Sailboat sailboat)
{
return;
}
Pen pen = new(Color.Black);
Brush brush = new SolidBrush(sailboat.EdgeColor);
_startPosY += 40;
_startPosX += 20;
base.DrawTransport(g);
_startPosY -= 40;
_startPosX -= 20;
if (sailboat.Sail)
{
g.DrawLine(pen, _startPosX + 40, _startPosY, _startPosX + 60, _startPosY + 60);
g.DrawLine(pen, _startPosX + 40, _startPosY, _startPosX + 70, _startPosY + 30);
g.DrawLine(pen, _startPosX + 70, _startPosY + 30, _startPosX + 60, _startPosY + 55);
}
if (sailboat.ExtendedBody)
{
//корма
g.FillRectangle(brush, _startPosX + 15, _startPosY + 38, 70, 5);
g.FillRectangle(brush, _startPosX + 15, _startPosY + 78, 70, 5);
g.FillRectangle(brush, _startPosX + 15, _startPosY + 38, 5, 40);
//усиленный нос
g.FillRectangle(brush, _startPosX + 133, _startPosY + 55, 10, 10);
}
}
}
}