private bool ValidateUpgrade(UpgradeMove item, GameState oldState) { // Need to make sure the province exists and they're not upgrading a province they no longer own ProvinceState province = oldState.GetProvinceState(item.AlteredProvince); return(province != null && province.Owner == item.Faction); }
private void HandleHoverToSelected(GameState currentGamestate) { if (HoveredProvince != null) { _selectedProvince = _hoveredProvince; } }
private Vector3 GetIndicatorPositionFor(Province province, GameState state) { ProvinceState provinceState = state.GetProvinceState(province); Vector2 center = _objectManager.GetProvinceCenter(provinceState); return(new Vector3(center.x, 0, center.y) + IndicatorOffset); }
public War(ProvinceState location, FactionArmies attackers, FactionArmies defenders) { Location = location.Identifier; IEnumerable <BattleSite> sites = GetSites(location); Progression = GetProgression(attackers, defenders, sites); Winner = GetWinner(attackers.Faction, defenders.Faction); }
private void DisplayProvinceOwnershipChanges(GameState preOwnerGame, GameState postOwnerGame, float progression) { ProvinceState preOwnerProvince = preOwnerGame.GetTilesProvince(Tile); ProvinceState postOwnerProvince = postOwnerGame.GetTilesProvince(Tile); Color preColor = preOwnerProvince.Owner.Color; Color postColor = preOwnerProvince.Owner.Color; FactionDisplayColor = Color.Lerp(preColor, postColor, progression); }
//POST public async Task <IHttpActionResult> Post(ProvinceState ProvinceState) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } context.ProvinceStates.Add(ProvinceState); await context.SaveChangesAsync(); return(Created(ProvinceState)); }
public void ProvinceStateDelegatesAddedTaxesToInjectedTaxesService() { // expectations var pstTax = new Tax("PST", DateTime.Today, DateTime.Today.AddMonths(6), JurisdictionEnum.ProvinceState); _mockTaxesService.AddTax(pstTax); _mockRepository.ReplayAll(); var provinceState = new ProvinceState("MB", _mockTaxesService); provinceState.AddTax(pstTax); }
private IEnumerable <FinalWarsSetup> GetFinalWars(GameState state, Dictionary <Province, List <AttackMove> > byTargetTable, WarForcesTable forcesTable) { foreach (KeyValuePair <Province, List <AttackMove> > item in byTargetTable) { FactionArmies defender = forcesTable.GetForcesFor(item.Key); IEnumerable <FactionArmies> invaders = GetAttackersForProvince(item.Key, item.Value, forcesTable).ToArray(); ProvinceState locationState = state.GetProvinceState(item.Key); FinalWarsSetup retItem = new FinalWarsSetup(locationState, defender, invaders); yield return(retItem); } }
public ProvinceState GetCompletedMerger(GameState state) { ProvinceState ret = state.GetProvinceState(SourceProvince); foreach (Province absorbedProvince in EliminatedProvinces) { ProvinceState trueAbsorbee = state.GetProvinceState(absorbedProvince); ret = GetMerged(ret, trueAbsorbee); } return(ret); }
private static IEnumerable <War> GetWars(ProvinceState location, FactionArmies defender, IEnumerable <FactionArmies> invaders) { List <War> ret = new List <War>(); foreach (FactionArmies invader in invaders) { War war = new War(location, invader, defender); ret.Add(war); } return(ret); }
private IEnumerable <ProvinceState> GetUpgradedProvinces(GameState oldState, IEnumerable <UpgradeMove> validUpgrades) { Dictionary <Province, ProvinceState> oldNewDictionary = oldState.Provinces.ToDictionary(item => item.Identifier, item => item); foreach (UpgradeMove upgrade in validUpgrades) { ProvinceState provinceState = oldState.GetProvinceState(upgrade.AlteredProvince); ProvinceState upgraded = GetUpgradedProvince(upgrade, provinceState); oldNewDictionary[upgrade.AlteredProvince] = upgraded; } return(oldNewDictionary.Values); }
private static GameState GetNewGameState(GameState state, IEnumerable <War> wars) { Dictionary <Province, ProvinceState> oldNewDictionary = state.Provinces.ToDictionary(item => item.Identifier, item => item); foreach (War war in wars) { ProvinceState oldState = oldNewDictionary[war.Location]; ProvinceState newState = new ProvinceState(war.Winner, oldState.Upgrades, oldState.Identifier, oldState.Tiles); oldNewDictionary[war.Location] = newState; } return(new GameState(oldNewDictionary.Values)); }
public override bool Equals(object obj) { var other = obj as DataKey; if (obj == null) { return(false); } return(CountyDistrict.Equals(other.CountyDistrict) && ProvinceState.Equals(other.ProvinceState) && CountryRegion.Equals(other.CountryRegion)); }
private ProvinceState GetMerged(ProvinceState basis, ProvinceState toAbsorb) { ProvinceUpgrades newUpgrades = new ProvinceUpgrades(basis.Upgrades.Upgrades.Concat(toAbsorb.Upgrades.Upgrades)); IEnumerable <Tile> newTiles = basis.Tiles.Concat(toAbsorb.Tiles); ProvinceState newProvince = new ProvinceState( basis.Owner, newUpgrades, basis.Identifier, newTiles ); return(newProvince); }
private void HandleDraggedUpon() { if (HoveredProvince != null && SelectedProvince != HoveredProvince && Dragging) { _draggedOnProvince = _hoveredProvince; } else { _draggedOnProvince = null; } }
private ReadOnlyDictionary <Province, FactionArmies> GetDefenderForces(GameState state, IEnumerable <AttackMove> attacks) { Dictionary <Province, FactionArmies> ret = new Dictionary <Province, FactionArmies>(); HashSet <Province> targets = new HashSet <Province>(attacks.Select(item => item.TargetProvince)); foreach (Province target in targets) { ProvinceState provinceOwner = state.GetProvinceState(target); int attacksByDefender = attacks.Count(item => item.Faction == provinceOwner.Owner); FactionArmies forces = CalculateDefendingForces(provinceOwner, attacksByDefender, state); ret.Add(target, forces); } return(new ReadOnlyDictionary <Province, FactionArmies>(ret)); }
private void ClearExistingMove(ProvinceState selectedProvince) { MergerIntention existingMerge = _mergers.FirstOrDefault(item => item.From == selectedProvince.Identifier); if (existingMerge != null) { _mergers.Remove(existingMerge); } AttackIntention existingAttack = _attacks.FirstOrDefault(item => item.From == selectedProvince.Identifier); if (existingAttack != null) { _attacks.Remove(existingAttack); } }
public int CompareTo(DataKey other) { int i = CountryRegion.CompareTo(other.CountryRegion); if (i != 0) { return(i); } i = ProvinceState.CompareTo(other.ProvinceState); if (i != 0) { return(i); } return(CountyDistrict.CompareTo(other.CountyDistrict)); }
public Vector2 GetProvinceCenter(ProvinceState state) { Vector2 ret = Vector2.zero; int count = 0; foreach (Tile tile in state.Tiles) { ret += tile.Center; count++; } if (count > 0) { ret = ret / count; } return(ret); }
private IEnumerable <ProvinceState> GetInitialProvinces(IEnumerable <PlayerSetup> playerSetups, Map map) { Dictionary <Tile, Faction> startingLocations = GetStartingLocations(playerSetups, map); List <ProvinceState> ret = new List <ProvinceState>(); foreach (Tile tile in map) { Faction faction = Faction.Independent; if (startingLocations.ContainsKey(tile)) { faction = startingLocations[tile]; } ProvinceState province = CreateInitialProvinceState(faction, tile); ret.Add(province); } return(ret); }
private HashSet <Province> GetNeighborProvinces(GameState state, ProvinceState province) { HashSet <Tile> neighborTiles = new HashSet <Tile>(); foreach (Tile item in province.Tiles) { neighborTiles.UnionWith(item.Neighbors); } HashSet <Province> provinces = new HashSet <Province>(); foreach (Tile item in neighborTiles) { Province tileProvince = state.GetTilesProvince(item).Identifier; provinces.Add(tileProvince); } provinces.Remove(province.Identifier); return(provinces); }
internal void RequestAttackOrMerge(ProvinceState selectedProvince, ProvinceState draggedOnProvince) { ClearExistingMove(selectedProvince); if (RemainingMoves > 0) { if (selectedProvince.Owner == draggedOnProvince.Owner) { // Merge MergerIntention merger = new MergerIntention(selectedProvince.Owner, selectedProvince.Identifier, draggedOnProvince.Identifier); _mergers.Add(merger); } else { // Attack AttackIntention attack = new AttackIntention(selectedProvince.Owner, selectedProvince.Identifier, draggedOnProvince.Identifier); _attacks.Add(attack); } } }
public ProvinceMergerTables(GameState state, IEnumerable <MergerChain> chains) { _oldNewDictionary = state.Provinces.ToDictionary(item => item.Identifier, item => item); Dictionary <Province, ProvinceState> changesTable = new Dictionary <Province, ProvinceState>(); foreach (MergerChain chain in chains) { ProvinceState mergeChainProduct = chain.GetCompletedMerger(state); foreach (Province province in chain.EliminatedProvinces) { ProvinceState toDelete = state.GetProvinceState(province); _oldNewDictionary.Remove(toDelete.Identifier); changesTable.Add(toDelete.Identifier, mergeChainProduct); } _oldNewDictionary[chain.SourceProvince] = mergeChainProduct; } MergeTable = new MergeTable(changesTable.ToDictionary(item => item.Key, item => item.Value.Identifier)); NewProvinces = _oldNewDictionary.Values.ToArray(); }
public void Setup() { _mockRepository = new MockRepository(); _mockTaxesService = _mockRepository.Stub <ITaxesService>(); _city = new City("CityTax", _mockTaxesService); var cityTax = new Tax("CityTax", DateTime.Today, DateTime.Today.AddMonths(6), JurisdictionEnum.City, 2); _mockTaxesService.Taxes.Add(cityTax); _provinceState = new ProvinceState("ProvStateTax", _mockTaxesService); var provStateTax = new Tax("ProvStateTax", DateTime.Today, DateTime.Today.AddMonths(6), JurisdictionEnum.ProvinceState, 3); _mockTaxesService.Taxes.Add(provStateTax); _country = new Country("CountryTax", _mockTaxesService); var countryTax = new Tax("CountryTax", DateTime.Today, DateTime.Today.AddMonths(6), JurisdictionEnum.Country, 4); _mockTaxesService.Taxes.Add(countryTax); }
public void Update(GameState currentGamestate, ProvinceNeighborsTable neighbors) { _hoveredProvince = GetProvinceUnderMouse(currentGamestate); bool mouseDown = Input.GetMouseButton(0); if (mouseDown) { bool mouseJustDown = Input.GetMouseButtonDown(0); if (mouseJustDown) { HandleHoverToSelected(currentGamestate); HandleSelectedToDragging(); } HandleDraggedUpon(); } else { HandleDragDrop(neighbors); _draggedOnProvince = null; Dragging = false; } }
private bool ValidateProvinceOwner(Faction originalOwner, Province provinceFromMove, GameState state) { ProvinceState grower = state.GetProvinceState(provinceFromMove); return(grower.Owner == originalOwner); }
/// <summary> /// This is the function that occurs when the save button is clicked /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void saveButton_Click_1(object sender, EventArgs e) { Country selectedCountry = (Country)countryComboBox.SelectedItem; Gender selectedGender = (Gender)genderComboBox.SelectedItem; ProvinceState selectedProvState = (ProvinceState)provStateComboBox.SelectedItem; Citizenship selectedCitizenship = (Citizenship)citizenshipComboBox.SelectedItem; Country selectedCitizenshipOther = (Country)citizenshipOtherComboBox.SelectedItem; Campus selectedCampus = (Campus)campusComboBox1.SelectedItem; NSCCApplicationFormDataLayer.Models.Program selectedProgram = (NSCCApplicationFormDataLayer.Models.Program)programsComboBox1.SelectedItem; Campus selectedCampus2 = (Campus)campusComboBox2.SelectedItem; NSCCApplicationFormDataLayer.Models.Program selectedProgram2 = (NSCCApplicationFormDataLayer.Models.Program)programsComboBox2.SelectedItem; if (makeApplication == false) { int counter = 0; if (firstNameTextBox.Text.Length == 0) { MessageBox.Show("Please Fill In A First Name"); } else if (lastNameTextBox.Text.Length == 0) { MessageBox.Show("Please Fill In A Last Name"); } else if (dateOfBirthTextBox.Text.Length == 0) { MessageBox.Show("Please Fill In A Date Of Birth"); } else if (IsCorrectDate(dateOfBirthTextBox.Text) == false) { MessageBox.Show("Please Fill In A Valid Date Of Birth"); } else if (selectedGender.Description == "<Select A Gender>") { MessageBox.Show("Please Select A Gender"); } else if (selectedCountry.Name == "<Select A Country>") { MessageBox.Show("Please Select A Country"); } else if (streetTextBox.Text.Length == 0) { MessageBox.Show("Please Fill In A Street Address"); } else if (cityTextBox.Text.Length == 0) { MessageBox.Show("Please Fill In A City"); } else if (selectedProvState.Name == "<Select A Province/State>" && provState == true) { MessageBox.Show("Please Select A Province/State"); } else if (provStateOtherTextBox.Text.Length == 0 && provStateOther == true) { MessageBox.Show("Please Fill In A Province State Other"); } else if (emailTextBox.Text.Length == 0) { MessageBox.Show("Please Fill In An Email"); } else if (IsValidEmail(emailTextBox.Text) == false) { MessageBox.Show("Please Fill In A Valid Email"); } if (selectedCitizenship.Description == "<Select A Citizenship>") { MessageBox.Show("Please Select A Citizenship"); } else { citizenshipAnswerd = true; counter += 1; } if (selectedCitizenshipOther.Name == "<Select A Citizenship Other>" && citizenshipOther == true) { MessageBox.Show("Please Select A Citizenship Other"); } else { citizenshipAnswerd = true; counter += 1; } if (selectedProgram.Name == "<Select A Program>") { MessageBox.Show("Please Select A Program"); } else if (selectedCampus.Name == "<Select A Campus>") { MessageBox.Show("Please Select A Campus"); } else if (selectedProgram2.Name == "<Select A Program>") { MessageBox.Show("Please Select A Second Program"); } else if (selectedCampus2.Name == "<Select A Campus>") { MessageBox.Show("Please Select A Second Campus"); } else if (phoneTextBox.Text.Length == 0) { MessageBox.Show("Please Fill In An Phone Number"); } else if (IsValidPhone(phoneTextBox.Text) == false) { MessageBox.Show("Please Fill In A Valid Phone Number"); } if (firstLanguageOtherTextBox.Text.Length == 0 && firstLanguageOther == true) { MessageBox.Show("Please Fill In A First Language Other"); firstLanguageOtherAnswerd = false; } else { firstLanguageOtherAnswerd = true; counter += 1; } if (counter == 3) { makeApplication = true; } } if (makeApplication == true) { if (firstNameTextBox.Text.Length > 0 && lastNameTextBox.Text.Length > 0 && dateOfBirthTextBox.Text.Length > 0 && selectedGender.Description != "<Select A Gender>" && selectedCountry.Name != "<Select A Country>" && streetTextBox.Text.Length > 0 && cityTextBox.Text.Length > 0 && provStateAnswerd == true && emailTextBox.Text.Length > 0 && selectedCitizenship.Description != "<Select A Citizenship>" && citizenshipAnswerd == true && selectedProgram.Name != "<Select A Program>" && selectedCampus.Name != "<Select A Campus>" && selectedProgram2.Name != "<Select A Program>" && selectedCampus2.Name != "<Select A Campus>" && phoneTextBox.Text.Length > 0 && firstLanguageOtherAnswerd == true ) { try { //Make and add applicant to database Applicant newApplicant = new Applicant(); newApplicant.FirstName = firstNameTextBox.Text; if (String.IsNullOrEmpty(middelNameTextBox.Text) == false) { newApplicant.MiddleName = middelNameTextBox.Text; } newApplicant.LastName = lastNameTextBox.Text; newApplicant.DateOfBirth = DateTime.Parse(dateOfBirthTextBox.Text); newApplicant.Gender = selectedGender.Code; newApplicant.CountryCode = selectedCountry.Code; newApplicant.StreetAddress1 = streetTextBox.Text; newApplicant.City = cityTextBox.Text; newApplicant.ProvinceStateCode = selectedProvState.Code; newApplicant.ProvinceStateOther = provStateOtherTextBox.Text; newApplicant.EmailAddress = emailTextBox.Text; newApplicant.Citizenship = selectedCitizenship.Id; newApplicant.CitizenshipOther = selectedCitizenshipOther.Code; newApplicant.IsEnglishFirstLanguage = englishFirstCheckBox.Checked; newApplicant.HasCriminalConvicition = pastCrimeCheckBox.Checked; newApplicant.IsIndigenous = firstNationCheckBox.Checked; newApplicant.IsAfricanCanadian = africanChildCheckBox.Checked; newApplicant.HasDisability = disabilityCheckBox.Checked; newApplicant.PhoneHome = phoneTextBox.Text; newApplicant.FirstLanguageOther = firstLanguageOtherTextBox.Text; service.AddToApplicants(newApplicant); service.SaveChanges(); //Make and add application to database NSCCApplicationFormDataLayer.Models.Application newApplication = new NSCCApplicationFormDataLayer.Models.Application(); newApplication.ApplicantId = newApplicant.ApplicantId; newApplication.SubmissionDate = DateTime.Now; newApplication.ApplicationFee = 50; newApplication.Paid = false; service.AddToApplications(newApplication); service.SaveChanges(); //Make and add program choice to database ProgramChoice newProgramChoice = new ProgramChoice(); newProgramChoice.ApplicantId = newApplicant.ApplicantId; newProgramChoice.ProgramId = selectedProgram.Id; newProgramChoice.CampusId = selectedCampus.Id; newProgramChoice.Preference = 1; service.AddToProgramChoices(newProgramChoice); service.SaveChanges(); //Make and add program choice to database ProgramChoice newProgramChoice2 = new ProgramChoice(); newProgramChoice2.ApplicantId = newApplicant.ApplicantId; newProgramChoice2.ProgramId = selectedProgram2.Id; newProgramChoice2.CampusId = selectedCampus2.Id; newProgramChoice2.Preference = 0; service.AddToProgramChoices(newProgramChoice2); service.SaveChanges(); //Reload all of the dropdowns and text boxes and check boxes var applicantList1 = service.Applicants.Expand("ProvinceState,Country,TheCitizenship,CitizenshipOtherForApplicant").OrderBy(a => a.LastName).ToList(); //Display Programs var programsList = service.Programs.Expand(p => p.Campuss).ToList(); programsList.Insert(0, new NSCCApplicationFormDataLayer.Models.Program { Name = "<Select A Program>" }); programsComboBox1.DataSource = programsList; programsComboBox1.DisplayMember = "Name"; var programsList2 = service.Programs.Expand(p => p.Campuss).ToList(); programsList2.Insert(0, new NSCCApplicationFormDataLayer.Models.Program { Name = "<Select A Program>" }); programsComboBox2.DataSource = programsList2; programsComboBox2.DisplayMember = "Name"; //Display Campus var campusList = service.Campuses.OrderBy(p => p.Name).ToList(); campusList.Insert(0, new Campus { Name = "<Select A Campus>" }); campusComboBox1.DataSource = campusList; campusComboBox1.DisplayMember = "Name"; var campusList2 = service.Campuses.OrderBy(p => p.Name).ToList(); campusList2.Insert(0, new Campus { Name = "<Select A Campus>" }); campusComboBox2.DataSource = campusList2; campusComboBox2.DisplayMember = "Name"; //Display Genders var genderList = service.Genders.OrderBy(p => p.Description).ToList(); genderList.Insert(0, new Gender { Description = "<Select A Gender>" }); genderComboBox.DataSource = genderList; genderComboBox.DisplayMember = "Description"; //Display Country var countryList = service.Countries.OrderBy(p => p.Name).ToList(); countryList.Insert(0, new Country { Name = "<Select A Country>" }); countryComboBox.DataSource = countryList; countryComboBox.DisplayMember = "Name"; //Display Province State var provStateList = service.ProvinceStates.OrderBy(p => p.Name).ToList(); provStateList.Insert(0, new ProvinceState { Name = "<Select A Province/State>" }); provStateComboBox.DataSource = provStateList; provStateComboBox.DisplayMember = "Name"; //Display Citizenships var citizenshipsList = service.Citizenships.OrderBy(p => p.Description).ToList(); citizenshipsList.Insert(0, new Citizenship { Description = "<Select A Citizenship>" }); citizenshipComboBox.DataSource = citizenshipsList; citizenshipComboBox.DisplayMember = "Description"; //Display Citizenships Other var citizenshipsOtherList = service.Countries.OrderBy(p => p.Name).ToList(); citizenshipsOtherList.Insert(0, new Country { Name = "<Select A Citizenship Other>" }); citizenshipOtherComboBox.DataSource = citizenshipsOtherList; citizenshipOtherComboBox.DisplayMember = "Name"; firstNameTextBox.Text = ""; lastNameTextBox.Text = ""; middelNameTextBox.Text = ""; phoneTextBox.Text = ""; dateOfBirthTextBox.Text = ""; streetTextBox.Text = ""; cityTextBox.Text = ""; provStateOtherTextBox.Text = ""; emailTextBox.Text = ""; pastCrimeCheckBox.Checked = false; childAbuseCheckBox.Checked = false; pastDisciplinaryCheckBox.Checked = false; africanChildCheckBox.Checked = false; firstNationCheckBox.Checked = false; currentALPCheckBox.Checked = false; disabilityCheckBox.Checked = false; englishFirstCheckBox.Checked = false; MessageBox.Show("Thank you for filling out an application"); //Load up the applicants list box List <Applicant> applicantList = service.Applicants.OrderBy(a => a.LastName).ToList(); applicantsListBox.DataSource = applicantList; applicantsListBox.DisplayMember = "LastName"; } catch { MessageBox.Show("An error has occured"); } } } }
public void Setup() { _mockRepository = new MockRepository(); _mockTaxesService = _mockRepository.Stub<ITaxesService>(); _city = new City("CityTax", _mockTaxesService); var cityTax = new Tax("CityTax", DateTime.Today, DateTime.Today.AddMonths(6), JurisdictionEnum.City, 2); _mockTaxesService.Taxes.Add(cityTax); _provinceState = new ProvinceState("ProvStateTax", _mockTaxesService); var provStateTax = new Tax("ProvStateTax", DateTime.Today, DateTime.Today.AddMonths(6), JurisdictionEnum.ProvinceState, 3); _mockTaxesService.Taxes.Add(provStateTax); _country = new Country("CountryTax", _mockTaxesService); var countryTax = new Tax("CountryTax", DateTime.Today, DateTime.Today.AddMonths(6), JurisdictionEnum.Country, 4); _mockTaxesService.Taxes.Add(countryTax); }
private FactionArmies CalculateDefendingForces(ProvinceState target, int attacksByDefender, GameState state) { // TODO: Calculate defending forces using these factors return(new FactionArmies(target.Owner, new Army[0])); }
} // Null if multiple invaders beat the defender public FinalWarsSetup(ProvinceState location, FactionArmies defender, IEnumerable <FactionArmies> invaders) { Wars = GetWars(location, defender, invaders); FinalWinner = GetFinalWindner(defender.Faction, Wars); }
private ProvinceState GetUpgradedProvince(UpgradeMove upgrade, ProvinceState equivalent) { // TODO: Apply province upgrades once province upgrades are designed out throw new NotImplementedException(); }