Browse Source

fix(BuildCalc) Cancel now reverts unlocked tech again

main
Jonathan McCaffrey 4 years ago
parent
commit
f3a1c98b20
  1. 7
      Model/BuildOrders/BuildOrderModel.cs
  2. 2
      Model/Entity/Data/DATA.cs
  3. 10
      Services/Immortal/BuildOrderService.cs

7
Model/BuildOrders/BuildOrderModel.cs

@ -43,6 +43,13 @@ public class BuildOrderModel
}
};
public Dictionary<string, int> UniqueCompletedCount { get; set; } = new()
{
{
DataType.STARTING_Bastion, 1
}
};
public Dictionary<int, int> SupplyCountTimes { get; set; } = new()

2
Model/Entity/Data/DATA.cs

@ -1496,7 +1496,7 @@ public class DATA
.AddPart(new EntityHotkeyModel { Hotkey = "Q", HotkeyGroup = "TAB" })
.AddPart(new EntityFactionModel { Faction = FactionType.QRath })
.AddPart(new EntityProductionModel { Alloy = 50, Ether = 100, BuildTime = 60 })
.AddPart(new EntityRequirementModel() { Id = DataType.BUILDING_Reliquary, Requirement = RequirementType.Research_Building})
.AddPart(new EntityRequirementModel { Id = DataType.BUILDING_Reliquary, Requirement = RequirementType.Research_Building})
.AddPart(new EntityVanguardAddedModel
{ ReplaceId = DataType.UPGRADE_GreavesOfAhqar, ImmortalId = DataType.IMMORTAL_Orzum })

10
Services/Immortal/BuildOrderService.cs

@ -65,6 +65,11 @@ public class BuildOrderService : IBuildOrderService
if (!buildOrder.UniqueCompletedTimes.ContainsKey(entity.DataType))
buildOrder.UniqueCompletedTimes.Add(entity.DataType, atInterval);
if (!buildOrder.UniqueCompletedCount.ContainsKey(entity.DataType))
buildOrder.UniqueCompletedCount.Add(entity.DataType, 1);
else
buildOrder.UniqueCompletedCount[entity.DataType]++;
if (supply != null)
{
if (!supply.Takes.Equals(0)) buildOrder.CurrentSupplyUsed += supply.Takes;
@ -159,8 +164,11 @@ public class BuildOrderService : IBuildOrderService
if (entityRemoved.Supply()?.Takes > 0)
buildOrder.CurrentSupplyUsed -= entityRemoved.Supply()!.Takes;
if (UniqueCompletedTimes[entityRemoved!.DataType].Equals(lastInterval + entityRemoved.Production()!.BuildTime))
buildOrder.UniqueCompletedCount[entityRemoved!.DataType]--;
if (buildOrder.UniqueCompletedCount[entityRemoved!.DataType] == 0) {
UniqueCompletedTimes.Remove(entityRemoved.DataType);
}
if (entityRemoved.Info().Descriptive == DescriptiveType.Worker)
{

Loading…
Cancel
Save