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