From 02172ef8432fbecd9d815058d11695688b5eaa35 Mon Sep 17 00:00:00 2001 From: daria Date: Fri, 1 May 2026 18:26:14 +0300 Subject: [PATCH 1/6] Update timeScale --- 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 eb1b4a9c45aecb20e40ce5fedf869d5e3ef4a6f9 Mon Sep 17 00:00:00 2001 From: daria Date: Mon, 4 May 2026 22:00:27 +0300 Subject: [PATCH 2/6] Update localHeight --- .../Model/Runtime/Projectiles/ArchToTileProjectile.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs b/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs index c37ed0218..bdfc9c2a5 100644 --- a/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs +++ b/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs @@ -8,7 +8,7 @@ public class ArchToTileProjectile : BaseProjectile private readonly Vector2Int _target; private readonly float _timeToTarget; private readonly float _totalDistance; - + public ArchToTileProjectile(Unit unit, Vector2Int target, int damage, Vector2Int startPoint) : base(damage, startPoint) { _target = target; @@ -20,9 +20,9 @@ protected override void UpdateImpl(float deltaTime, float time) { float timeSinceStart = time - StartTime; float t = timeSinceStart / _timeToTarget; - + Pos = Vector2.Lerp(StartPoint, _target, t); - + float localHeight = 0f; float totalDistance = _totalDistance; @@ -30,11 +30,13 @@ protected override void UpdateImpl(float deltaTime, float time) // Insert you code here /////////////////////////////////////// + float maxHeight = totalDistance * 0.6f; + localHeight = maxHeight * (-(t * 2 - 1) * (t * 2 - 1) + 1); /////////////////////////////////////// // End of the code to insert /////////////////////////////////////// - + Height = localHeight; if (time > StartTime + _timeToTarget) Hit(_target); From ad0689e1d4f160c46f346cc599071cbe0bf88a6c Mon Sep 17 00:00:00 2001 From: daria Date: Thu, 7 May 2026 22:28:32 +0300 Subject: [PATCH 3/6] Update GenerateProjectiles for Second Unit --- .../UnitBrains/Player/SecondUnitBrain.cs | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index c2c80e989..2d2b850d7 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -18,9 +18,23 @@ protected override void GenerateProjectiles(Vector2Int forTarget, List= overheatTemperature) + { + return; + } + + int projectileAmount = temperature + 1; + Debug.Log("projectile:" + projectileAmount + ", temp:" + temperature); + for (int i = 0; i < projectileAmount; i++) + { + var projectile = CreateProjectile(forTarget); + AddProjectileToList(projectile, intoList); + } + + IncreaseTemperature(); /////////////////////////////////////// } From 5602b81750fea18d5c0591065d160a90e9a4a3f3 Mon Sep 17 00:00:00 2001 From: daria Date: Thu, 7 May 2026 22:39:00 +0300 Subject: [PATCH 4/6] Delete log --- Assets/Scripts/EnterPoint.cs | 2 +- Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Assets/Scripts/EnterPoint.cs b/Assets/Scripts/EnterPoint.cs index 1f0eca643..6f474a574 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 = 1; void Start() { diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index 2d2b850d7..af72ab9c6 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -27,7 +27,6 @@ protected override void GenerateProjectiles(Vector2Int forTarget, List Date: Sat, 9 May 2026 19:54:48 +0300 Subject: [PATCH 5/6] Update SelectTargets for Second Unit --- .../UnitBrains/Player/SecondUnitBrain.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index c2c80e989..5bb2cd24f 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -35,9 +35,24 @@ protected override List SelectTargets() // Homework 1.4 (1st block, 4rd module) /////////////////////////////////////// List result = GetReachableTargets(); - while (result.Count > 1) + if (result.Count > 0) { - result.RemoveAt(result.Count - 1); + + float minDistance = float.MaxValue; + Vector2Int finalTarget = result[0]; + + foreach (var target in result) + { + float targetDist = DistanceToOwnBase(target); + if (targetDist < minDistance) + { + minDistance = targetDist; + finalTarget = target; + } + } + + result.Clear(); + result.Add(finalTarget); } return result; /////////////////////////////////////// From 19def5e8b2fe2d8d09ffd8a2bcadf67b2756233c Mon Sep 17 00:00:00 2001 From: daria Date: Sat, 27 Jun 2026 18:09:05 +0300 Subject: [PATCH 6/6] Update SelectTargets and GetNextStep --- .../UnitBrains/Player/SecondUnitBrain.cs | 58 ++++++++++++------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index 8ec3410ad..f6acff655 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -1,6 +1,9 @@ -using System.Collections.Generic; +using Model; using Model.Runtime.Projectiles; +using System.Collections.Generic; +using System.Linq; using UnityEngine; +using Utilities; namespace UnitBrains.Player { @@ -12,7 +15,7 @@ public class SecondUnitBrain : DefaultPlayerUnitBrain private float _temperature = 0f; private float _cooldownTime = 0f; private bool _overheated; - + protected override void GenerateProjectiles(Vector2Int forTarget, List intoList) { float overheatTemperature = OverheatTemperature; @@ -39,7 +42,17 @@ protected override void GenerateProjectiles(Vector2Int forTarget, List targets = SelectTargets(); + if (targets.Count > 0) + { + Vector2Int firstTarget = targets[0]; + if (IsTargetInRange(firstTarget)) + { + return unit.Pos; + } + return unit.Pos.CalcNextStepTowards(firstTarget); + } + return unit.Pos; } protected override List SelectTargets() @@ -47,26 +60,31 @@ protected override List SelectTargets() /////////////////////////////////////// // Homework 1.4 (1st block, 4rd module) /////////////////////////////////////// - List result = GetReachableTargets(); - if (result.Count > 0) + List allTargets = GetAllTargets().ToList(); + List result = new List(); + + if (allTargets.Count <= 0) { + Vector2Int enemyBase = runtimeModel.RoMap.Bases[RuntimeModel.BotPlayerId]; + result.Add(enemyBase); + return result; + } - float minDistance = float.MaxValue; - Vector2Int finalTarget = result[0]; + float minDistance = float.MaxValue; + Vector2Int finalTarget = allTargets[0]; - foreach (var target in result) + foreach (var target in allTargets) + { + float targetDist = DistanceToOwnBase(target); + if (targetDist < minDistance) { - float targetDist = DistanceToOwnBase(target); - if (targetDist < minDistance) - { - minDistance = targetDist; - finalTarget = target; - } + minDistance = targetDist; + finalTarget = target; } - - result.Clear(); - result.Add(finalTarget); } + + result.Add(finalTarget); + return result; /////////////////////////////////////// } @@ -74,9 +92,9 @@ protected override List SelectTargets() 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) { @@ -88,7 +106,7 @@ public override void Update(float deltaTime, float time) private int GetTemperature() { - if(_overheated) return (int) OverheatTemperature; + if (_overheated) return (int)OverheatTemperature; else return (int)_temperature; }