public override bool OnDragDrop(Mobile from, Item dropped) { if (IsKey(dropped)) { if (Owner != null) { if (Peerless != null && Peerless.CheckAlive()) { from.SendLocalizedMessage(1075213); // The master of this realm has already been summoned and is engaged in combat. Your opportunity will come after he has squashed the current batch of intruders! } else { from.SendLocalizedMessage(1072683, Owner.Name); // ~1_NAME~ has already activated the Prism, please wait... } return(false); } for (int i = 0; i < Keys.Length; i++) { if (i == 0) { Owner = from; KeyStartTimer(from); from.SendLocalizedMessage(1074575); // You have activated this object! } if (Keys.Length == (i + 1)) { KeyStopTimer(); from.SendLocalizedMessage(1072678); // You have awakened the master of this realm. You need to hurry to defeat it in time! for (int k = 0; k < KeyCount; k++) { from.SendLocalizedMessage(1072680); // You have been given the key to the boss. MasterKey key = MasterKey; if (key != null) { key.Altar = this; key._Map = Map; if (!from.AddToBackpack(key)) { key.MoveToWorld(from.Location, from.Map); } MasterKeys.Add(key); } } dropped.Delete(); ClearContainer(); } } } else { from.SendLocalizedMessage(1072682); // This is not the proper key. return(false); } return(base.OnDragDrop(from, dropped)); }
public override bool OnDragDrop(Mobile from, Item dropped) { if (Owner != null && Owner != from) { if (Peerless != null && Peerless.CheckAlive()) { from.SendLocalizedMessage(1075213); // The master of this realm has already been summoned and is engaged in combat. Your opportunity will come after he has squashed the current batch of intruders! } else { from.SendLocalizedMessage(1072683, Owner.Name); // ~1_NAME~ has already activated the Prism, please wait... } return(false); } if (IsKey(dropped) && MasterKeys.Count == 0) { if (KeyValidation == null) { KeyValidation = new List <PeerlessKeyArray>(); for (int i = 0; i < Keys.Length; i++) { KeyValidation.Add(new PeerlessKeyArray { Key = Keys[i], Active = false }); } } if (KeyValidation.Any(x => x.Active)) { if (KeyValidation.Any(x => x.Key == dropped.GetType() && !x.Active)) { KeyValidation.Find(s => s.Key == dropped.GetType()).Active = true; } else { from.SendLocalizedMessage(1072682); // This is not the proper key. return(false); } } else { Owner = from; KeyStartTimer(from); from.SendLocalizedMessage(1074575); // You have activated this object! KeyValidation.Find(s => s.Key == dropped.GetType()).Active = true; } if (KeysValidated()) { ActivateEncounter(from); } } else { from.SendLocalizedMessage(1072682); // This is not the proper key. return(false); } return(base.OnDragDrop(from, dropped)); }
public override bool OnDragDrop(Mobile from, Item dropped) { if (Owner != null && Owner != from) { if (Peerless != null && Peerless.CheckAlive()) { from.SendLocalizedMessage(1075213); // The master of this realm has already been summoned and is engaged in combat. Your opportunity will come after he has squashed the current batch of intruders! } else { from.SendLocalizedMessage(1072683, Owner.Name); // ~1_NAME~ has already activated the Prism, please wait... } return(false); } if (IsKey(dropped) && MasterKeys.Count() == 0) { if (KeyValidation == null) { KeyValidation = new List <PeerlessKeyArray>(); Keys.ToList().ForEach(x => KeyValidation.Add(new PeerlessKeyArray { Key = x, Active = false })); } if (KeyValidation.Any(x => x.Active == true)) { if (KeyValidation.Any(x => x.Key == dropped.GetType() && x.Active == false)) { KeyValidation.Find(s => s.Key == dropped.GetType()).Active = true; } else { from.SendLocalizedMessage(1072682); // This is not the proper key. return(false); } } else { Owner = from; KeyStartTimer(from); from.SendLocalizedMessage(1074575); // You have activated this object! KeyValidation.Find(s => s.Key == dropped.GetType()).Active = true; } if (KeyValidation.Where(x => x.Active == true).Count() == Keys.Count()) { KeyStopTimer(); from.SendLocalizedMessage(1072678); // You have awakened the master of this realm. You need to hurry to defeat it in time! BeginSequence(from); for (int k = 0; k < KeyCount; k++) { from.SendLocalizedMessage(1072680); // You have been given the key to the boss. MasterKey key = MasterKey; if (key != null) { key.Altar = this; key._Map = Map; if (!from.AddToBackpack(key)) { key.MoveToWorld(from.Location, from.Map); } MasterKeys.Add(key); } } Timer.DelayCall(TimeSpan.FromSeconds(1), () => ClearContainer()); KeyValidation = null; } } else { from.SendLocalizedMessage(1072682); // This is not the proper key. return(false); } return(base.OnDragDrop(from, dropped)); }