Example #1
0
        public override void OnTalk(PlayerMobile player, bool contextMenu)
        {
            Direction = GetDirectionTo(player);

            QuestSystem qs = player.Quest;

            if (qs is SweetChildOfMineQuest)
            {
                QuestObjective obj = qs.FindObjective(typeof(GoToIguanaCoveObjective));

                if (qs.IsObjectiveInProgress(typeof(GoToIguanaCoveObjective)))
                {
                    Say("*blows nose*");
                    PlaySound(781);                       //play blows nose
                    Animate(34, 5, 1, true, false, 0);

                    qs.AddConversation(new DuringGoToIguanaCoveConversation());
                }
                else
                {
                    obj = qs.FindObjective(typeof(ReturnToDebbieObjective));

                    if (qs.IsObjectiveInProgress(typeof(ReturnToDebbieObjective)))
                    {
                        PlaySound(803);                            //play oh!
                        Animate(33, 5, 1, true, false, 0);
                        obj.Complete();
                    }
                }
            }
            else
            {
                QuestSystem newQuest        = new SweetChildOfMineQuest(player);
                bool        inRestartPeriod = false;

                if (qs != null)
                {
                    newQuest.AddConversation(new DontOfferConversation());
                }
                else if (QuestSystem.CanOfferQuest(player, typeof(SweetChildOfMineQuest), out inRestartPeriod))
                {
                    PlaySound(787);                       //play cries
                    Animate(34, 5, 1, true, false, 0);
                    newQuest.SendOffer();
                }
                else if (inRestartPeriod)
                {
                    PlaySound(816);                       //play sigh
                    Animate(32, 5, 1, true, false, 0);
                    newQuest.AddConversation(new RecentlyFinishedConversation());
                }
            }
        }
        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 SweetChildOfMineQuest)
                {
                    QuestObjective obj = qs.FindObjective(typeof(RetrieveBabyObjective));

                    if ((obj != null && !obj.Completed) || SweetChildOfMineQuest.HasBaby(player))
                    {
                        Item item = new Baby();

                        if (player.PlaceInBackpack(item))
                        {
                            player.SendMessage("Turns out this baby actually belongs to someone. You better take her.");
                            player.PlaySound(0x8E);

                            if (obj != null && !obj.Completed)
                            {
                                obj.Complete();
                            }
                        }
                        else
                        {
                            player.SendMessage("The harsh noise coming from within the chest is enough to repel you back.");
                            item.Delete();
                        }

                        return;
                    }
                }
            }

            base.OnDoubleClick(from);
        }
        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 SweetChildOfMineQuest)
                {
                    QuestObjective obj = qs.FindObjective(typeof(FindKeyObjective));

                    if ((obj != null && !obj.Completed) || SweetChildOfMineQuest.HasIguanaCoveKey(player))
                    {
                        Item item = new IguanaCoveKey();

                        if (player.PlaceInBackpack(item))
                        {
                            player.SendMessage("You take the key from the barrel and place it in your pack.");

                            if (obj != null && !obj.Completed)
                            {
                                obj.Complete();
                            }
                        }
                        else
                        {
                            player.SendMessage("You find a key and have no immediate use for it. At least for now.");
                            item.Delete();
                        }

                        return;
                    }
                }
            }

            base.OnDoubleClick(from);
        }