示例#1
0
        public override void OnDoubleClick(Mobile from)
        {
            var player = from as PlayerMobile;

            if (player != null && player.InRange(GetWorldLocation(), 2))
            {
                var qs = player.Quest;

                if (qs is UzeraanTurmoilQuest)
                {
                    var obj = qs.FindObjective(typeof(GetDaemonBloodObjective));

                    if ((obj != null && !obj.Completed) || UzeraanTurmoilQuest.HasLostDaemonBlood(player))
                    {
                        Item vial = new QuestDaemonBlood();

                        if (player.PlaceInBackpack(vial))
                        {
                            player.SendLocalizedMessage(1049331, "", 0x22);
                            // You take a vial of blood from the chest and put it in your pack.

                            if (obj != null && !obj.Completed)
                            {
                                obj.Complete();
                            }
                        }
                        else
                        {
                            player.SendLocalizedMessage(1049338, "", 0x22);
                            // You find a vial of blood, but can't pick it up because your pack is too full.  Come back when you have more room in your pack.
                            vial.Delete();
                        }

                        return;
                    }
                }
            }

            base.OnDoubleClick(from);
        }
示例#2
0
        public override void OnTalk(PlayerMobile player, bool contextMenu)
        {
            QuestSystem qs = player.Quest;

            if (qs is UzeraanTurmoilQuest)
            {
                if (UzeraanTurmoilQuest.HasLostScrollOfPower(player))
                {
                    qs.AddConversation(new LostScrollOfPowerConversation(true));
                }
                else if (UzeraanTurmoilQuest.HasLostFertileDirt(player))
                {
                    qs.AddConversation(new LostFertileDirtConversation(true));
                }
                else if (UzeraanTurmoilQuest.HasLostDaemonBlood(player))
                {
                    qs.AddConversation(new LostDaemonBloodConversation());
                }
                else if (UzeraanTurmoilQuest.HasLostDaemonBone(player))
                {
                    qs.AddConversation(new LostDaemonBoneConversation());
                }
                else
                {
                    if (player.Profession == 2) // magician
                    {
                        Container backpack = player.Backpack;

                        if (backpack == null ||
                            backpack.GetAmount(typeof(BlackPearl)) < 30 ||
                            backpack.GetAmount(typeof(Bloodmoss)) < 30 ||
                            backpack.GetAmount(typeof(Garlic)) < 30 ||
                            backpack.GetAmount(typeof(Ginseng)) < 30 ||
                            backpack.GetAmount(typeof(MandrakeRoot)) < 30 ||
                            backpack.GetAmount(typeof(Nightshade)) < 30 ||
                            backpack.GetAmount(typeof(SulfurousAsh)) < 30 ||
                            backpack.GetAmount(typeof(SpidersSilk)) < 30)
                        {
                            qs.AddConversation(new FewReagentsConversation());
                        }
                    }

                    QuestObjective obj = qs.FindObjective(typeof(FindUzeraanBeginObjective));

                    if (obj != null && !obj.Completed)
                    {
                        obj.Complete();
                    }
                    else
                    {
                        obj = qs.FindObjective(typeof(FindUzeraanFirstTaskObjective));

                        if (obj != null && !obj.Completed)
                        {
                            obj.Complete();
                        }
                        else
                        {
                            obj = qs.FindObjective(typeof(FindUzeraanAboutReportObjective));

                            if (obj != null && !obj.Completed)
                            {
                                Container cont = GetNewContainer();

                                if (player.Profession == 2) // magician
                                {
                                    cont.DropItem(new MarkScroll(5));
                                    cont.DropItem(new RecallScroll(5));
                                    for (int i = 0; i < 5; i++)
                                    {
                                        cont.DropItem(new RecallRune());
                                    }
                                }
                                else
                                {
                                    cont.DropItem(new Gold(300));
                                    for (int i = 0; i < 6; i++)
                                    {
                                        cont.DropItem(new NightSightPotion());
                                        cont.DropItem(new LesserHealPotion());
                                    }
                                }

                                if (!player.PlaceInBackpack(cont))
                                {
                                    cont.Delete();
                                    player.SendLocalizedMessage(1046260); // You need to clear some space in your inventory to continue with the quest.  Come back here when you have more space in your inventory.
                                }
                                else
                                {
                                    obj.Complete();
                                }
                            }
                            else
                            {
                                obj = qs.FindObjective(typeof(ReturnScrollOfPowerObjective));

                                if (obj != null && !obj.Completed)
                                {
                                    this.FocusTo(player);
                                    this.SayTo(player, 1049378); // Hand me the scroll, if you have it.
                                }
                                else
                                {
                                    obj = qs.FindObjective(typeof(ReturnFertileDirtObjective));

                                    if (obj != null && !obj.Completed)
                                    {
                                        this.FocusTo(player);
                                        this.SayTo(player, 1049381); // Hand me the Fertile Dirt, if you have it.
                                    }
                                    else
                                    {
                                        obj = qs.FindObjective(typeof(ReturnDaemonBloodObjective));

                                        if (obj != null && !obj.Completed)
                                        {
                                            this.FocusTo(player);
                                            this.SayTo(player, 1049379); // Hand me the Vial of Blood, if you have it.
                                        }
                                        else
                                        {
                                            obj = qs.FindObjective(typeof(ReturnDaemonBoneObjective));

                                            if (obj != null && !obj.Completed)
                                            {
                                                this.FocusTo(player);
                                                this.SayTo(player, 1049380); // Hand me the Daemon Bone, if you have it.
                                            }
                                            else
                                            {
                                                this.SayTo(player, 1049357); // I have nothing more for you at this time.
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }