Пример #1
0
        public override bool OnDragDrop(Mobile from, Item dropped)
        {
            if (Activated)
            {
                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!
                return(false);
            }

            if (!IsKey(dropped))
            {
                from.SendLocalizedMessage(1072682);                   // This is not the proper key.
                return(false);
            }

            if (Items.Count + 1 == Keys.Length)
            {
                from.SendLocalizedMessage(1072680);                   // You have been given the key to the boss.

                for (int i = 0; i < KeyCount; i++)
                {
                    MasterKey key = MasterKey;

                    if (key != null)
                    {
                        key.Altar = this;

                        if (!from.AddToBackpack(key))
                        {
                            key.MoveToWorld(from.Location, from.Map);
                        }

                        m_MasterKeys.Add(key);
                    }
                }

                dropped.Delete();
                ClearContainer();
                StopTimer();
            }
            else
            {
                StartTimer(from);
            }

            return(base.OnDragDrop(from, dropped));
        }
Пример #2
0
        public void GiveKeys( Mobile from )
        {
            if ( m_Peerless != PeerlessList.None )
            {
                for ( int i = 0; i < m_key.Length; i++ )
                {
                    if ( m_Peerless == PeerlessList.DreadHorn )
                        m_key[i] = new DreadHornActivation();
                    else if ( m_Peerless == PeerlessList.ParoxysmusFelucca )
                        m_key[i] = new SlimyOintmentFelucca();
                    else if ( m_Peerless == PeerlessList.ParoxysmusTrammel )
                        m_key[i] = new SlimyOintmentTrammel();
                    else if ( m_Peerless == PeerlessList.MelisandeTrammel )
                        m_key[i] = new MelisandeActivationTrammel();
                    else if ( m_Peerless == PeerlessList.MelisandeFelucca )
                        m_key[i] = new MelisandeActivationFelucca();
                    else if ( m_Peerless == PeerlessList.Travesty )
                        m_key[i] = new BlackOrderKey();
                    else if ( m_Peerless == PeerlessList.InterredGrizzle )
                        m_key[i] = new MasterKey();
                    else if ( m_Peerless == PeerlessList.ShimmeringEffusionTrammel )
                        m_key[i] = new ShimmeringEffusionActivationTrammel();
                    else if ( m_Peerless == PeerlessList.ShimmeringEffusionFelucca )
                        m_key[i] = new ShimmeringEffusionActivationFelucca();

                    from.AddToBackpack( m_key[i] );
                    from.SendLocalizedMessage( 1072680 ); // You have been given the key to the boss.
                }
            }
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
		public ConfirmPartyGump( MasterKey key ) : base()
		{
			m_Key = key;
		}