public static void ReStartBuilding(Account acc, Village vill) { RemoveCompletedTasks(vill, acc); //remove ongoing building task for this village acc.Tasks.RemoveAll(x => x.vill == vill && x.GetType() == typeof(UpgradeBuilding) ); if (vill.Build.Tasks.Count == 0) { return; //No build tasks } var nextExecution = DateTime.Now.AddSeconds(5); var lastCB = vill.Build.CurrentlyBuilding.LastOrDefault(); var maxBuildings = 1; if (acc.AccInfo.PlusAccount) { maxBuildings++; } if (lastCB != null && lastCB.Duration > nextExecution && vill.Build.CurrentlyBuilding.Count >= maxBuildings) { nextExecution = lastCB.Duration; } var building = new UpgradeBuilding() { vill = vill, ExecuteAt = nextExecution, }; TaskExecutor.AddTask(acc, building); }
private void Start() { canvasManager = GameObject.FindWithTag("GameManager").GetComponent <CanvasManager>(); buildBuilding = GetComponent <BuildBuilding>(); upgradeFarmHouse = farmHouse.GetComponent <UpgradeBuilding>(); upgradeFarm = farm.GetComponent <UpgradeBuilding>(); upgradeHouse = house.GetComponent <UpgradeBuilding>(); upgradeTower = tower.GetComponent <UpgradeBuilding>(); StartCoroutine(Print()); StartCoroutine(Logging()); StartCoroutine(Quarring()); StartCoroutine(Forging()); extraMoney++; extraWood++; extraStone++; extraHay++; LevelMoney++; LevelWood++; LevelStone++; LevelHay++; }