Ejemplo n.º 1
0
        /// <summary>
        /// Sends all available quest givers for character.
        /// </summary>
        /// <param name="s">The session.</param>
        /// <param name="p">Packet BRequestRetrievePersistentData or BRequestRegionMap.</param>
        public static void SendResponseQuestGivers(Session s, Package p)
        {
            Character ObjCharacter = s.Player.Empire.CurrentCharacter;

            int           Currentregion         = ObjCharacter.Currentregion;
            List <string> ExcludedCivilizations = RegionHelper.FilterQuestgiversbyCivilization(ObjCharacter.CivId);

            foreach (Questgiver ObjQuestgiver in Database.Questgivers.Values.Where(key => (!ExcludedCivilizations.Contains(TextHelper.SubstringFirst(key.Name, "_", true))) && (key.Region == Currentregion || key.Altregion == Currentregion)))
            {
                if (ObjQuestgiver.IsAvailableToAll())
                {
                    BRequestRefreshQuestGiverSpawns.SendResponseGiverSpawn(s, p, ObjQuestgiver);
                }
                else if (ObjCharacter.Questgivers.Items.TryGetValue(ObjQuestgiver.Name, out CharacterQuestgiver ObjCharacterQuestgiver))
                {
                    if (ObjCharacterQuestgiver.IsAvailable())
                    {
                        BRequestRefreshQuestGiverSpawns.SendResponseGiverSpawn(s, p, ObjQuestgiver);
                    }
                }
            }
        }