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..* } }
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); } } }
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); } } }
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()); } } }
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; } }
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); }
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; } }
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()); } } }
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); }
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); } } }
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. } } } } } }