예제 #1
0
        public override void OnSpeech(SpeechEventArgs e)
        {
            Mobile m = e.Mobile;

            if ((Parent == m) && (m.FindItemOnLayer(Layer.TwoHanded) == this))
            {
                if (e.Speech.ToLower() == "an ex del")
                {
                    if (m_CanUseFreeze)
                    {
                        m.PlaySound(0xF6);
                        m_StaffEffect = StaffEffect.Freeze;
                    }
                }

                if (e.Speech.ToLower() == "in corp del")
                {
                    if (m_CanUseIceStrike)
                    {
                        m.PlaySound(0xF7);
                        m_StaffEffect = StaffEffect.IceStrike;
                    }
                }

                if (e.Speech.ToLower() == "des corp del")
                {
                    if (m_CanUseIceBall)
                    {
                        m.PlaySound(0xF8);
                        m_StaffEffect = StaffEffect.IceBall;
                    }
                }
            }
        }
예제 #2
0
 public IceStaff()
     : base(0xDF1)
 {
     int firsteffect = Utility.Random ( 1, 3 );
     int secondeffect = Utility.Random ( 1, 3 );
     while ( firsteffect == secondeffect )
         secondeffect = Utility.Random ( 1, 3 );
     switch ( firsteffect )
     {
         case 1: m_CanUseIceStrike = true; break;
         case 2: m_CanUseFreeze = true; break;
         case 3: m_CanUseIceBall = true; break;
     }
     switch ( secondeffect )
     {
         case 1: m_CanUseIceStrike = true; break;
         case 2: m_CanUseFreeze = true; break;
         case 3: m_CanUseIceBall = true; break;
     }
     switch ( firsteffect )
     {
         case 1: m_StaffEffect = StaffEffect.IceStrike; break;
         case 2: m_StaffEffect = StaffEffect.Freeze; break;
         case 3: m_StaffEffect = StaffEffect.IceBall; break;
     }
     this.m_Charges = Utility.Random( 12, 25 );
     Hue = 0x480;
     Weight = 3.0;
     // this.M = 1017413;
 }
예제 #3
0
        public override void OnDoubleClick(Mobile from)
        {
            if (from.FindItemOnLayer(Layer.TwoHanded) == this)
            {
                if (DateTime.Now >= PreviousUse + TimeSpan.FromSeconds(5))
                {
                    PreviousUse = DateTime.Now;
                    if (m_Charges == 0)
                    {
                        from.SendLocalizedMessage(1019073);                           // This item is out of charges.
                        return;
                    }

                    else
                    {
                        Charges--;
                        if (Charges > 0)
                        {
                            --m_Charges;
                        }
                        switch (m_StaffEffect)
                        {
                        case StaffEffect.Freeze: new FreezeSpell(from, null).Cast(); break;

                        case StaffEffect.IceStrike: new IceStrikeSpell(from, null).Cast(); break;

                        case StaffEffect.IceBall: new IceBallSpell(from, null).Cast(); break;
                        }
                        if (m_CanUseFreeze)
                        {
                            Name          = "Glacial Staff of Chilly Cacophony (charges: " + Charges.ToString() + ")";
                            m_StaffEffect = StaffEffect.Freeze;
                        }
                        else if (m_CanUseIceStrike)
                        {
                            Name          = "Glacial Staff of Icy Isolation (charges: " + Charges.ToString() + ")";
                            m_StaffEffect = StaffEffect.IceStrike;
                        }
                        else if (m_CanUseIceBall)
                        {
                            Name          = "Glacial Staff of Tundra Tenacity (charges: " + Charges.ToString() + ")";
                            m_StaffEffect = StaffEffect.IceBall;
                        }
                        else
                        {
                            Name = "Glacial Staff of Nothing";
                        }
                    }
                }
                else
                {
                    from.SendLocalizedMessage(1062012);
                }
            }
            else
            {
                from.SendLocalizedMessage(502641);                   // You must equip this item to use it.
            }
        }
예제 #4
0
        public GlacialStaff() : base(16175)
        {
            int firsteffect  = Utility.Random(1, 3);
            int secondeffect = Utility.Random(1, 3);

            while (firsteffect == secondeffect)
            {
                secondeffect = Utility.Random(1, 3);
            }
            switch (firsteffect)
            {
            case 1: m_CanUseIceStrike = true; break;

            case 2: m_CanUseFreeze = true; break;

            case 3: m_CanUseIceBall = true; break;
            }
            switch (secondeffect)
            {
            case 1: m_CanUseIceStrike = true; break;

            case 2: m_CanUseFreeze = true; break;

            case 3: m_CanUseIceBall = true; break;
            }
            switch (firsteffect)
            {
            case 1: m_StaffEffect = StaffEffect.IceStrike; break;

            case 2: m_StaffEffect = StaffEffect.Freeze; break;

            case 3: m_StaffEffect = StaffEffect.IceBall; break;
            }

            this.Name       = "a mysterious blue staff";
            this.Charges    = 51;
            this.Weight     = 5.0;
            this.Identified = true;
            this.Hue        = 0x480;
            this.Layer      = Layer.TwoHanded;
            this.Attributes.SpellChanneling = 1;

            switch (Utility.Random(3))
            {
            case 0: WeaponAttributes.HitHarm = 5; break;

            case 1: WeaponAttributes.HitHarm = 10; break;

            case 2: WeaponAttributes.HitHarm = 15; break;
            }
            switch (Utility.Random(3))
            {
            case 0: Attributes.WeaponDamage = 15; break;

            case 1: Attributes.WeaponDamage = 25; break;

            case 2: Attributes.WeaponDamage = 35; break;
            }
        }
