Esempio n. 1
0
        private void CheckOwnerFlag()
        {
            if (Owner != null && !Owner.Deleted)
            {
                // need to check to see if any other questtoken items are owned
                // search the Owners top level pack for an xmlquest
                List <Item> list = XmlQuest.FindXmlQuest(Owner);

                if (list == null || list.Count == 0)
                {
                    // if none remain then flag the ower as having none
                    Owner.SetFlag(XmlQuest.CarriedXmlQuestFlag, false);
                }
            }
        }
Esempio n. 2
0
        private List <QuestStringHolder> FilteredHolders(string search, bool active, bool completed, bool notstarted, bool basequests, bool questsystems)
        {
            List <QuestStringHolder> holders = new List <QuestStringHolder>();

            if (search.Length > 0)
            {
                foreach (var quest in Quests.QuestHolders)
                {
                    if (!holders.Contains(quest) &&
                        (Insensitive.Contains(quest.Description, search) || Insensitive.Contains(quest.Name, search) ||
                         (quest.MobileName != null && Insensitive.Contains(quest.MobileName, search))))
                    {
                        holders.Add(quest);
                    }
                }
            }
            else
            {
                holders = Quests.QuestHolders;
            }
            List <QuestStringHolder> playerHolders = new List <QuestStringHolder>();

            if (!active || !completed || !notstarted)
            {
                if (active)
                {
                    foreach (var quest in holders)
                    {
                        if (!playerHolders.Contains(quest) && IsActiveQuest(mPlayer, quest))
                        {
                            playerHolders.Add(quest);
                        }
                    }
                }
                if (completed)
                {
                    foreach (var quest in holders)
                    {
                        if (!playerHolders.Contains(quest) && IsCompletedQuest(mPlayer, quest))
                        {
                            playerHolders.Add(quest);
                        }
                    }
                }
                if (notstarted)
                {
                    foreach (var quest in holders)
                    {
                        if (!playerHolders.Contains(quest) &&
                            (!IsActiveQuest(mPlayer, quest) && !IsCompletedQuest(mPlayer, quest)))
                        {
                            playerHolders.Add(quest);
                        }
                    }
                }
            }
            else
            {
                playerHolders = holders;
            }
            holders = new List <QuestStringHolder>();
            if (basequests)
            {
                foreach (var quest in playerHolders)
                {
                    if (!holders.Contains(quest) && quest.QuestType == "Base")
                    {
                        holders.Add(quest);
                    }
                }
            }
            if (questsystems)
            {
                foreach (var quest in playerHolders)
                {
                    if (!holders.Contains(quest) && quest.QuestType == "System")
                    {
                        holders.Add(quest);
                    }
                }
            }
            if (active)
            {
                List <Item> items = XmlQuest.FindXmlQuest(mPlayer);
                if (items != null && items.Count > 0)
                {
                    foreach (var item in items)
                    {
                        if (item is XmlQuestHolder)
                        {
                            XmlQuestHolder xml = (XmlQuestHolder)item;
                            holders.Add(new QuestStringHolder(xml.GetType(), xml.Name, xml.Description1, "XML", "Xml",
                                                              xml.Objective1));
                        }
                    }
                }
            }

            return(holders);
        }