Example #1
0
        public bool CanSeeQuest(ref WS_PlayerData.CharacterObject objCharacter)
        {
            bool retValue = true;

            checked
            {
                if (objCharacter.Level + 6 < Level_Start)
                {
                    retValue = false;
                }
            }
            if (RequiredClass > 0 && RequiredClass != (int)objCharacter.Classe)
            {
                retValue = false;
            }
            if (ZoneOrSort < 0)
            {
                WS_Quests tmpQuest = new WS_Quests();
                byte      reqSort  = tmpQuest.ClassByQuestSort(checked (-ZoneOrSort));
                if (reqSort > 0 && reqSort != (uint)objCharacter.Classe)
                {
                    retValue = false;
                }
            }
            if (RequiredRace != 0 && (RequiredRace & objCharacter.RaceMask) == 0)
            {
                retValue = false;
            }
            if (RequiredTradeSkill > 0)
            {
                if (!objCharacter.Skills.ContainsKey(RequiredTradeSkill))
                {
                    retValue = false;
                }
                if (objCharacter.Skills[RequiredTradeSkill].Current < RequiredTradeSkillValue)
                {
                    retValue = false;
                }
            }
            if (RequiredMinReputation_Faction > 0 && objCharacter.GetReputationValue(RequiredMinReputation_Faction) < RequiredMinReputation)
            {
                retValue = false;
            }
            if (RequiredMaxReputation_Faction > 0 && objCharacter.GetReputationValue(RequiredMaxReputation_Faction) >= RequiredMaxReputation)
            {
                retValue = false;
            }
            if (PreQuests.Count > 0)
            {
                foreach (int QuestID in PreQuests)
                {
                    if (QuestID > 0)
                    {
                        if (!objCharacter.QuestsCompleted.Contains(QuestID))
                        {
                            retValue = false;
                        }
                    }
                    else if (QuestID < 0 && objCharacter.QuestsCompleted.Contains(QuestID))
                    {
                        retValue = false;
                    }
                }
            }
            if (objCharacter.QuestsCompleted.Contains(ID))
            {
                retValue = false;
            }
            if (objCharacter.IsQuestInProgress(ID))
            {
                retValue = false;
            }
            return(retValue);
        }