Example #1
0
        public static bool CheckItem(PlayerMobile player, Item item)
        {
            for (int i = player.Quests.Count - 1; i >= 0; i--)
            {
                BaseQuest quest = player.Quests[i];

                for (int j = quest.Objectives.Count - 1; j >= 0; j--)
                {
                    BaseObjective objective = quest.Objectives[j];

                    if (objective is ObtainObjective)
                    {
                        ObtainObjective obtain = (ObtainObjective)objective;

                        if (obtain.Update(item))
                        {
                            if (quest.Completed)
                            {
                                quest.OnCompleted();
                            }
                            else if (obtain.Completed)
                            {
                                player.PlaySound(quest.UpdateSound);
                            }

                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
Example #2
0
        public static bool CheckSkill(PlayerMobile player, Skill skill)
        {
            for (int i = player.Quests.Count - 1; i >= 0; i--)
            {
                BaseQuest quest = player.Quests[i];

                for (int j = quest.Objectives.Count - 1; j >= 0; j--)
                {
                    BaseObjective objective = quest.Objectives[j];

                    if (objective is ApprenticeObjective)
                    {
                        ApprenticeObjective apprentice = (ApprenticeObjective)objective;

                        if (apprentice.Update(skill))
                        {
                            if (quest.Completed)
                            {
                                quest.OnCompleted();
                            }
                            else if (apprentice.Completed)
                            {
                                player.PlaySound(quest.UpdateSound);
                            }
                        }
                    }
                }
            }

            return(false);
        }
Example #3
0
        public static bool OnCalmed(PlayerMobile player, Mobile target)
        {
            for (int i = player.Quests.Count - 1; i >= 0; i--)
            {
                BaseQuest quest = player.Quests[i];

                for (int j = quest.Objectives.Count - 1; j >= 0; j--)
                {
                    if (quest.Objectives[j] is CalmObjective)
                    {
                        CalmObjective obj = (CalmObjective)quest.Objectives[j];

                        if (obj.Update(target))
                        {
                            if (quest.Completed)
                            {
                                quest.OnCompleted();
                            }
                            if (obj.Completed)
                            {
                                player.PlaySound(quest.UpdateSound);
                            }

                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
Example #4
0
        public static bool CheckCreature(PlayerMobile player, BaseCreature creature)
        {
            for (int i = player.Quests.Count - 1; i >= 0; i--)
            {
                BaseQuest quest = player.Quests[i];

                for (int j = quest.Objectives.Count - 1; j >= 0; j--)
                {
                    if (quest.Objectives[j] is SlayObjective)
                    {
                        SlayObjective slay = (SlayObjective)quest.Objectives[j];

                        if (slay.Update(creature))
                        {
                            if (quest.Completed)
                            {
                                quest.OnCompleted();
                            }
                            else if (slay.Completed)
                            {
                                player.PlaySound(quest.UpdateSound);
                            }

                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
Example #5
0
        public static bool OnProvoked(PlayerMobile player, Mobile source, Mobile target)
        {
            for (int i = player.Quests.Count - 1; i >= 0; i--)
            {
                BaseQuest quest = player.Quests[i];

                for (int j = quest.Objectives.Count - 1; j >= 0; j--)
                {
                    if (quest.Objectives[j] is InciteObjective)
                    {
                        InciteObjective obj = (InciteObjective)quest.Objectives[j];

                        if (obj.SourceTypes.Any(t => t.IsAssignableFrom(source.GetType())))
                        {
                            if (obj.Update(target))
                            {
                                if (quest.Completed)
                                {
                                    quest.OnCompleted();
                                }
                                if (obj.Completed)
                                {
                                    player.PlaySound(quest.UpdateSound);
                                }

                                return(true);
                            }
                        }
                    }
                }
            }

            return(false);
        }
        public override int CompleteMessage => 1157539;  // // You've completed an Animal Training quest! Visit an Animal Trainer to continue!

        public static void CheckTame(PlayerMobile pm)
        {
            if (pm == null)
            {
                return;
            }

            BaseQuest quest = QuestHelper.GetQuest(pm, typeof(TamingPetQuest));

            if (quest != null && !quest.Completed)
            {
                quest.Objectives[0].CurProgress++;
                quest.OnCompleted();
            }
        }
Example #7
0
        public static void CompleteQuest(PlayerMobile from, BaseQuest quest)
        {
            if (quest == null)
                return;
				
            for (int i = 0; i < quest.Objectives.Count; i ++)
            {
                BaseObjective obj = quest.Objectives[i];
				
                obj.Complete();
            }
			
            from.SendLocalizedMessage(1046258, null, 0x23); // Your quest is complete.							
            from.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true));							
            from.PlaySound(quest.CompleteSound);
			
            quest.OnCompleted();
        }
Example #8
0
        public static bool DeliveryArrived(PlayerMobile player, BaseVendor vendor)
        {
            for (int i = 0; i < player.Quests.Count; i++)
            {
                BaseQuest quest = player.Quests[i];

                for (int j = 0; j < quest.Objectives.Count; j++)
                {
                    BaseObjective objective = quest.Objectives[j];

                    if (objective is DeliverObjective)
                    {
                        DeliverObjective deliver = (DeliverObjective)objective;

                        if (deliver.Update(vendor))
                        {
                            if (quest.Completed)
                            {
                                player.SendLocalizedMessage(1046258, null, 0x23);                                   // Your quest is complete.
                                player.PlaySound(quest.CompleteSound);

                                quest.OnCompleted();

                                player.CloseGump(typeof(BaseQuestGump));

                                if (vendor is MondainQuester)
                                {
                                    player.SendGump(new MLQuestFinishGump(player, quest, (MondainQuester)vendor));
                                }
                                else
                                {
                                    player.SendGump(new MLQuestFinishGump(player, quest));
                                }
                            }

                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
Example #9
0
        public static void CompleteQuest(PlayerMobile from, BaseQuest quest)
        {
            if (quest == null)
            {
                return;
            }

            for (int i = 0; i < quest.Objectives.Count; i++)
            {
                BaseObjective obj = quest.Objectives[i];

                obj.Complete();
            }

            from.SendLocalizedMessage(1046258, null, 0x23);               // Your quest is complete.
            from.CloseGump(typeof(BaseQuestGump));
            from.SendGump(new MLQuestFinishGump(from, quest));
            from.PlaySound(quest.CompleteSound);

            quest.OnCompleted();
        }
        public bool HasQuest(PlayerMobile pm)
        {
            if (pm.Quests == null)
            {
                return(false);
            }

            for (int i = 0; i < pm.Quests.Count; i++)
            {
                BaseQuest quest = pm.Quests[i];

                if (quest.Quester == this)
                {
                    for (int j = 0; j < quest.Objectives.Count; j++)
                    {
                        if (quest.Objectives[j].Update(pm))
                        {
                            quest.Objectives[j].Complete();
                        }
                    }

                    if (quest.Completed)
                    {
                        quest.OnCompleted();
                        pm.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true));
                    }
                    else
                    {
                        pm.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false));
                        quest.InProgress();
                    }

                    return(true);
                }
            }
            return(false);
        }
Example #11
0
        public static void CompleteQuest(PlayerMobile from, BaseQuest quest)
        {
            if (quest == null)
                return;
				
            for (int i = 0; i < quest.Objectives.Count; i ++)
            {
                BaseObjective obj = quest.Objectives[i];
				
                obj.Complete();
            }
			
            from.SendLocalizedMessage(1046258, null, 0x23); // Your quest is complete.							
            from.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true));							
            from.PlaySound(quest.CompleteSound);
			
            quest.OnCompleted();
        }