From 996e6b29951e2221b744e912f14b0a0729616f3f Mon Sep 17 00:00:00 2001 From: Malevanets Dmitry Date: Mon, 16 Mar 2026 21:04:32 +0300 Subject: [PATCH 1/5] timeScale = 5 --- Assets/Scripts/EnterPoint.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/EnterPoint.cs b/Assets/Scripts/EnterPoint.cs index 6f474a574..1f0eca643 100644 --- a/Assets/Scripts/EnterPoint.cs +++ b/Assets/Scripts/EnterPoint.cs @@ -10,7 +10,7 @@ public class EnterPoint : MonoBehaviour { [SerializeField] private Settings _settings; [SerializeField] private Canvas _targetCanvas; - private float _timeScale = 1; + private float _timeScale = 5; void Start() { From 6dd15c36eeb1f5a70bf76e034b13cd76a57cbda1 Mon Sep 17 00:00:00 2001 From: Malevanets Dmitry Date: Mon, 16 Mar 2026 21:06:06 +0300 Subject: [PATCH 2/5] localHeight --- .../Model/Runtime/Projectiles/ArchToTileProjectile.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs b/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs index c37ed0218..b984d737d 100644 --- a/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs +++ b/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs @@ -25,16 +25,10 @@ protected override void UpdateImpl(float deltaTime, float time) float localHeight = 0f; float totalDistance = _totalDistance; + float maxHeight = totalDistance * 0.6f; - /////////////////////////////////////// - // Insert you code here - /////////////////////////////////////// + localHeight = maxHeight * (-(t * 2 - 1) * (t * 2 - 1) + 1); - - /////////////////////////////////////// - // End of the code to insert - /////////////////////////////////////// - Height = localHeight; if (time > StartTime + _timeToTarget) Hit(_target); From ef8a8835d72cd249fb8fd25affc29e33e1f1df51 Mon Sep 17 00:00:00 2001 From: Malevanets Dmitry Date: Tue, 17 Mar 2026 21:32:03 +0300 Subject: [PATCH 3/5] projectileCount --- Assets/Scripts/EnterPoint.cs | 2 +- .../UnitBrains/Player/SecondUnitBrain.cs | 21 +++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Assets/Scripts/EnterPoint.cs b/Assets/Scripts/EnterPoint.cs index 1f0eca643..6d453d5ca 100644 --- a/Assets/Scripts/EnterPoint.cs +++ b/Assets/Scripts/EnterPoint.cs @@ -10,7 +10,7 @@ public class EnterPoint : MonoBehaviour { [SerializeField] private Settings _settings; [SerializeField] private Canvas _targetCanvas; - private float _timeScale = 5; + private float _timeScale = 1f; void Start() { diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index c2c80e989..ede2166a5 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -16,12 +16,21 @@ public class SecondUnitBrain : DefaultPlayerUnitBrain protected override void GenerateProjectiles(Vector2Int forTarget, List intoList) { float overheatTemperature = OverheatTemperature; - /////////////////////////////////////// - // Homework 1.3 (1st block, 3rd module) - /////////////////////////////////////// - var projectile = CreateProjectile(forTarget); - AddProjectileToList(projectile, intoList); - /////////////////////////////////////// + + if (GetTemperature() >= overheatTemperature) //Checking for overheating + { + return; + } + + int projectileCount = (int)( _temperature + 1); //Calculating the number of shells + + for (int i = 0; i < projectileCount; i++) //Creating projectiles in a cycle + { + var projectile = CreateProjectile(forTarget); + AddProjectileToList(projectile, intoList); + } + + IncreaseTemperature(); //Temperature rise } public override Vector2Int GetNextStep() From 9b2f7e8641f50738a50f0bcc1ac7a0ce700d2bc2 Mon Sep 17 00:00:00 2001 From: Malevanets Dmitry Date: Sat, 2 May 2026 20:29:03 +0300 Subject: [PATCH 4/5] HW2 --- .../UnitBrains/Player/SecondUnitBrain.cs | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index ede2166a5..3be52d331 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -40,16 +40,29 @@ public override Vector2Int GetNextStep() protected override List SelectTargets() { - /////////////////////////////////////// - // Homework 1.4 (1st block, 4rd module) - /////////////////////////////////////// + List result = GetReachableTargets(); - while (result.Count > 1) + + float lowestDistance = float.MaxValue; + Vector2Int nearestTarget = new Vector2Int(); + + foreach (var target in result) + { + if (DistanceToOwnBase(target) < lowestDistance) + { + lowestDistance = DistanceToOwnBase(target); + nearestTarget = target; + } + } + + + if (result.Count > 0) { - result.RemoveAt(result.Count - 1); + result.Clear(); + result.Add(nearestTarget); } + return result; - /////////////////////////////////////// } public override void Update(float deltaTime, float time) From 9349c627c6402406755f048bb1f4f2cbfeccfa98 Mon Sep 17 00:00:00 2001 From: Malevanets Dmitry Date: Thu, 28 May 2026 23:44:04 +0300 Subject: [PATCH 5/5] MostDangerousTarget --- .../UnitBrains/Player/SecondUnitBrain.cs | 54 +++++++++++-------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index 3be52d331..2fd6da507 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -1,6 +1,10 @@ -using System.Collections.Generic; +using Model; using Model.Runtime.Projectiles; +using System.Collections.Generic; +using System.Linq; using UnityEngine; +using UnityEngine.UIElements; +using Utilities; namespace UnitBrains.Player { @@ -12,7 +16,8 @@ public class SecondUnitBrain : DefaultPlayerUnitBrain private float _temperature = 0f; private float _cooldownTime = 0f; private bool _overheated; - + private List UnreachableTargets = new List(); + protected override void GenerateProjectiles(Vector2Int forTarget, List intoList) { float overheatTemperature = OverheatTemperature; @@ -35,42 +40,50 @@ protected override void GenerateProjectiles(Vector2Int forTarget, List SelectTargets() { - - List result = GetReachableTargets(); - - float lowestDistance = float.MaxValue; - Vector2Int nearestTarget = new Vector2Int(); - - foreach (var target in result) + UnreachableTargets.Clear(); + List result = GetAllTargets().ToList(); + if (result.Count > 1) { - if (DistanceToOwnBase(target) < lowestDistance) + float min = float.MaxValue; + Vector2Int minResult = new Vector2Int(); + foreach (Vector2Int res in result) { - lowestDistance = DistanceToOwnBase(target); - nearestTarget = target; + if (DistanceToOwnBase(res) < min) + { + min = DistanceToOwnBase(res); + minResult = res; + } + } + result.Clear(); + UnreachableTargets.Add(minResult); + if (GetReachableTargets().Contains(minResult)) + result.Add(minResult); } - - - if (result.Count > 0) + else { result.Clear(); - result.Add(nearestTarget); + var enemyBase = runtimeModel.RoMap.Bases[IsPlayerUnitBrain ? RuntimeModel.BotPlayerId : RuntimeModel.PlayerId]; + UnreachableTargets.Add(enemyBase); + result.Add(enemyBase); } - return result; } public override void Update(float deltaTime, float time) { if (_overheated) - { + { _cooldownTime += Time.deltaTime; - float t = _cooldownTime / (OverheatCooldown/10); + float t = _cooldownTime / (OverheatCooldown / 10); _temperature = Mathf.Lerp(OverheatTemperature, 0, t); if (t >= 1) { @@ -79,7 +92,6 @@ public override void Update(float deltaTime, float time) } } } - private int GetTemperature() { if(_overheated) return (int) OverheatTemperature;