public SortieMapFilterKey(IMapMasterInfo rpMap, EventMapDifficulty rpDifficulty = EventMapDifficulty.None) { Map = rpMap; IsEventMap = rpDifficulty != EventMapDifficulty.None; EventMapDifficulty = rpDifficulty; }
public IList<EnemyFleet> GetEncounters(int rpMap, int rpNode, EventMapDifficulty? rpDifficulty) { var rFleets = new Dictionary<long, EnemyFleet>(); using (var rCommand = r_Connection.CreateCommand()) { rCommand.CommandText = "SELECT composition.id AS id, group_concat(ship) AS ships, formation FROM fleet JOIN composition ON fleet.composition = composition.id WHERE map = @map AND node = @node AND difficulty = @difficulty GROUP BY id, formation;"; rCommand.Parameters.AddWithValue("@map", rpMap); rCommand.Parameters.AddWithValue("@node", rpNode); rCommand.Parameters.AddWithValue("@difficulty", (int?)rpDifficulty ?? 0); using (var rReader = rCommand.ExecuteReader()) while (rReader.Read()) { var rID = Convert.ToInt64(rReader["id"]); EnemyFleet rFleet; if (!rFleets.TryGetValue(rID, out rFleet)) { var rShips = (string)rReader["ships"]; var rShipIDs = rShips.Split(',').Select(int.Parse); rFleets.Add(rID, rFleet = new EnemyFleet(rShipIDs)); } var rFormation = (Formation)Convert.ToInt32(rReader["formation"]); rFleet.Formations.Add(rFormation); } } return rFleets.Values.ToList(); }