public override void OnTalk(PlayerMobile player, bool contextMenu) { Direction = GetDirectionTo(player); QuestSystem qs = player.Quest; if (qs is KissOfTheSerpentMistressQuest) { if (qs.IsObjectiveInProgress(typeof(SlayCalcifinaObjective))) { qs.AddConversation(new DuringSlayCalcifinaConversation()); } } else { KissOfTheSerpentMistressQuest newQuest = new KissOfTheSerpentMistressQuest(player); bool inRestartPeriod = false; if (qs != null) { if (contextMenu) { player.SendMessage("I understand that you're eager but perhaps you might outta finish that there quest you started earlier!"); } } else if (QuestSystem.CanOfferQuest(player, typeof(KissOfTheSerpentMistressQuest), out inRestartPeriod)) { newQuest.SendOffer(); } else if (inRestartPeriod && contextMenu) { player.SendMessage("Hopefully she is in a far better place. Devoid of heartaches and despair."); } } }
public override void OnDoubleClick(Mobile from) { PlayerMobile player = from as PlayerMobile; if (player != null && player.InRange(GetWorldLocation(), 2)) { QuestSystem qs = player.Quest; if (qs is KissOfTheSerpentMistressQuest) { QuestObjective obj = qs.FindObjective(typeof(ObtainBowAndJournalObjective)); if ((obj != null && !obj.Completed) || KissOfTheSerpentMistressQuest.HasCalcifinasJournal(player)) { Item journal = new CalcifinasJournal(); if (player.PlaceInBackpack(journal)) { player.SendMessage("You take the journal from the dresser and place it into your pack."); if (obj != null && !obj.Completed) { obj.Complete(); } } else { player.SendMessage("You find a journal, but can't pick it up because your pack is too full. Come back when you have more room in your pack."); journal.Delete(); } return; } } } base.OnDoubleClick(from); }