public async Task ChoseStockAsync(int deck) //i think that deck ended up being better after all. { if (_gameContainer.CanSendMessage()) { await _gameContainer.Network !.SendAllAsync("chosestock", deck); } var thisStock = CardsModule.GetStockCard(deck); await _gameContainer.ShowCardAsync(thisStock); _gameContainer.SingleInfo !.Hand.Add(thisStock); if (_gameContainer.SingleInfo.FirstStock == 0) { _gameContainer.SingleInfo.FirstStock = thisStock.Value; } else if (_gameContainer.SingleInfo.SecondStock == 0) { _gameContainer.SingleInfo.SecondStock = thisStock.Value; } else { throw new BasicBlankException("Can only have 2 stocks at the most"); } if (_gameContainer.SaveRoot !.EndAfterStock) { _gameContainer.GameStatus = EnumWhatStatus.NeedToEndTurn; }
public async Task ChoseSalaryAsync(int salary) { if (_gameContainer.CanSendMessage()) { await _gameContainer.Network !.SendAllAsync("chosesalary", salary); } if (_gameContainer.GameStatus == EnumWhatStatus.NeedTradeSalary) { throw new BasicBlankException("I think if the salary is being traded; must use TradedSalary method instead"); } else if (_gameContainer.GameStatus == EnumWhatStatus.NeedChooseSalary) { var thisSalary = CardsModule.GetSalaryCard(salary); await _gameContainer.ShowCardAsync(thisSalary); _gameContainer.SingleInfo !.Hand.Add(thisSalary); _gameContainer.SingleInfo.Salary = thisSalary.PayCheck; PopulatePlayerProcesses.FillInfo(_gameContainer.SingleInfo); } else { throw new BasicBlankException("Not sure what to do about this game status. Rethink"); } if (_gameContainer.SaveRoot.EndAfterSalary) { _gameContainer.GameStatus = EnumWhatStatus.NeedToEndTurn; } else { _gameContainer.GameStatus = EnumWhatStatus.NeedToSpin; } await _gameContainer.ContinueTurnAsync !.Invoke(); }
public async Task StockReturnedAsync(int deck) { if (_gameContainer.CanSendMessage()) { await _gameContainer.Network !.SendAllAsync("stockreturned", deck); } var thisStock = CardsModule.GetStockCard(deck); await _gameContainer.ShowCardAsync(thisStock); _gameContainer.SingleInfo !.Hand.RemoveObjectByDeck(thisStock.Deck); if (thisStock.Value == _gameContainer.SingleInfo.FirstStock) { _gameContainer.SingleInfo.FirstStock = _gameContainer.SingleInfo.SecondStock; _gameContainer.SingleInfo.FirstStock = 0; } else if (thisStock.Value == _gameContainer.SingleInfo.SecondStock) { _gameContainer.SingleInfo.SecondStock = 0; } else { throw new BasicBlankException("Cannot update the stock"); } _gameContainer.GameStatus = EnumWhatStatus.NeedToEndTurn; await _gameContainer.ContinueTurnAsync !.Invoke(); }
public async Task StartSpinningAsync() { var spin = GetSpinData; if (_gameContainer.CanSendMessage()) { await _gameContainer.Network !.SendAllAsync("spin", spin); } await StartSpinningAsync(spin); }
public async Task TilesStolenAsync(string player) { if (_gameContainer.CanSendMessage()) { await _gameContainer.Network !.SendAllAsync("stole", player); //hopefully this simple now. } _model.PlayerPicker.ShowOnlyOneSelectedItem(player); if (_gameContainer.Test.NoAnimations == false) { await _gameContainer.Delay.DelaySeconds(1); } var thisPlayer = _gameContainer.PlayerList ![player];
public async Task ChoseHouseAsync(int deck) { if (_gameContainer.CanSendMessage()) { await _gameContainer.Network !.SendAllAsync("chosehouse", deck); } HouseInfo thisHouse = CardsModule.GetHouseCard(deck); await _gameContainer.ShowCardAsync(thisHouse); _gameContainer.SingleInfo !.Hand.Add(thisHouse); _gameContainer.SaveRoot !.HouseList.Clear(); PopulatePlayerProcesses.FillInfo(_gameContainer.SingleInfo); //i think here too. _gameContainer.TakeOutExpense(thisHouse.HousePrice); _gameContainer.GameStatus = EnumWhatStatus.NeedToSpin; await _gameContainer.ContinueTurnAsync !.Invoke(); }
public async Task ChoseCareerAsync(int deck) { if (_gameContainer.CanSendMessage()) { await _gameContainer.Network !.SendAllAsync("chosecareer", deck); } if (_gameContainer.WasNight) { RemoveCareer(deck); } var thisCareer = CardsModule.GetCareerCard(deck); _gameContainer.SingleInfo !.Hand.Add(thisCareer); await _gameContainer.ShowCardAsync(thisCareer); string career1 = PopulatePlayerProcesses.CareerChosen(_gameContainer.SingleInfo, out string career2); if (career1 != "Teacher" && _gameContainer.SaveRoot.WasNight == false) { RemoveCareer(deck); } PopulatePlayerProcesses.FillInfo(_gameContainer.SingleInfo); if (PrivateCanGetSalary(career1, career2)) { _gameContainer.SaveRoot.EndAfterSalary = _gameContainer.GameStatus == EnumWhatStatus.NeedNewCareer || _gameContainer.SaveRoot.WasNight; var thisSalary = _gameContainer.SingleInfo.GetSalaryCard(); _gameContainer.SingleInfo.Hand.RemoveSpecificItem(thisSalary); _gameContainer.GameStatus = EnumWhatStatus.NeedChooseSalary; await _gameContainer.ContinueTurnAsync !.Invoke(); return; } if (_gameContainer.SaveRoot.WasNight) { _gameContainer.SaveRoot.EndAfterSalary = true; } else if (_gameContainer.TeacherChooseSecondCareer) { _gameContainer.GameStatus = EnumWhatStatus.NeedNewCareer; _gameContainer.SaveRoot.MaxChosen = 1; } else { _gameContainer.GameStatus = EnumWhatStatus.NeedToSpin; } _gameContainer.RepaintBoard(); await _gameContainer.ContinueTurnAsync !.Invoke(); }