public void CoalitionEquality() { List <Powers> p1 = new List <Powers>() { Powers.Austria, Powers.Germany, Powers.Turkey }; List <Powers> p2 = new List <Powers>() { Powers.Austria, Powers.Germany, Powers.Turkey }; List <Powers> p3 = new List <Powers>() { Powers.Austria, Powers.Germany, Powers.Russia }; List <Powers> p4 = new List <Powers>() { Powers.Russia, Powers.England, Powers.France }; Coalition c1 = new Coalition(p1); Coalition c2 = new Coalition(p2); Coalition c3 = new Coalition(p3); Coalition c4 = new Coalition(p4); Assert.AreEqual(c1, c2); Assert.AreNotEqual(c1, c3); Assert.AreNotEqual(c2, c3); Assert.AreNotEqual(c1, c4); }
private void btnExport_Click(object sender, EventArgs e) { try { Coalition coalition = (Coalition)cbCoaltion.SelectedItem; string path = "CoalitieVoorstel_" + coalition.Name + ".txt"; using (StreamWriter streamWriter = new StreamWriter(path)) { streamWriter.WriteLine("Coalitie voorstel " + coalition.ElectionName); streamWriter.WriteLine("=============================================================="); streamWriter.WriteLine("Aan: Willempie"); streamWriter.WriteLine(" "); streamWriter.WriteLine("Partij\t\tZetels\t\tLijsttrekker"); streamWriter.WriteLine(" "); int totalSeats = 0; foreach (ElectionResult res in coalition.Parties) { totalSeats = totalSeats + res.Seats; streamWriter.WriteLine(res.Party.Abbreviation + "\t\t" + res.Seats.ToString() + "\t\t" + res.Party.LeadCandidate.Name); } streamWriter.WriteLine("=============================================================="); streamWriter.WriteLine("Totaal:\t\t" + totalSeats.ToString() + "\t\tPremier: " + coalition.Premier.Name); } MessageBox.Show("Coalitievoorstel opgeslagen als: " + path); } catch { MessageBox.Show("Er is iets mis gegaan, heeft u wel een coalitie geselecteerd?"); } }
public void NewCoalition(Coalition coalition) { try { string sql = "INSERT INTO Coalitie(PremierId, Naam, Meerderheid) " + "OUTPUT Inserted.CoalitieId " + "VALUES(@id, @name, @mayority)"; using (var db = new SqlConnection(connectionString)) { db.Open(); SqlCommand cmd = new SqlCommand(sql, db); cmd.Parameters.Add(new SqlParameter("@id", coalition.Premier.Id)); cmd.Parameters.Add(new SqlParameter("@name", coalition.Name)); cmd.Parameters.Add(new SqlParameter("@mayority", coalition.Mayority)); coalition.Id = (Int32)cmd.ExecuteScalar(); } foreach (ElectionResult party in coalition.Parties) { string sql2 = "INSERT INTO CoalitiePartij(CoalitieId, PartijId) " + "VALUES(@cId, @pId)"; using (var db = new SqlConnection(connectionString)) { db.Open(); SqlCommand cmd = new SqlCommand(sql2, db); cmd.Parameters.Add(new SqlParameter("@cId", coalition.Id)); cmd.Parameters.Add(new SqlParameter("@pId", party.Party.Id)); cmd.ExecuteNonQuery(); } } } catch { } }
public DCSMissionUnitGroup( string luaGroup, string luaUnit, UnitCategory category, int groupID, Coalition coalition, Coordinates coordinates, params string[] units) { LuaGroup = luaGroup; LuaUnit = luaUnit; Category = category; Coalition = coalition; GroupID = groupID; Units = units.ToList(); Name = $"Group #{HQTools.ValToString(GroupID)}"; Coordinates = coordinates; if (units.Length == 0) { DebugLog.Instance.Log($" WARNING: Tried to create an empty unit group at {Coordinates.ToString("F0")}."); } else { DebugLog.Instance.Log($" Added a group of {units.Length} unit(s) ({string.Join(", ", Units)}) with ID #{GroupID} at {Coordinates.ToString("F0")}."); } CheckAbsolueMaxUnitCount(); }
public async Task <IActionResult> Put(int id, Coalition coalition) { if (id != coalition.Id) { return(BadRequest()); } _context.Entry(coalition).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (await CoalitionExists(id)) { throw; } else { return(NotFound()); } } return(NoContent()); }
internal Tuple <DBEntryAirbase, List <int>, List <Coordinates> > GetAirbaseAndParking( MissionTemplateRecord template, Coordinates coordinates, int unitCount, Coalition coalition, UnitFamily unitFamily) { var targetAirbaseOptions = (from DBEntryAirbase airbaseDB in SituationDB.GetAirbases(template.OptionsMission.Contains("InvertCountriesCoalitions")) where airbaseDB.Coalition == coalition && ValidateAirfieldParking(AirbaseParkingSpots[airbaseDB.DCSID], unitFamily, unitCount) && ValidateAirfieldRunway(airbaseDB, unitFamily) select airbaseDB).OrderBy(x => x.Coordinates.GetDistanceFrom(coordinates)); if (targetAirbaseOptions.Count() == 0) { throw new BriefingRoomException("No airbase found for aircraft."); } var targetAirbase = targetAirbaseOptions.First(); var objectiveCoordinates = targetAirbase.Coordinates; var airbaseID = targetAirbase.DCSID; var parkingSpotIDsList = new List <int>(); var parkingSpotCoordinatesList = new List <Coordinates>(); var parkingSpots = GetFreeParkingSpots(airbaseID, unitCount, unitFamily); parkingSpotIDsList = parkingSpots.Select(x => x.DCSID).ToList(); parkingSpotCoordinatesList = parkingSpots.Select(x => x.Coordinates).ToList(); return(Tuple.Create(targetAirbase, parkingSpotIDsList, parkingSpotCoordinatesList)); }
/// <summary> /// Sets the coalition to which the various airbases on the theater belong. /// </summary> /// <param name="mission">Mission for which airbase coalitions must be set</param> /// <param name="theaterAirbasesCoalitions">Airbase coalition setting</param> /// <param name="theaterDB">Theater database entry</param> public void SetupAirbasesCoalitions(DCSMission mission, CountryCoalition theaterAirbasesCoalitions, DBEntryTheater theaterDB) { mission.AirbasesCoalition.Clear(); foreach (DBEntryTheaterAirbase ab in theaterDB.Airbases) { // Airbase ID already exists in the mission if (mission.AirbasesCoalition.ContainsKey(ab.DCSID)) { continue; } // Airbase is the player starting airbase, always set it to the player coalition if (ab.DCSID == mission.InitialAirbaseID) { mission.AirbasesCoalition.Add(ab.DCSID, mission.CoalitionPlayer); continue; } // Other airbases are assigned to a coalition according to the theater and the template settings Coalition airbaseCoalition = ab.Coalition; switch (theaterAirbasesCoalitions) { case CountryCoalition.AllBlue: airbaseCoalition = Coalition.Blue; break; case CountryCoalition.AllRed: airbaseCoalition = Coalition.Red; break; case CountryCoalition.Inverted: airbaseCoalition = (Coalition)(1 - (int)ab.Coalition); break; } mission.AirbasesCoalition.Add(ab.DCSID, airbaseCoalition); } }
public void CoalitionMaxTest() { Coalition c = new Coalition(5); ValueFunction vf = new ValueFunction(""); int[] materials = new int[5]; double max = 0, res = 0; materials[0] = 1; materials[1] = 5; materials[2] = 3; materials[3] = 8; materials[4] = 4; Player p1 = new Player(vf, materials); c.addPlayer(p1); p1.Materials = materials; foreach (var i in materials) { if (i > max) { max = i; } if (i > c.getMaximumValue()) { res = i; } } Assert.AreEqual(max, res); }
private void lbEllectionParties_SelectedIndexChanged(object sender, EventArgs e) { if (lbCoalition.SelectedItem != null) { Coalition coalition = (Coalition)lbCoalition.SelectedItem; lbCoalitionParties.DataSource = facade.GetPartiesFromCoalition(coalition.ID); } }
public OverviewForm(Coalition coalition) { _connector = new SQLServerConnector(); _coalitionRepo = new CoalitionRepository(_connector); Coalition = coalition; GetPrimeMinister(coalition); InitializeComponent(); }
internal static string GetTemplateCoalition(MissionTemplateRecord template, Coalition coalition) { if (coalition == Coalition.Red) { return(template.ContextCoalitionRed); } return(template.ContextCoalitionBlue); }
public async Task <ActionResult <Coalition> > Post(Coalition coalition) { await _context.Coalitions.AddAsync(coalition); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(Get), new { id = coalition.Id }, coalition)); }
/// <summary> /// "Shortcut" method to get <see cref="ContextCoalitionBlue"/> or <see cref="ContextCoalitionRed"/> by using a <see cref="Coalition"/> parameter. /// </summary> /// <param name="coalition">Color of the coalition to return</param> /// <returns><see cref="ContextCoalitionBlue"/> or <see cref="ContextCoalitionRed"/></returns> public string GetCoalition(Coalition coalition) { if (coalition == Coalition.Red) { return(ContextCoalitionRed); } return(ContextCoalitionBlue); }
public bool EditCoalition(Coalition coalition) { string query = @"UPDATE [Coalitie] SET [Premier] = '@premier', [Naam] = '@naam', [Uitslag_ID] = @id"; query = query.Replace("@premier", coalition.Premier) .Replace("@naam", coalition.Name) .Replace("@id", coalition.result.ID.ToString()); return(DatabaseConnection.Delete(query)); }
/// <summary> /// Returns an unique callsign for an aircraft group. /// </summary> /// <param name="csFamily">The type of aircraft (AWACS, tanker, fighter...)</param> /// <param name="natoCallsign">Should this callsign be in the NATO format (true) or the Russian format (false)</param> /// <returns></returns> public MGCallsign GetCallsign(CallsignFamily csFamily, Coalition coalition) { if (CoalitionUsesNATOCallsigns[(int)coalition]) { return(GetNATOCallsign(csFamily)); } return(GetRussianCallsign()); }
public int AddCoalition(Coalition coalition) { string query = @"INSERT INTO [Coalitie]([Premier], [Naam], [Uitslag_ID]) VALUES('@premier', '@naam', @id)"; query = query.Replace("@premier", coalition.Premier) .Replace("@naam", coalition.Name) .Replace("@id", coalition.result.ID.ToString()); return(DatabaseConnection.Create(query)); }
private void btnLoadCoalition_Click(object sender, EventArgs e) { Coalition coalition = (Coalition)cbCoaltion.SelectedItem; lbCoaltionParties.Items.Clear(); foreach (ElectionResult party in coalition.Parties) { lbCoaltionParties.Items.Add(party); } }
private void btnAddtoCoalition_Click(object sender, EventArgs e) { if (lbEllectionParties.SelectedItem != null) { Party party = (Party)lbEllectionParties.SelectedItem; Coalition coalition = (Coalition)lbCoalition.SelectedItem; facade.AddPartytoCoalation(party, coalition); lbCoalitionParties.DataSource = facade.GetPartiesFromCoalition(coalition.ID); } }
public string PrintParties(Coalition coalition) { string print = ""; foreach (Party p in coalition.CoalitionParties) { print = @print + Environment.NewLine + @p.Name + @" " + @p.Seats + @" " + @p.PartyLeader; } return(print); }
private string MakeUnitsLua(DCSMission missHQ, Coalition coalition) { string allUnitsLua = HQTools.ReadIncludeLuaFile("Mission\\CoalitionUnits.lua"); foreach (UnitCategory uc in Enum.GetValues(typeof(UnitCategory))) { HQTools.ReplaceKey(ref allUnitsLua, uc.ToString(), MakeUnitsCategoryLua(missHQ, coalition, uc)); } return(allUnitsLua); }
private string MakeCountryList(DCSMission missionHQ, Coalition coalition) { string countryTableLua = ""; for (int i = 0; i < missionHQ.Countries[(int)coalition].Length; i++) { countryTableLua += $"[{i + 1}] = {(int)missionHQ.Countries[(int)coalition][i]},\r\n"; } return(countryTableLua); }
internal UnitCallsign GetCallsign(UnitFamily unitFamily, Coalition coalition, Side side, bool isUsingSkynet) { UnitCallsignFamily callsignFamily = GetCallsignFamilyFromUnitFamily(unitFamily); if (CoalitionsDB[(int)coalition].NATOCallsigns) { return(GetNATOCallsign(callsignFamily, unitFamily, side, isUsingSkynet)); } return(GetRussianCallsign(unitFamily, side, isUsingSkynet)); }
/// <summary> /// Returns an unique callsign for an aircraft group. /// </summary> /// <param name="unitFamily">The unit family</param> /// <param name="natoCallsign">Should this callsign be in the NATO format (true) or the Russian format (false)</param> /// <returns></returns> public UnitCallsign GetCallsign(UnitFamily unitFamily, Coalition coalition) { UnitCallsignFamily callsignFamily = GetCallsignFamilyFromUnitFamily(unitFamily); if (CoalitionsDB[(int)coalition].NATOCallsigns) { return(GetNATOCallsign(callsignFamily)); } return(GetRussianCallsign()); }
internal void SetAirbase(int airbaseID, Coalition airbaseCoalition) { if (Airbases.ContainsKey(airbaseID)) { Airbases[airbaseID] = airbaseCoalition; } else { Airbases.Add(airbaseID, airbaseCoalition); } }
public int GetCoalitionStrength(Territory t, Coalition coalition) { if (Strengths.Count == 0) { throw new Exception("Must call Init first"); } if (!Strengths.ContainsKey(t)) { return(0); } return(Strengths[t].Where(kvp => coalition.IsMember(kvp.Key)).Sum(kvp => kvp.Value)); }
internal static Coalition?GetSpawnPointCoalition(MissionTemplateRecord template, Side side, bool forceSide = false) { // No countries spawning restriction if (template.OptionsMission.Contains("SpawnAnywhere") && !forceSide) { return(null); } Coalition coalition = side == Side.Ally ? template.ContextPlayerCoalition : template.ContextPlayerCoalition.GetEnemy(); return(coalition); }
private bool CheckFilter(Coalition coalition) { if (hasApplyFilter[0]) { switch (coalition.Grade) { case 1: if (!filterGrade[0]) { return(true); } break; case 2: if (!filterGrade[1]) { return(true); } break; case 3: if (!filterGrade[2]) { return(true); } break; } } if (hasApplyFilter[1]) { string[] typeIndex = { "LightArmor", "HeavyArmor", "Machine", "Doll", "Remote", "CloseIn" }; bool isPass = false; for (int i = 0; i < filterType.Length; ++i) { if (filterType[i] && coalition.TypeCode.Contains(typeIndex[i])) { isPass = true; break; } } if (!isPass) { return(true); } } return(false); }
private void ProcessLogLine(string line) { Match m = RE_SPAWN.Match(line); if (m.Success) { string name = m.Groups["name"].Value; string country_id = m.Groups["country_id"].Value; Coalition coalition = CoalitionFor(country_id); playerCoalitions[name] = coalition; Console.WriteLine("Set player {0} to coalition {1} ", name, coalition); } }
public static Coalition GetOpposingCoalition(this Coalition coalition) { switch (coalition) { case Coalition.Redfor: return(Coalition.Bluefor); case Coalition.Bluefor: return(Coalition.Redfor); default: throw new ArgumentException($"Cannot determine opposing coalition for {coalition}"); } }
/// <summary> /// Picks a starting airbase for the player(s) /// </summary> /// <param name="mission">Mission for which the starting airbase must be set</param> /// <param name="template">Mission template to use</param> /// <param name="theaterDB">Theater database entry</param> /// <param name="objectiveDB">Objective database entry</param> /// <returns>Information about the starting airbase</returns> public DBEntryTheaterAirbase SelectStartingAirbase(DCSMission mission, MissionTemplate template, DBEntryTheater theaterDB, DBEntryObjective objectiveDB) { List <DBEntryTheaterAirbase[]> airbasesList = new List <DBEntryTheaterAirbase[]>(); // Select all airbases with enough parking spots int requiredParkingSpots = template.GetMissionPackageRequiredParkingSpots(); airbasesList.Add((from DBEntryTheaterAirbase ab in theaterDB.Airbases where ab.ParkingSpots.Length >= requiredParkingSpots select ab).ToArray()); // Select all airbases belonging to the proper coalition (unless all airbase belong to the same coalition) if ((template.TheaterRegionsCoalitions == CountryCoalition.Default) || (template.TheaterRegionsCoalitions == CountryCoalition.Inverted)) { Coalition requiredCoalition = template.TheaterRegionsCoalitions == CountryCoalition.Inverted ? mission.CoalitionEnemy : mission.CoalitionPlayer; airbasesList.Add((from DBEntryTheaterAirbase ab in airbasesList.Last() where ab.Coalition == requiredCoalition select ab).ToArray()); } // If mission must start near water, or some player start on a carrier, select all airbases near water if (objectiveDB.Flags.HasFlag(DBEntryObjectiveFlags.MustStartNearWater) || !string.IsNullOrEmpty(template.PlayerCarrier)) { airbasesList.Add((from DBEntryTheaterAirbase ab in airbasesList.Last() where ab.Flags.HasFlag(DBEntryTheaterAirbaseFlag.NearWater) select ab).ToArray()); } // If a particular airbase name has been specified and an airbase with this name exists, pick it if (!string.IsNullOrEmpty(template.TheaterStartingAirbase)) { string airbaseName = template.TheaterStartingAirbase.Trim(); if (airbaseName.Contains(",")) { airbaseName = airbaseName.Substring(airbaseName.IndexOf(',')).Trim(' ', ','); } airbasesList.Add((from DBEntryTheaterAirbase airbase in theaterDB.Airbases where airbase.Name == airbaseName select airbase).ToArray()); if (airbasesList.Last().Length == 0) { DebugLog.Instance.WriteLine($"Airbase \"{airbaseName}\" not found or airbase doesn't have enough parking spots. Selecting a random airbase instead.", 1, DebugLogMessageErrorLevel.Warning); } } // Check for valid airbases in all list, starting from the last one (with the most criteria filtered, and go back to the previous ones // as long as no airbase is found. for (int i = airbasesList.Count - 1; i >= 0; i--) { if (airbasesList[i].Length > 0) { return(Toolbox.RandomFrom(airbasesList[i])); } } throw new Exception($"No airbase found with {requiredParkingSpots} parking spots, cannot spawn all player aircraft."); }