Borschevskaya A.A. Lab Work 2 #2

Merged
eegov merged 9 commits from lab2 into lab1 2022-10-14 09:32:11 +04:00
2 changed files with 95 additions and 0 deletions
Showing only changes of commit 526e4cf11e - Show all commits

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArmoredCar
{
internal class DrawningTank : DrawningArmoredCar
{
/// <summary>
/// Инициализация свойств
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес бронированной машины</param>
/// <param name="bodyColor">Цвет кузова</param>
/// <param name="dopColor">Дополнительный цвет</param>
/// <param name="towerWeapon">Признак наличия башни с орудием</param>
/// <param name="aMachineGun">Признак наличия зенитного пулемета</param>
public DrawningTank(int speed, float weight, Color bodyColor, Color
dopColor, bool towerWeapon, bool aMachineGun) :
base(speed, weight, bodyColor, 110, 60)
{
ArmoredCar = new EntityTank(speed, weight, bodyColor, dopColor, towerWeapon, aMachineGun);
}
public override void DrawTransport(Graphics g)
{
if (ArmoredCar is not EntityTank Tank)
{
return;
}
Brush dopBrush = new SolidBrush(Tank.DopColor);
if (Tank.AMachineGun)
{
g.FillRectangle(dopBrush, _startPosX + 40, _startPosY, 5, 20);
g.FillRectangle(dopBrush, _startPosX + 40, _startPosY, 40, 5);
g.FillEllipse(dopBrush, _startPosX + 27, _startPosY + 7, 30, 10);
}
if (Tank.TowerWeapon)
{
g.FillRectangle(dopBrush, _startPosX + 60, _startPosY + 15, 7, 10);
g.FillRectangle(dopBrush, _startPosX + 60, _startPosY + 17, 20, 5);
}
_startPosY += 10;
base.DrawTransport(g);
_startPosY -= 10;
}
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArmoredCar
{
internal class EntityTank : EntityArmoredCar
{
/// <summary>
/// Дополнительный цвет
/// </summary>
public Color DopColor { get; private set; }
/// <summary>
/// Признак наличия башни с орудием
/// </summary>
public bool TowerWeapon { get; private set; }
/// <summary>
/// Признак наличия зенитного пулемета
/// </summary>
public bool AMachineGun { get; private set; }
/// <summary>
/// Инициализация свойств
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес бронированной машины</param>
/// <param name="bodyColor">Цвет кузова</param>
/// <param name="dopColor">Дополнительный цвет</param>
/// <param name="towerWeapon">Признак наличия башни с орудием</param>
/// <param name="aMachineGun">Признак наличия зенитного пулемета</param>
public EntityTank(int speed, float weight, Color bodyColor, Color
dopColor, bool towerWeapon, bool aMachineGun) :
base(speed, weight, bodyColor)
{
DopColor = dopColor;
TowerWeapon = towerWeapon;
AMachineGun = aMachineGun;
}
}
}