using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Catamaran { public class DrawningCatamaranPro : DrawningCatamaran { public DrawningCatamaranPro(int speed, double weight, Color bodyColor,Color otherColor, Color additionalColor, bool bodyKit, bool motor, bool sheet, int width, int height, bool seats) : base(speed, weight, bodyColor,additionalColor, width, height, seats) { if (EntityCatamaran != null) { EntityCatamaran = new EntityCatamaranPro(speed, weight, bodyColor, additionalColor,otherColor,bodyKit, motor, sheet, seats); } } public override void DrawTransport(Graphics g) { if (EntityCatamaran is not EntityCatamaranPro CatPro) { return; } base.DrawTransport(g); Pen pen = new(Color.Black); Brush additionalBrush = new SolidBrush(CatPro.AdditionalColor); Brush floatsBrush = new SolidBrush(CatPro.OtherColor); if (CatPro.Motor) { g.FillRectangle(additionalBrush, _startPosX, _startPosY+25, 10, 30); g.DrawRectangle(pen, _startPosX, _startPosY+25, 10, 30); g.DrawRectangle(pen, _startPosX+5, _startPosY+30, 5, 20); } if(CatPro.BodyKit) { g.FillRectangle(floatsBrush, _startPosX, _startPosY, _catamaranWidth - 20, 10); g.DrawRectangle(pen, _startPosX, _startPosY, _catamaranWidth - 20, 10); g.FillRectangle(floatsBrush, _startPosX, _startPosY + 70, _catamaranWidth - 20, 10); g.DrawRectangle(pen, _startPosX, _startPosY + 70, _catamaranWidth - 20, 10); Point[] trig1 = { new Point(_startPosX + _catamaranWidth -20, _startPosY), new Point(_startPosX + _catamaranWidth, _startPosY + 5), new Point(_startPosX+_catamaranWidth - 20, _startPosY+10) }; g.DrawPolygon(pen, trig1); Point[] trig2 = { new Point(_startPosX + _catamaranWidth - 20, _startPosY + 70), new Point(_startPosX + _catamaranWidth, _startPosY + 75), new Point(_startPosX + _catamaranWidth - 20, _startPosY + 80) }; g.DrawPolygon(pen, trig2); } if (CatPro.Sheet) { for (int i = 10; i< 100; i+=10) { Point point1 = new Point(_startPosX+i, _startPosY); Point point2 = new Point(_startPosX+i, _startPosY+10); g.DrawLine(pen, point1, point2); } for (int i = 10; i< 100; i+=10) { Point point3 = new Point(_startPosX+i, _startPosY+70); Point point4 = new Point(_startPosX+i, _startPosY+_catamaranHeight); g.DrawLine(pen, point3, point4); } } Point[] points = { new Point(_startPosX + _catamaranWidth - 35, _startPosY+20), new Point(_startPosX + _catamaranWidth - 10, _startPosY + 40), new Point(_startPosX + _catamaranWidth - 35, _startPosY + 60) }; g.FillPolygon(additionalBrush, points); g.DrawPolygon(pen, points); } } }