From f26c911e2576083b75f526c7af64476733bd7af8 Mon Sep 17 00:00:00 2001 From: KonSyi Date: Thu, 14 May 2026 22:11:53 +0300 Subject: [PATCH 1/2] =?UTF-8?q?HW=20Unit=20Shooting=20Mechanics=20/=20?= =?UTF-8?q?=D0=A2=D0=B8=D0=BC=D0=BE=D1=84=D0=B5=D0=B9=20=D0=98=D1=88=D0=B5?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/UnitBrains/Player/SecondUnitBrain.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index c2c80e989..5356f21b3 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -19,8 +19,20 @@ protected override void GenerateProjectiles(Vector2Int forTarget, List= overheatTemperature) + { + return; + } + + int shotsCount = GetTemperature() + 1; + + for (int i = 0; i < shotsCount; i++) + { + var projectile = CreateProjectile(forTarget); + AddProjectileToList(projectile, intoList); + } + + IncreaseTemperature(); /////////////////////////////////////// } From bd090bcccddc5421224fdaad7746b0607c392360 Mon Sep 17 00:00:00 2001 From: KonSyi Date: Thu, 14 May 2026 22:22:55 +0300 Subject: [PATCH 2/2] =?UTF-8?q?HW=20Select=20Closest=20Targets=20/=20?= =?UTF-8?q?=D0=A2=D0=B8=D0=BC=D0=BE=D1=84=D0=B5=D0=B9=20=D0=98=D1=88=D0=B5?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UnitBrains/Player/SecondUnitBrain.cs | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index 5356f21b3..94823d184 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -47,10 +47,29 @@ protected override List SelectTargets() // Homework 1.4 (1st block, 4rd module) /////////////////////////////////////// List result = GetReachableTargets(); - while (result.Count > 1) + float minDistance = float.MaxValue; + Vector2Int nearestTarget = Vector2Int.zero; + bool targetFound = false; + + foreach (Vector2Int target in result) { - result.RemoveAt(result.Count - 1); + float distance = DistanceToOwnBase(target); + + if (distance < minDistance) + { + minDistance = distance; + nearestTarget = target; + targetFound = true; + } } + + result.Clear(); + + if (targetFound) + { + result.Add(nearestTarget); + } + return result; /////////////////////////////////////// }