示例#1
0
        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();
        }
示例#2
0
        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);
        }
示例#3
0
 //WorkerTypes
 public void CreateWorkerType(WorkerTypes c)
 {
     ctx.WorkerTypes.Add(c);
     ctx.SaveChanges();
 }
示例#4
0
 private void HireWorker(WorkerTypes type)
 {
     _store.HireWorker(type);
     _state.UpdateWorkerInformation();
 }
示例#5
0
 public void HireWorker(WorkerTypes type)
 {
     _driver.ClickItem(By.CssSelector(($"div.getPerson.{type}:not(.hidden)")));
 }
示例#6
0
 public int WorkerHireCost(WorkerTypes type)
 {
     return(ExtractMoney(_driver.GetElementText(By.CssSelector($"div.getPerson.{type}:not(.hidden)"))) ?? int.MaxValue);
 }
示例#7
0
 public SyncWaiter(WorkerTypes workerType)
 {
     WorkerType = workerType;
     Status     = TaskStatus.WaitingForActivation;
 }
示例#8
0
 protected AsyncWaiter(WorkerTypes workerType)
 {
     WorkerType = workerType;
 }
 public AsyncTaskAwaiter(TParam p1, Func <TParam, Task <TResult> > action, WorkerTypes workerType)
     : base(workerType)
 {
     _p1     = p1;
     _action = action;
 }
示例#10
0
 public int IdleWorkerCount(WorkerTypes type)
 {
     return(_driver.CDriver.FindElementsByCssSelector($".person.doer.{type}:not(.busy):not(#p1)").Count());
 }
示例#11
0
 public SimpleEmployeeStrategy(WorkerTypes type)
 {
     _type = type;
 }
示例#12
0
 public FounderStrategy(WorkerTypes workerType)
 {
     _workerType = workerType;
 }
示例#13
0
 public void SelectPurchasedStoreItem(WorkerTypes type)
 {
     _driver.ClickItem(By.CssSelector($".storeItem.receiver.{type}"));
 }
示例#14
0
 public bool AnyIdleWorkers(WorkerTypes type)
 {
     return(_driver.CDriver.FindElementsByCssSelector($"span.person.{type}:not(.busy):not(#p1)").Any());
 }