diff --git a/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs b/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs index c37ed0218..84e4d2d21 100644 --- a/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs +++ b/Assets/Scripts/Model/Runtime/Projectiles/ArchToTileProjectile.cs @@ -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) + 1); /////////////////////////////////////// // End of the code to insert /////////////////////////////////////// - + Height = localHeight; if (time > StartTime + _timeToTarget) Hit(_target); diff --git a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs index c2c80e989..e72d70ade 100644 --- a/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs +++ b/Assets/Scripts/UnitBrains/Player/SecondUnitBrain.cs @@ -16,12 +16,20 @@ 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); - /////////////////////////////////////// + + float currentTemperature = GetTemperature(); + if (currentTemperature >= overheatTemperature) { return; } + + for (float i = -1; i < currentTemperature; i++) + { + /////////////////////////////////////// + // Homework 1.3 (1st block, 3rd module) + /////////////////////////////////////// + var projectile = CreateProjectile(forTarget); + AddProjectileToList(projectile, intoList); + /////////////////////////////////////// + } + IncreaseTemperature(); } public override Vector2Int GetNextStep() @@ -35,10 +43,24 @@ protected override List SelectTargets() // Homework 1.4 (1st block, 4rd module) /////////////////////////////////////// List result = GetReachableTargets(); - while (result.Count > 1) + if (result.Count == 0) + return result; + + Vector2Int closestTarget = result[0]; + float closestDistance = DistanceToOwnBase(closestTarget); + + foreach (var target in result) { - result.RemoveAt(result.Count - 1); + float distance = DistanceToOwnBase(target); + if (distance < closestDistance) + { + closestDistance = distance; + closestTarget = target; + } } + + result.Clear(); + result.Add(closestTarget); return result; /////////////////////////////////////// }