예제 #5
0
		public void Charge( Mobile from, SpellScroll scroll )
		{
			if ( m_Effect != StaffEffect.None )
				from.SendLocalizedMessage( 1010379 ); // This staff has already been charged - you may not recharge it!
			else
			{
				m_Effect = (StaffEffect)scroll.SpellID;
				Charges = MaxCharges;
				scroll.Consume();
				from.SendLocalizedMessage( 1010380 ); // The staff is now charged
			}
		}
예제 #6
0
 public void Charge(Mobile from, SpellScroll scroll)
 {
     if (m_Effect != StaffEffect.None)
     {
         from.SendLocalizedMessage(1010379);                   // This staff has already been charged - you may not recharge it!
     }
     else
     {
         m_Effect = (StaffEffect)scroll.SpellID;
         Charges  = MaxCharges;
         scroll.Consume();
         from.SendLocalizedMessage(1010380);                   // The staff is now charged
     }
 }
예제 #7
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            if (version == 1)
            {
                m_CanUseIceStrike = reader.ReadBool();
                m_CanUseFreeze    = reader.ReadBool();
                m_CanUseIceBall   = reader.ReadBool();
            }
            m_StaffEffect = (StaffEffect)reader.ReadInt();
            m_Charges     = (int)reader.ReadInt();
        }
예제 #8
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 1:
            {
                m_Effect  = (StaffEffect)reader.ReadInt();
                m_Charges = (int)reader.ReadInt();
                break;
            }
            }
        }
예제 #9
0
        public IceStaff() : base(0xDF1)
        {
            int firsteffect  = Utility.Random(1, 3);
            int secondeffect = Utility.Random(1, 3);

            while (firsteffect == secondeffect)
            {
                secondeffect = Utility.Random(1, 3);
            }
            switch (firsteffect)
            {
            case 1: m_CanUseIceStrike = true; break;

            case 2: m_CanUseFreeze = true; break;

            case 3: m_CanUseIceBall = true; break;
            }
            switch (secondeffect)
            {
            case 1: m_CanUseIceStrike = true; break;

            case 2: m_CanUseFreeze = true; break;

            case 3: m_CanUseIceBall = true; break;
            }
            switch (firsteffect)
            {
            case 1: m_StaffEffect = StaffEffect.IceStrike; break;

            case 2: m_StaffEffect = StaffEffect.Freeze; break;

            case 3: m_StaffEffect = StaffEffect.IceBall; break;
            }
            this.m_Charges = Utility.Random(12, 25);
            Hue            = 0x480;
            Weight         = 3.0;
            // this.M = 1017413;
        }
예제 #10
0
        public override void OnSpeech( SpeechEventArgs e )
        {
            Mobile m = e.Mobile;

            if ((Parent == m ) && (m.FindItemOnLayer( Layer.TwoHanded ) == this ))
            {
                if (e.Speech.ToLower() == "an ex del")
                {
                    if ( m_CanUseFreeze )
                    {
                        m.PlaySound( 0xF6 );
                        m_StaffEffect = StaffEffect.Freeze;
                    }
                }

                if (e.Speech.ToLower() == "in corp del")
                {
                    if ( m_CanUseIceStrike )
                    {
                        m.PlaySound( 0xF7 );
                        m_StaffEffect = StaffEffect.IceStrike;
                    }
                }

                if (e.Speech.ToLower() == "des corp del")
                {
                    if ( m_CanUseIceBall )
                    {
                        m.PlaySound( 0xF8 );
                        m_StaffEffect = StaffEffect.IceBall;
                    }
                }
            }
        }
예제 #11
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            if ( version == 1 )
            {
                m_CanUseIceStrike = reader.ReadBool();
                m_CanUseFreeze = reader.ReadBool();
                m_CanUseIceBall = reader.ReadBool();
            }
            m_StaffEffect = (StaffEffect)reader.ReadInt();
            m_Charges = (int)reader.ReadInt();
        }
예제 #12
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				{
					m_Effect = (StaffEffect)reader.ReadInt();
					m_Charges = (int)reader.ReadInt();
					break;
				}
			}
		}