示例#1
0
        public void OnForensicEval(Mobile m)
        {
            if (!m.Player)
            {
                return;
            }

            GoingGumshoeQuest2 quest = QuestHelper.GetQuest <GoingGumshoeQuest2>((PlayerMobile)m);

            if (quest != null)
            {
                m.PrivateOverheadMessage(MessageType.Regular, 0x47E, 1158571, m.NetState); // *You examine the headstone...*
                m.SendLocalizedMessage(1158562, null, 0x23);                               // The damage to the epitaph seems deliberate.  Using your training from Inspector Jasper you have found a hidden message among the scratches. You recreate the original epitaph in your mind's eye...

                m.SendSound(quest.UpdateSound);

                Gump gump = new Gump(50, 50);

                gump.AddImage(0, 0, 0x66);
                gump.AddHtmlLocalized(47, 60, 146, 160, GumpLocalization, false, false);

                m.SendGump(gump);

                SetPrerequisite(quest);
            }
            else
            {
                m.PrivateOverheadMessage(MessageType.Regular, 0x47E, 1158563, m.NetState); // *It appears to be a normal, yet oddly damaged, headstone. The epitaph is illegible..*
            }
        }
示例#2
0
        public void OnForensicEval(Mobile m)
        {
            if (!m.Player)
            {
                return;
            }

            GoingGumshoeQuest2 quest = QuestHelper.GetQuest <GoingGumshoeQuest2>((PlayerMobile)m);

            if (quest != null)
            {
                if (HasFoundClue(quest))
                {
                    m.SendLocalizedMessage(1158613); // You have already documented this clue.
                }
                else
                {
                    m.PrivateOverheadMessage(MessageType.Regular, 0x47E, 1157722, "Forensics", m.NetState); // *Your proficiency in ~1_SKILL~ reveals more about the item*
                    m.SendLocalizedMessage(1158612, null, 0x23);                                            // You have identified a clue! This item seems pertinent to the investigation!

                    m.SendSound(quest.UpdateSound);
                    m.SendSound(m.Female ? 0x30B : 0x41A);

                    m.CloseGump(typeof(GumshoeItemGump));
                    m.SendGump(new GumshoeItemGump(ItemID, Hue, "a dust pile", 1158617, null));

                    /*The dust seems to have have settled in a distinct pattern around whatever once was placed at this location.
                     * Whatever it was, it was certainly small enough to be taken away in a hurry.*/

                    SetFoundClue(quest);
                }
            }
        }
示例#3
0
        public void OnForensicEval(Mobile m)
        {
            if (!m.Player)
            {
                return;
            }

            GoingGumshoeQuest2 quest = QuestHelper.GetQuest <GoingGumshoeQuest2>((PlayerMobile)m);

            if (quest != null)
            {
                if (HasFoundClue1(quest))
                {
                    m.SendLocalizedMessage(1158613); // You have already documented this clue.
                }
                else
                {
                    m.PrivateOverheadMessage(MessageType.Regular, 0x47E, 1157722, "Forensics", m.NetState); // *Your proficiency in ~1_SKILL~ reveals more about the item*
                    m.SendLocalizedMessage(1158612, null, 0x23);                                            // You have identified a clue! This item seems pertinent to the investigation!

                    m.SendSound(quest.UpdateSound);
                    m.SendSound(m.Female ? 0x30B : 0x41A);

                    m.CloseGump(typeof(GumshoeItemGump));
                    m.SendGump(new GumshoeItemGump(m, ItemID, Hue, "book", 1158577, null));

                    SetFoundClue1(quest);
                }
            }
        }
示例#4
0
        public void OnForensicEval(Mobile m)
        {
            if (!m.Player)
            {
                return;
            }

            GoingGumshoeQuest2 quest = QuestHelper.GetQuest <GoingGumshoeQuest2>((PlayerMobile)m);

            if (quest != null && CheckPrerequisite(quest))
            {
                m.PrivateOverheadMessage(MessageType.Regular, 0x47E, 1158559, m.NetState); // *You discover a hidden trap door!*
                m.SendLocalizedMessage(1158611, null, 0x23);                               // It seems a trap door has been hidden in some false pavers. The heavy wooden door is secured with a rotating combination lock that accepts alpha-numeric characters. You'll need to figure out the passcode to unlock it...

                m.SendSound(quest.UpdateSound);

                HasBeenExamined = true;
                ItemID          = 0xA1CC;

                if (HideTimer != null)
                {
                    HideTimer.Stop();
                    HideTimer = null;

                    HideTimer = Timer.DelayCall(TimeSpan.FromMinutes(20), () => Hide());
                }
            }
        }
示例#5
0
        public void SetPrerequisite(GoingGumshoeQuest2 quest)
        {
            switch (GumpLocalization)
            {
            case 1158607: quest.VisitedHeastone1 = true; break;

            case 1158608: quest.VisitedHeastone2 = true; break;

            case 1158609: quest.VisitedHeastone3 = true; break;

            case 1158610: quest.VisitedHeastone4 = true; break;
            }
        }
示例#6
0
        private bool CheckPrerequisite(GoingGumshoeQuest2 quest)
        {
            switch (Keyword.ToLower())
            {
            case "boreas": return(quest.VisitedHeastone1);    // brit

            case "moriens": return(quest.VisitedHeastone2);   // vesper

            case "carthax": return(quest.VisitedHeastone3);   // moonglow

            case "tenebrae": return(quest.VisitedHeastone4);  // yew
            }

            return(false);
        }
