public override bool OnDragDrop(Mobile from, Item dropped) { PlayerMobile player = from as PlayerMobile; if (player != null) { UzeraanTurmoilQuest qs = player.Quest as UzeraanTurmoilQuest; if (qs != null && dropped is Apple && UzeraanTurmoilQuest.HasLostFertileDirt(from)) { this.FocusTo(from); Item fertileDirt = new QuestFertileDirt(); if (!player.PlaceInBackpack(fertileDirt)) { fertileDirt.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. return(false); } else { dropped.Consume(); qs.AddConversation(new DryadAppleConversation()); return(dropped.Deleted); } } } return(base.OnDragDrop(from, dropped)); }
public override void OnTalk(PlayerMobile player, bool contextMenu) { QuestSystem qs = player.Quest; if (qs is UzeraanTurmoilQuest) { if (UzeraanTurmoilQuest.HasLostScrollOfPower(player)) { FocusTo(player); qs.AddConversation(new LostScrollOfPowerConversation(false)); } else { QuestObjective obj = qs.FindObjective(typeof(FindSchmendrickObjective)); if (obj != null && !obj.Completed) { FocusTo(player); obj.Complete(); } else if (contextMenu) { FocusTo(player); SayTo(player, 1049357); // I have nothing more for you at this time. } } } }
public override bool GetKillEvent(BaseCreature creature, Container corpse) { if (base.GetKillEvent(creature, corpse)) { return(true); } return(UzeraanTurmoilQuest.HasLostDaemonBone(System.From)); }
public override bool CanDrop(PlayerMobile player) { UzeraanTurmoilQuest qs = player.Quest as UzeraanTurmoilQuest; if (qs == null) { return(true); } return(!qs.IsObjectiveInProgress(typeof(ReturnFertileDirtObjective))); }
public override bool CanDrop(PlayerMobile player) { UzeraanTurmoilQuest qs = player.Quest as UzeraanTurmoilQuest; if (qs == null) { return(true); } //return !qs.IsObjectiveInProgress( typeof( ReturnDaemonBoneObjective ) ); return(false); }
public override bool GetDestination(PlayerMobile player, ref Point3D loc, ref Map map) { QuestSystem qs = player.Quest; if (qs is UzeraanTurmoilQuest) { if (qs.IsObjectiveInProgress(typeof(FindSchmendrickObjective)) || qs.IsObjectiveInProgress(typeof(FindApprenticeObjective)) || UzeraanTurmoilQuest.HasLostScrollOfPower(player)) { loc = new Point3D(5222, 1858, 0); map = Map.Trammel; return(true); } if (qs.IsObjectiveInProgress(typeof(FindDryadObjective)) || UzeraanTurmoilQuest.HasLostFertileDirt(player)) { loc = new Point3D(3557, 2690, 2); map = Map.Trammel; return(true); } if (player.Profession != 5 && // paladin (qs.IsObjectiveInProgress(typeof(GetDaemonBoneObjective)) || UzeraanTurmoilQuest.HasLostDaemonBone(player))) { loc = new Point3D(3422, 2653, 48); map = Map.Trammel; return(true); } if (qs.IsObjectiveInProgress(typeof(CashBankCheckObjective))) { loc = new Point3D(3624, 2610, 0); map = Map.Trammel; return(true); } } return(false); }
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) { var qs = player.Quest; if (qs is UzeraanTurmoilQuest) { if (UzeraanTurmoilQuest.HasLostFertileDirt(player)) { FocusTo(player); qs.AddConversation(new LostFertileDirtConversation(false)); } else { var obj = qs.FindObjective(typeof(FindDryadObjective)); if (obj != null && !obj.Completed) { FocusTo(player); Item fertileDirt = new QuestFertileDirt(); if (!player.PlaceInBackpack(fertileDirt)) { fertileDirt.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 if (contextMenu) { FocusTo(player); SayTo(player, 1049357); // I have nothing more for you at this time. } } } }
public override bool OnDragDrop(Mobile from, Item dropped) { if (dropped is BlankScroll && UzeraanTurmoilQuest.HasLostScrollOfPower(from)) { FocusTo(from); Item scroll = new SchmendrickScrollOfPower(); if (!from.PlaceInBackpack(scroll)) { scroll.Delete(); from.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. return(false); } dropped.Consume(); @from.SendLocalizedMessage(1049346); // Schmendrick scribbles on the scroll for a few moments and hands you the finished product. return(dropped.Deleted); } return(base.OnDragDrop(from, dropped)); }
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. } } } } } } } } } }
public override bool CanTalkTo(PlayerMobile to) { UzeraanTurmoilQuest qs = to.Quest as UzeraanTurmoilQuest; return(qs != null && qs.FindObjective(typeof(FindDryadObjective)) != null); }