Exemplo n.º 1
0
        /// <summary>
        /// Deserialization constructor.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <param name="ship">The ship.</param>
        internal MasteryShip(SerializableMasteryShip src, Ship ship) : base(src.Masteries.
                                                                            Count)
        {
            Ship = ship;
            // Add in sorted order 1-5
            var masteriesSorted = new List <Mastery>(src.Masteries.Count);

            foreach (var mastery in src.Masteries)
            {
                masteriesSorted.Add(new Mastery(this, mastery));
            }
            masteriesSorted.Sort();
            Items.AddRange(masteriesSorted);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Deserialization constructor.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <param name="ship">The ship.</param>
        internal MasteryShip(SerializableMasteryShip src, Ship ship)
            : base(src?.Masteries.Count ?? 0)
        {
            if (src == null)
            {
                return;
            }

            Ship = ship;

            foreach (SerializableMastery mastery in src.Masteries)
            {
                Items.Add(new Mastery(this, mastery));
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Generate the masteries datafile.
        /// </summary>
        internal static void GenerateDatafile()
        {
            Stopwatch stopwatch = Stopwatch.StartNew();

            Util.ResetCounters();

            Console.WriteLine();
            Console.Write(@"Generating masteries datafile... ");

            // Export the mastery ships
            List <SerializableMasteryShip> listOfMasteryShips = new List <SerializableMasteryShip>();

            foreach (IGrouping <int, DgmTypeMasteries> typeMastery in Database.DgmTypeMasteriesTable.GroupBy(x => x.ItemID))
            {
                SerializableMasteryShip masteryShip = new SerializableMasteryShip
                {
                    ID   = typeMastery.Key,
                    Name = Database.InvTypesTable[typeMastery.Key].Name
                };

                // Add masteries to mastery ship
                masteryShip.Masteries.AddRange(ExportMasteries(typeMastery).OrderBy(x => x.Grade));

                // Add mastery ship
                listOfMasteryShips.Add(masteryShip);
            }

            // Serialize
            MasteriesDatafile datafile = new MasteriesDatafile();

            datafile.MasteryShips.AddRange(listOfMasteryShips);

            Util.DisplayEndTime(stopwatch);

            Util.SerializeXml(datafile, DatafileConstants.MasteriesDatafile);
        }