private void UpgradeWorker(WorkerTypes type) { _store.GoToStore(); var storeItemType = type switch { WorkerTypes.dev => StoreItems.UpskillDeveloper, WorkerTypes.test => StoreItems.UpskillTester, WorkerTypes.ba => StoreItems.UpskillBA, WorkerTypes.founder => StoreItems.UpskillDeveloper }; _store.PurchaseStoreItem(storeItemType); _store.GoToKanban(); _board.SelectPurchasedStoreItem(type); _workers.GetLowestSkillWorker(type)?.SelectWithWait(TimeSpan.FromSeconds(10)); _state.UpdateWorkerInformation(); }
public int GetLowestSkillLevelForWorker(WorkerTypes type) { int?skillLevel = 1; for (var i = 0; i < 3; i++) { try { var skillLevels = _driver.CDriver.FindElementsByCssSelector($".person:not(#p1) .skill.{type}")?.Select(w => int.Parse(w.GetAttribute("data-level"))); skillLevel = skillLevels?.OrderBy(s => s).FirstOrDefault(); break; } catch (StaleElementReferenceException) //This happens randomly and without warning. Best solution is to try again. Odds decrease each attempt. { Thread.Sleep(10); } } return(skillLevel ?? 1); }
//WorkerTypes public void CreateWorkerType(WorkerTypes c) { ctx.WorkerTypes.Add(c); ctx.SaveChanges(); }
private void HireWorker(WorkerTypes type) { _store.HireWorker(type); _state.UpdateWorkerInformation(); }
public void HireWorker(WorkerTypes type) { _driver.ClickItem(By.CssSelector(($"div.getPerson.{type}:not(.hidden)"))); }
public int WorkerHireCost(WorkerTypes type) { return(ExtractMoney(_driver.GetElementText(By.CssSelector($"div.getPerson.{type}:not(.hidden)"))) ?? int.MaxValue); }
public SyncWaiter(WorkerTypes workerType) { WorkerType = workerType; Status = TaskStatus.WaitingForActivation; }
protected AsyncWaiter(WorkerTypes workerType) { WorkerType = workerType; }
public AsyncTaskAwaiter(TParam p1, Func <TParam, Task <TResult> > action, WorkerTypes workerType) : base(workerType) { _p1 = p1; _action = action; }
public int IdleWorkerCount(WorkerTypes type) { return(_driver.CDriver.FindElementsByCssSelector($".person.doer.{type}:not(.busy):not(#p1)").Count()); }
public SimpleEmployeeStrategy(WorkerTypes type) { _type = type; }
public FounderStrategy(WorkerTypes workerType) { _workerType = workerType; }
public void SelectPurchasedStoreItem(WorkerTypes type) { _driver.ClickItem(By.CssSelector($".storeItem.receiver.{type}")); }
public bool AnyIdleWorkers(WorkerTypes type) { return(_driver.CDriver.FindElementsByCssSelector($"span.person.{type}:not(.busy):not(#p1)").Any()); }