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); }