Exemplo n.º 1
0
        private static void importCollection(CreatureCollection creatureCollection, List <Creature> newCreatures, string serverName)
        {
            if (Properties.Settings.Default.importChangeCreatureStatus)
            {
                // mark creatures that are no longer present as unavailable
                var removedCreatures = creatureCollection.creatures.Where(c => c.status == CreatureStatus.Available).Except(newCreatures);
                foreach (var c in removedCreatures)
                {
                    c.status = CreatureStatus.Unavailable;
                }

                // mark creatures that re-appear as available (due to server transfer / obelisk / etc)
                var readdedCreatures = creatureCollection.creatures.Where(c => c.status == CreatureStatus.Unavailable || c.status == CreatureStatus.Obelisk).Intersect(newCreatures);
                foreach (var c in readdedCreatures)
                {
                    c.status = CreatureStatus.Available;
                }
            }

            newCreatures.ForEach(creature =>
            {
                creature.server = serverName;
            });
            creatureCollection.mergeCreatureList(newCreatures, true);
        }