using ProjectStormtrooper.Entities; namespace ProjectStormtrooper.Drawnings; /// /// Класс отвечающий за прорисовку и перемещение объекта-сущности /// public class DrawingStormtrooper: DrawningStormtrooperBase { /// /// Конструктор /// /// /// /// /// /// /// public DrawingStormtrooper(int speed,double weight, Color bodyColor,Color additionalColor, bool rockets, bool bombs):base(140,140) { EntityStormtrooperBase = new EntityStormtrooper(speed, weight, bodyColor, additionalColor, rockets, bombs); } public DrawingStormtrooper(EntityStormtrooper entityStormtrooperBase) : base(140, 135) { EntityStormtrooperBase = new EntityStormtrooper(entityStormtrooperBase.Speed, entityStormtrooperBase.Weight, entityStormtrooperBase.BodyColor, entityStormtrooperBase.AdditionalColor, entityStormtrooperBase.Bombs, entityStormtrooperBase.Rockets); } /// /// Прорисовка объекта /// /// public override void DrawTransport(Graphics g) { if (EntityStormtrooperBase == null || EntityStormtrooperBase is not EntityStormtrooper stormtrooper || !_startPosX.HasValue || !_startPosY.HasValue) { return; } Pen pen = new(Color.Black); Brush additionalBrush = new SolidBrush(stormtrooper.AdditionalColor); base.DrawTransport(g); //ракеты штурмовика if (stormtrooper.Rockets) { g.FillRectangle(additionalBrush, _startPosX.Value + 45, _startPosY.Value + 20, 15, 5); g.FillRectangle(additionalBrush, _startPosX.Value + 45, _startPosY.Value + 110, 15, 5); g.DrawRectangle(pen, _startPosX.Value + 45, _startPosY.Value + 20, 15, 5); g.DrawRectangle(pen, _startPosX.Value + 45, _startPosY.Value + 110, 15, 5); } //бомбы штурмовика if (stormtrooper.Bombs) { g.FillRectangle(additionalBrush, _startPosX.Value + 50, _startPosY.Value + 40, 10, 10); g.FillRectangle(additionalBrush, _startPosX.Value + 50, _startPosY.Value + 90, 10, 10); g.DrawRectangle(pen, _startPosX.Value + 50, _startPosY.Value + 40, 10, 10); g.DrawRectangle(pen, _startPosX.Value + 50, _startPosY.Value + 90, 10, 10); } } }