using AntiAircraftGun.CollectionGenereticObject; using AntiAircraftGun.Drawnings; namespace AntiAircraftGun.CollectionGenereticObjects; /// <summary> /// Реализация абстрактной компании - база бронемашин /// </summary> public class CarBase : AbstractCompany { /// <summary> /// Конструктор /// </summary> /// <param name="picWidth"></param> /// <param name="picHeight"></param> /// <param name="collection"></param> public CarBase(int picWidth, int picHeight, ICollectionGenericObjects<DrawningArmoredCar> collection) : base(picWidth, picHeight, collection) { } /// <summary> /// Отрисовка базы /// </summary> /// <param name="g">Графика</param> protected override void DrawBackgound(Graphics g) { Pen pen = new Pen(Color.Black, 4f); for (int i = 0; i < _pictureHeight / _placeSizeHeight / 2; i++) { g.DrawLine(pen, 0, i * _placeSizeHeight * 2, _pictureWidth / _placeSizeWidth * _placeSizeWidth, i * _placeSizeHeight * 2); for (int j = 0; j < _pictureWidth / _placeSizeWidth + 1; ++j) { g.DrawLine(pen, j * _placeSizeWidth, i * _placeSizeHeight * 2, j * _placeSizeWidth, i * _placeSizeHeight * 2 + _placeSizeHeight); } } } /// <summary> /// Установка объекта в базу /// </summary> protected override void SetObjectsPosition() { int nowWidth = 0; int nowHeight = 0; for (int i = 0; i < (_collection?.Count ?? 0); i++) { if (nowHeight > _pictureHeight / _placeSizeHeight) { return; } if (_collection?.Get(i) != null) { _collection?.Get(i)?.SetPictureSize(_pictureWidth , _pictureHeight); _collection?.Get(i)?.SetPosition(_placeSizeWidth * nowWidth + 10, nowHeight * _placeSizeHeight * 2 ); } if (nowWidth < _pictureWidth / _placeSizeWidth - 1) nowWidth++; else { nowWidth = 0; nowHeight++; } } } }