Skip to content

Commit fac26a6

Browse files
authored
Instant upgrade problem with non-instant building (#173)
1 parent f4a5acf commit fac26a6

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

MainCore/Tasks/Sim/UpgradeBuilding.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ private bool GotoBuilding(PlanTask buildingTask)
427427
}
428428
else
429429
{
430-
if (buildingTask.Building.HasMultipleTabs())
430+
if (buildingTask.Building.HasMultipleTabs() && building.Level != 0)
431431
{
432432
NavigateHelper.SwitchTab(_chromeBrowser, 0, context, AccountId);
433433
}

MainCore/Tasks/Update/UpdateVillage.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,25 +74,32 @@ private void InstantUpgrade(AppDbContext context)
7474
if (!setting.IsInstantComplete) return;
7575
var info = context.AccountsInfo.Find(AccountId);
7676
if (info.Gold < 2) return;
77-
var currentlyBuilding = context.VillagesCurrentlyBuildings.Where(x => x.VillageId == VillageId).Where(x => x.Level != -1);
77+
var currentlyBuildings = context.VillagesCurrentlyBuildings.Where(x => x.VillageId == VillageId).Where(x => x.Level != -1).ToList();
7878
#if TRAVIAN_OFFICIAL || TRAVIAN_OFFICIAL_HEROUI
7979
var tribe = context.AccountsInfo.Find(AccountId).Tribe;
8080
if (tribe == TribeEnums.Romans)
8181
{
82-
if (currentlyBuilding.Count(x => x.Level != -1) < (info.HasPlusAccount ? 3 : 2)) return;
82+
if (currentlyBuildings.Count(x => x.Level != -1) < (info.HasPlusAccount ? 3 : 2)) return;
8383
}
8484
else
8585
{
86-
if (currentlyBuilding.Count(x => x.Level != -1) < (info.HasPlusAccount ? 2 : 1)) return;
86+
if (currentlyBuildings.Count(x => x.Level != -1) < (info.HasPlusAccount ? 2 : 1)) return;
8787
}
8888
#elif TTWARS
89-
if (currentlyBuilding.Count(x => x.Level != -1) < (info.HasPlusAccount ? 2 : 1)) return;
89+
if (currentlyBuildings.Count(x => x.Level != -1) < (info.HasPlusAccount ? 2 : 1)) return;
9090
#else
9191

9292
#error You forgot to define Travian version here
9393

9494
#endif
95-
if (currentlyBuilding.Max(x => x.CompleteTime) < DateTime.Now.AddMinutes(setting.InstantCompleteTime)) return;
95+
var notInstantBuildings = currentlyBuildings.Where(x => x.Type.IsNotAdsUpgrade());
96+
foreach (var building in notInstantBuildings)
97+
{
98+
currentlyBuildings.Remove(building);
99+
}
100+
if (!currentlyBuildings.Any()) return;
101+
102+
if (currentlyBuildings.Max(x => x.CompleteTime) < DateTime.Now.AddMinutes(setting.InstantCompleteTime)) return;
96103

97104
_taskManager.Add(AccountId, new InstantUpgrade(VillageId, AccountId));
98105
}

0 commit comments

Comments
 (0)