feature(BuildCalc) Adding WIP wait button, and better styling

This commit is contained in:
2022-04-15 04:04:58 -04:00
parent 04c1718259
commit a0cd7d9b45
13 changed files with 192 additions and 87 deletions
+4 -2
View File
@@ -155,8 +155,10 @@ public interface IBuildComparisonService
public interface ITimingService
{
public int GetTiming();
public void SetTiming(int timing);
public int GetAttackTime();
public void SetAttackTime(int timing);
public int GetTravelTime();
public void SetTravelTime(int timing);
public void Subscribe(Action? action);
public void Unsubscribe(Action? action);
}
+1 -2
View File
@@ -326,8 +326,7 @@ public class BuildOrderService : IBuildOrderService
atInterval = interval;
if (entity.EntityType != EntityType.Army) atInterval += BuildingInputDelay;
return true;
}
}
+23 -23
View File
@@ -8,12 +8,12 @@ namespace Services.Immortal;
public class EconomyService : IEconomyService
{
private List<EconomyModel> _economyOverTime = null!;
private List<EconomyModel> economyOverTime = null!;
public List<EconomyModel> GetOverTime()
{
return _economyOverTime;
return economyOverTime;
}
public void Subscribe(Action action)
@@ -29,33 +29,33 @@ public class EconomyService : IEconomyService
public void Calculate(IBuildOrderService buildOrder, ITimingService timing, int fromInterval)
{
//TODO Break all this up
if (_economyOverTime == null)
if (economyOverTime == null)
{
_economyOverTime = new List<EconomyModel>();
for (var interval = 0; interval < timing.GetTiming(); interval++)
_economyOverTime.Add(new EconomyModel { Interval = interval });
economyOverTime = new List<EconomyModel>();
for (var interval = 0; interval < timing.GetAttackTime(); interval++)
economyOverTime.Add(new EconomyModel { Interval = interval });
}
if (_economyOverTime.Count > timing.GetTiming())
_economyOverTime.RemoveRange(timing.GetTiming(), _economyOverTime.Count - timing.GetTiming());
if (economyOverTime.Count > timing.GetAttackTime())
economyOverTime.RemoveRange(timing.GetAttackTime(), economyOverTime.Count - timing.GetAttackTime());
while (_economyOverTime.Count < timing.GetTiming())
_economyOverTime.Add(new EconomyModel { Interval = _economyOverTime.Count - 1 });
while (economyOverTime.Count < timing.GetAttackTime())
economyOverTime.Add(new EconomyModel { Interval = economyOverTime.Count - 1 });
for (var interval = fromInterval; interval < timing.GetTiming(); interval++)
for (var interval = fromInterval; interval < timing.GetAttackTime(); interval++)
{
var economyAtSecond = _economyOverTime[interval];
var economyAtSecond = economyOverTime[interval];
if (interval > 0)
{
economyAtSecond.Alloy = _economyOverTime[interval - 1].Alloy;
economyAtSecond.Ether = _economyOverTime[interval - 1].Ether;
economyAtSecond.Pyre = _economyOverTime[interval - 1].Pyre;
economyAtSecond.WorkerCount = _economyOverTime[interval - 1].WorkerCount;
economyAtSecond.BusyWorkerCount = _economyOverTime[interval - 1].BusyWorkerCount;
economyAtSecond.CreatingWorkerCount = _economyOverTime[interval - 1].CreatingWorkerCount;
economyAtSecond.Harvesters = _economyOverTime[interval - 1].Harvesters.ToList();
economyAtSecond.CreatingWorkerDelays = _economyOverTime[interval - 1].CreatingWorkerDelays.ToList();
economyAtSecond.Alloy = economyOverTime[interval - 1].Alloy;
economyAtSecond.Ether = economyOverTime[interval - 1].Ether;
economyAtSecond.Pyre = economyOverTime[interval - 1].Pyre;
economyAtSecond.WorkerCount = economyOverTime[interval - 1].WorkerCount;
economyAtSecond.BusyWorkerCount = economyOverTime[interval - 1].BusyWorkerCount;
economyAtSecond.CreatingWorkerCount = economyOverTime[interval - 1].CreatingWorkerCount;
economyAtSecond.Harvesters = economyOverTime[interval - 1].Harvesters.ToList();
economyAtSecond.CreatingWorkerDelays = economyOverTime[interval - 1].CreatingWorkerDelays.ToList();
}
economyAtSecond.Interval = interval;
@@ -159,12 +159,12 @@ public class EconomyService : IEconomyService
public EconomyModel GetEconomy(int atInterval)
{
if (atInterval >= _economyOverTime.Count)
if (atInterval >= economyOverTime.Count)
{
return _economyOverTime.Last();
return economyOverTime.Last();
}
return _economyOverTime[atInterval];
return economyOverTime[atInterval];
}
+21 -6
View File
@@ -2,7 +2,8 @@
public class TimingService : ITimingService
{
private int _timing = 1500;
private int attackTime = 1500;
private int travelTime = 30;
public void Subscribe(Action? action)
{
@@ -14,16 +15,30 @@ public class TimingService : ITimingService
OnChange -= action;
}
public int GetTiming()
public int GetAttackTime()
{
return _timing;
return attackTime;
}
public void SetTiming(int timing)
public void SetAttackTime(int timing)
{
if (_timing != timing)
if (attackTime != timing)
{
_timing = timing;
attackTime = timing;
NotifyDataChanged();
}
}
public int GetTravelTime()
{
return travelTime;
}
public void SetTravelTime(int timing)
{
if (travelTime != timing)
{
travelTime = timing;
NotifyDataChanged();
}
}