Esempio n. 1
0
        public void AddQuest(int id, BioQuest quest = null)
        {
            if (Quests == null)
            {
                Quests = InitCollection <KeyValuePair <int, BioQuest> >();
            }

            if (Quests.Any(pair => pair.Key == id))
            {
                return;
            }

            if (quest == null)
            {
                quest = new BioQuest();
            }

            quest.Goals     = InitCollection(quest.Goals);
            quest.PlotItems = InitCollection(quest.PlotItems);
            quest.Tasks     = InitCollection(quest.Tasks);

            var questPair = new KeyValuePair <int, BioQuest>(id, quest);

            Quests.Add(questPair);

            SelectedQuest = questPair;
        }
Esempio n. 2
0
            public Location ToLocation()
            {
                var location = new Location(X, Y, Name, Description, FilePaths.NormalizePath(Image));

                if (Monsters?.Any() ?? false)
                {
                    foreach (var encounter in Monsters)
                    {
                        var availableMonster = MonsterFactory.Get(encounter.Id);
                        if (availableMonster != null)
                        {
                            location.AddEncounter(encounter.Id, encounter.Chance);
                        }
                        else
                        {
                            Trace.TraceWarning($"Location({Name}) has monster {encounter.Id} that could not be found");
                        }
                    }
                    ;
                }
                ;

                if (Quests?.Any() ?? false)
                {
                    foreach (var quest in Quests)
                    {
                        var availableQuest = QuestFactory.FindQuest(quest.Id);
                        if (availableQuest != null)
                        {
                            location.AddQuest(availableQuest);
                        }
                        else
                        {
                            Trace.TraceWarning($"Location({Name}) has quest {quest.Id} that could not be found");
                        }
                    }
                    ;
                }
                ;

                if (Trader > 0)
                {
                    var availableTader = TraderFactory.GetTrader(Trader);
                    if (availableTader != null)
                    {
                        location.TraderHere = availableTader;
                    }
                    else
                    {
                        Trace.TraceWarning($"Location({Name}) has tracer '{Trader}' that could not be found");
                    }
                }
                ;

                return(location);
            }
        public bool AcceptQuest(Quest lpQuest)
        {
            lock (syncLock)
            {
                if (!Quests.Any(i => i.Name == lpQuest.Name))
                {
                    Quests.Add(lpQuest);

                    return(true);
                }
            }

            return(false);
        }
Esempio n. 4
0
        public bool AcceptQuest(Quest quest)
        {
            lock (Quests)
            {
                if (!Quests.Any(i => i.Name == quest.Name))
                {
                    Quests.Add(quest);

                    return(true);
                }
            }

            return(false);
        }
Esempio n. 5
0
        public void RemoveQuest()
        {
            if (Quests == null || SelectedQuest.Value == null)
            {
                return;
            }

            var index = Quests.IndexOf(SelectedQuest);

            if (!Quests.Remove(SelectedQuest))
            {
                return;
            }

            if (Quests.Any())
            {
                SelectedQuest = ((index - 1) >= 0)
                                        ? Quests[index - 1]
                                        : Quests.First();
            }
        }
Esempio n. 6
0
 protected virtual bool DoQuests(string rawParameters, params CommandParameter[] parameters)
 {
     if (parameters.Length == 0)
     {
         StringBuilder sb = new StringBuilder();
         sb.AppendLine("Quests:");
         if (!Quests.Any())
         {
             sb.AppendLine("None.");
         }
         else
         {
             int id = 0;
             foreach (IQuest quest in Quests)
             {
                 sb.Append(BuildQuestSummary(quest, id));
                 id++;
             }
         }
         Page(sb);
     }
     else
     {
         int    id    = parameters[0].AsNumber;
         IQuest quest = id > 0 ? Quests.ElementAtOrDefault(id - 1) : null; // index starts at 0
         if (quest == null)
         {
             Send("No such quest.");
             return(true);
         }
         StringBuilder sb = new StringBuilder();
         sb.AppendFormatLine($"{quest.Blueprint.Title}: {(quest.IsCompleted ? "%g%complete%x%" : "in progress")}");
         sb.AppendLine(quest.Blueprint.Description);
         sb.Append(BuildQuestObjectives(quest));
         Page(sb);
     }
     return(true);
 }
        public bool HasQuest(string lpName)
        {
            var result = Quests.Any(i => i.Name == lpName);

            return(result);
        }
 public bool HasCompletedQuest(string lpName)
 {
     return(Quests.Any(i => i.Name == lpName && i.Completed));
 }
Esempio n. 9
0
 private int GetMaxQuestId()
 {
     return(Quests.Any() ? Quests.Max(page => page.Key) : -1);
 }
Esempio n. 10
0
 public bool HasThisQuest(Quest quest)
 {
     return(Quests.Any(pq => pq.Details.ID == quest.ID));
 }