示例#7
0
        private void SetFoundClue(GoingGumshoeQuest2 quest)
        {
            if (Door == null)
            {
                return;
            }

            switch (Door.Keyword.ToLower())
            {
            case "boreas": quest.ClueDust1 = true; break;

            case "moriens": quest.ClueDust2 = true; break;

            case "carthax": quest.ClueDust3 = true; break;

            case "tenebrae": quest.ClueDust4 = true; break;
            }
        }
示例#8
0
        public override void OnDoubleClick(Mobile m)
        {
            if (m is PlayerMobile mobile && InRange(mobile.Location, 5))
            {
                GoingGumshoeQuest2 quest = QuestHelper.GetQuest <GoingGumshoeQuest2>(mobile);

                if (quest != null)
                {
                    mobile.SendLocalizedMessage(1158606, null, 0x23); /* You've spoken to the Grave Digger and have paid your respects to those who
                                                                       * perished in the fight against the titans. How someone could defile a grave
                                                                       * stone, you have no idea. You decide to take a closer look... */

                    mobile.PlaySound(quest.UpdateSound);

                    mobile.SendGump(new InternalGump());
                }
            }
        }
示例#9
0
        private bool HasFoundClue(GoingGumshoeQuest2 quest)
        {
            if (Door == null)
            {
                return(false);
            }

            switch (Door.Keyword.ToLower())
            {
            case "boreas": return(quest.ClueDust1);

            case "moriens": return(quest.ClueDust2);

            case "carthax": return(quest.ClueDust3);

            case "tenebrae": return(quest.ClueDust4);
            }

            return(false);
        }
示例#10
0
        public void OnInscribeTarget(Mobile m)
        {
            GoingGumshoeQuest2 quest = QuestHelper.GetQuest <GoingGumshoeQuest2>((PlayerMobile)m);

            if (quest != null)
            {
                if (HasFoundClue2(quest))
                {
                    m.SendLocalizedMessage(1158613); // You have already documented this clue.
                }
                else
                {
                    m.PrivateOverheadMessage(MessageType.Regular, 0x47E, 1158582, m.NetState); // *You copy several pages onto some parchment and roll it up...*
                    m.SendLocalizedMessage(1158612, null, 0x23);                               // You have identified a clue! This item seems pertinent to the investigation!
                    m.AddToBackpack(new RolledParchment(GetPage()));
                    m.PlaySound(0x249);

                    m.SendSound(quest.UpdateSound);

                    SetFoundClue2(quest);
                }
            }
        }
示例#11
0
        public override void OnDoubleClick(Mobile m)
        {
            if (m is PlayerMobile && m.InRange(Location, 5))
            {
                GoingGumshoeQuest quest = QuestHelper.GetQuest <GoingGumshoeQuest>((PlayerMobile)m);

                if (quest != null && quest.Completed)
                {
                    quest.GiveRewards();

                    BaseQuest newquest = QuestHelper.RandomQuest((PlayerMobile)m, new Type[] { typeof(GoingGumshoeQuest2) }, this);

                    if (newquest != null)
                    {
                        m.SendGump(new MondainQuestGump(newquest));
                    }
                }
                else
                {
                    GoingGumshoeQuest2 quest2 = QuestHelper.GetQuest <GoingGumshoeQuest2>((PlayerMobile)m);

                    if (quest2 != null)
                    {
                        if (quest2.IsComplete)
                        {
                            quest2.Objectives[0].CurProgress++;
                            quest2.GiveRewards(); // TODO: Does this quest end here?

                            BaseQuest newquest = QuestHelper.RandomQuest((PlayerMobile)m, new Type[] { typeof(GoingGumshoeQuest3) }, this);

                            if (newquest != null)
                            {
                                m.SendGump(new MondainQuestGump(newquest));
                            }
                        }
                        else
                        {
                            m.SendGump(new MondainQuestGump(quest2, MondainQuestGump.Section.InProgress, false));
                            quest2.InProgress();
                        }
                    }
                    else
                    {
                        GoingGumshoeQuest3 quest3 = QuestHelper.GetQuest <GoingGumshoeQuest3>((PlayerMobile)m);

                        if (quest3 != null)
                        {
                            if (quest3.IsComplete)
                            {
                                quest3.Objectives[0].CurProgress++;
                                quest3.GiveRewards(); // TODO: Does this quest end here?

                                BaseQuest newquest = QuestHelper.RandomQuest((PlayerMobile)m, new Type[] { typeof(GoingGumshoeQuest4) }, this);

                                if (newquest != null)
                                {
                                    m.SendGump(new MondainQuestGump(newquest));
                                }
                            }
                            else
                            {
                                m.SendGump(new MondainQuestGump(quest3, MondainQuestGump.Section.InProgress, false));
                                quest3.InProgress();
                            }
                        }
                        else
                        {
                            GoingGumshoeQuest4 quest4 = QuestHelper.GetQuest <GoingGumshoeQuest4>((PlayerMobile)m);

                            if (quest4 != null && !quest4.IsComplete)
                            {
                                m.SendGump(new MondainQuestGump(quest4, MondainQuestGump.Section.InProgress, false));
                                quest4.InProgress();
                            }
                            else if (quest4 == null)
                            {
                                SayTo(m, 1080107); // I'm sorry, I have nothing for you at this time.
                            }
                        }
                    }
                }
            }
        }