public override void OnDoubleClick(Mobile from) { if (from is PlayerMobile pm && pm.InRange(GetWorldLocation(), 2)) { QuestSystem qs = pm.Quest; if (qs is DarkTidesQuest) { QuestObjective obj = qs.FindObjective <FindCallingScrollObjective>(); if (obj?.Completed == false || DarkTidesQuest.HasLostCallingScroll(from)) { Item scroll = new KronusScroll(); if (pm.PlaceInBackpack(scroll)) { pm.SendLocalizedMessage(1060120, "", 0x41); // You rummage through the scrolls until you find the Scroll of Calling. You quickly put it in your pack. if (obj?.Completed == false) { obj.Complete(); } } else { pm.SendLocalizedMessage(1060148, "", 0x41); // You were unable to take the scroll. scroll.Delete(); } } } } base.OnDoubleClick(from); }
public override int LabelNumber => 1060149;// Calling of Kronus public override bool CanDrop(PlayerMobile player) { DarkTidesQuest qs = player.Quest as DarkTidesQuest; if (qs == null) { return(true); } return(false); }
public override bool CanTalkTo(PlayerMobile to) { DarkTidesQuest qs = to.Quest as DarkTidesQuest; if (qs == null) { return(to.Quest == null && QuestSystem.CanOfferQuest(to, typeof(DarkTidesQuest))); } return(qs.FindObjective(typeof(FindMardothAboutVaultObjective)) != null); }
public override bool CanDrop(PlayerMobile player) { DarkTidesQuest qs = player.Quest as DarkTidesQuest; if (qs == null) { return(true); } return(!(qs.IsObjectiveInProgress(typeof(RetrieveAbraxusScrollObjective)) || qs.IsObjectiveInProgress(typeof(ReadAbraxusScrollObjective)))); }
public override bool CanDrop(PlayerMobile player) { DarkTidesQuest qs = player.Quest as DarkTidesQuest; if (qs == null) { return(true); } return(!(qs.IsObjectiveInProgress(typeof(FindCallingScrollObjective)) || qs.IsObjectiveInProgress(typeof(FindMardothAboutKronusObjective)) || qs.IsObjectiveInProgress(typeof(FindWellOfTearsObjective)) || qs.IsObjectiveInProgress(typeof(UseCallingScrollObjective)))); }
public override bool GetDestination(PlayerMobile player, ref Point3D loc, ref Map map) { QuestSystem qs = player.Quest; if (qs is DarkTidesQuest) { if (qs.IsObjectiveInProgress(typeof(FindMaabusTombObjective))) { loc = new Point3D(2038, 1263, -90); map = Map.Malas; qs.AddConversation(new RadarConversation()); return(true); } if (qs.IsObjectiveInProgress(typeof(FindCrystalCaveObjective))) { loc = new Point3D(1194, 521, -90); map = Map.Malas; return(true); } if (qs.IsObjectiveInProgress(typeof(FindCityOfLightObjective))) { loc = new Point3D(1091, 519, -90); map = Map.Malas; return(true); } if (qs.IsObjectiveInProgress(typeof(ReturnToCrystalCaveObjective))) { loc = new Point3D(1194, 521, -90); map = Map.Malas; return(true); } if (DarkTidesQuest.HasLostCallingScroll(player)) { loc = new Point3D(1194, 521, -90); map = Map.Malas; return(true); } } return(false); }
public override void CheckProgress() { if (System.From.Map == Map.Malas && m_WellOfTearsArea.Contains(System.From.Location)) { if (DarkTidesQuest.HasLostCallingScroll(System.From)) { if (!m_Inside) { System.AddConversation(new LostCallingScrollConversation(false)); } } else { Complete(); } m_Inside = true; } else { m_Inside = false; } }
public override void OnDoubleClick(Mobile from) { var pm = from as PlayerMobile; if (pm != null && pm.InRange(GetWorldLocation(), 2)) { var qs = pm.Quest; if (qs is DarkTidesQuest) { var obj = qs.FindObjective(typeof(FindCallingScrollObjective)); if ((obj != null && !obj.Completed) || DarkTidesQuest.HasLostCallingScroll(from)) { Item scroll = new KronusScroll(); if (pm.PlaceInBackpack(scroll)) { pm.SendLocalizedMessage(1060120, "", 0x41); // You rummage through the scrolls until you find the Scroll of Calling. You quickly put it in your pack. if (obj != null && !obj.Completed) { obj.Complete(); } } else { pm.SendLocalizedMessage(1060148, "", 0x41); // You were unable to take the scroll. scroll.Delete(); } } } } base.OnDoubleClick(from); }
public override void OnTalk(PlayerMobile player, bool contextMenu) { QuestSystem qs = player.Quest; if (qs is DarkTidesQuest) { if (DarkTidesQuest.HasLostCallingScroll(player)) { qs.AddConversation(new LostCallingScrollConversation(true)); } else { QuestObjective obj = qs.FindObjective(typeof(FindMardothAboutVaultObjective)); if (obj != null && !obj.Completed) { obj.Complete(); } else { obj = qs.FindObjective(typeof(FindMardothAboutKronusObjective)); if (obj != null && !obj.Completed) { obj.Complete(); } else { obj = qs.FindObjective(typeof(FindMardothEndObjective)); if (obj != null && !obj.Completed) { Container cont = GetNewContainer(); cont.DropItem(new PigIron(20)); cont.DropItem(new NoxCrystal(20)); cont.DropItem(new BatWing(25)); cont.DropItem(new DaemonBlood(20)); cont.DropItem(new GraveDust(20)); BaseWeapon weapon = new BoneHarvester(); weapon.Slayer = SlayerName.OrcSlaying; if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(weapon, 3, 20, 40); } else { weapon.DamageLevel = (WeaponDamageLevel)BaseCreature.RandomMinMaxScaled(2, 4); weapon.AccuracyLevel = (WeaponAccuracyLevel)BaseCreature.RandomMinMaxScaled(2, 4); weapon.DurabilityLevel = (WeaponDurabilityLevel)BaseCreature.RandomMinMaxScaled(2, 4); } cont.DropItem(weapon); cont.DropItem(new BankCheck(2000)); cont.DropItem(new EnchantedSextant()); 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 if (contextMenu) { FocusTo(player); player.SendLocalizedMessage(1061821); // Mardoth has nothing more for you at this time. } } } } } else if (qs == null && QuestSystem.CanOfferQuest(player, typeof(DarkTidesQuest))) { new DarkTidesQuest(player).SendOffer(); } }
public override void OnTalk(PlayerMobile player, bool contextMenu) { QuestSystem qs = player.Quest; if (qs is DarkTidesQuest) { if (DarkTidesQuest.HasLostCallingScroll(player)) { qs.AddConversation(new LostCallingScrollConversation(true)); } else { QuestObjective obj = qs.FindObjective(typeof(FindMardothAboutVaultObjective)); if (obj != null && !obj.Completed) { obj.Complete(); } else { obj = qs.FindObjective(typeof(FindMardothAboutKronusObjective)); if (obj != null && !obj.Completed) { obj.Complete(); } else { obj = qs.FindObjective(typeof(FindMardothEndObjective)); if (obj != null && !obj.Completed) { Container cont = GetNewContainer(); cont.DropItem(new PigIron(20)); cont.DropItem(new NoxCrystal(20)); cont.DropItem(new BatWing(25)); cont.DropItem(new DaemonBlood(20)); cont.DropItem(new GraveDust(20)); BaseWeapon weapon = new BoneHarvester(); weapon.Slayer = SlayerName.OrcSlaying; int damageLevel = BaseCreature.RandomMinMaxScaled(2, 4); if (PseudoSeerStone.Instance != null && PseudoSeerStone.Instance._HighestDamageLevelSpawn < damageLevel) { if (damageLevel == 5 && PseudoSeerStone.ReplaceVanqWithSkillScrolls) { cont.DropItem(PuzzleChest.CreateRandomSkillScroll()); } int platAmount = PseudoSeerStone.PlatinumPerMissedDamageLevel * (damageLevel - PseudoSeerStone.Instance._HighestDamageLevelSpawn); if (platAmount > 0) { cont.DropItem(new Platinum(platAmount)); } damageLevel = PseudoSeerStone.Instance._HighestDamageLevelSpawn; } weapon.DamageLevel = (WeaponDamageLevel)damageLevel; weapon.AccuracyLevel = (WeaponAccuracyLevel)BaseCreature.RandomMinMaxScaled(2, 4); weapon.DurabilityLevel = (WeaponDurabilityLevel)BaseCreature.RandomMinMaxScaled(2, 4); cont.DropItem(weapon); cont.DropItem(new BankCheck(2000)); cont.DropItem(new EnchantedSextant()); 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 if (contextMenu) { FocusTo(player); player.SendLocalizedMessage(1061821); // Mardoth has nothing more for you at this time. } } } } } else if (qs == null && QuestSystem.CanOfferQuest(player, typeof(DarkTidesQuest))) { new DarkTidesQuest(player).SendOffer(); } }