Exemple #1
0
                protected override void OnTarget(Mobile from, object targeted)
                {
                    if (targeted is Shuriken)
                    {
                        Shuriken shuriken = targeted as Shuriken;

                        if (shuriken.Poison != null && shuriken.PoisonCharges > 0)
                        {
                            m_belt.Poison = shuriken.Poison;

                            m_belt.PoisonCharges = shuriken.PoisonCharges;
                        }

                        if (m_belt.UsesRemaining < 10)
                        {
                            if (shuriken.UsesRemaining + m_belt.UsesRemaining >= 10)
                            {
                                int need = 10 - m_belt.UsesRemaining;

                                m_belt.UsesRemaining += need;

                                shuriken.UsesRemaining -= need;

                                if (shuriken.UsesRemaining < 1)
                                {
                                    shuriken.Delete();
                                }
                            }
                            else
                            {
                                m_belt.UsesRemaining += shuriken.UsesRemaining;

                                shuriken.Delete();
                            }
                        }
                        else
                        {
                            from.SendLocalizedMessage(1063302);                               // You cannot add any more shuriken.
                        }
                    }
                    else
                    {
                        from.SendLocalizedMessage(1063301);                           // You can only place shuriken in a ninja belt.
                    }
                }
		public void Reload( Mobile from, Shuriken shuriken )
		{
			int need = ( MaxUses - m_UsesRemaining );

			if ( need <= 0 )
			{
				// You cannot add any more shuriken.
				from.SendLocalizedMessage( 1063302 );
			}
			else if ( shuriken.UsesRemaining > 0 )
			{
				if ( need > shuriken.UsesRemaining )
					need = shuriken.UsesRemaining;

				if ( shuriken.Poison != null && shuriken.PoisonCharges > 0 )
				{
					if ( m_PoisonCharges <= 0 || m_Poison == shuriken.Poison )
					{
						if ( m_Poison != null && m_Poison.Level < shuriken.Poison.Level )
							Unload( from );

						if ( need > shuriken.PoisonCharges )
							need = shuriken.PoisonCharges;

						if ( m_Poison == null || m_PoisonCharges <= 0 )
							m_PoisonCharges = need;
						else
							m_PoisonCharges += need;

						m_Poison = shuriken.Poison;

						shuriken.PoisonCharges -= need;

						if ( shuriken.PoisonCharges <= 0 )
							shuriken.Poison = null;

						m_UsesRemaining += need;
						shuriken.UsesRemaining -= need;
					}
					else
					{
						from.SendLocalizedMessage( 1070767 ); // Loaded projectile is stronger, unload it first
					}
				}
				else
				{
					m_UsesRemaining += need;
					shuriken.UsesRemaining -= need;
				}

				if ( shuriken.UsesRemaining <= 0 )
					shuriken.Delete();

				InvalidateProperties();
			}
		}
Exemple #3
0
        public void Reload( Mobile from, Shuriken shuriken )
        {
            int need = ( MaxUses - m_UsesRemaining );

            if ( need <= 0 )
            {
                // You cannot add any more shuriken.
                from.SendLocalizedMessage( 1063302 );
            }
            else if ( shuriken.UsesRemaining > 0 )
            {
                bool canload = false;
                bool poison = false;

                if ( need > shuriken.UsesRemaining )
                    need = shuriken.UsesRemaining;

                if( shuriken.Poison != null && shuriken.PoisonCharges > 0 )
                {
                    poison = true;

                    if( m_Poison == null || ( m_Poison.Level < shuriken.Poison.Level ))
                    {
                        Unload( from );
                        canload = true;
                    }
                    else if( m_Poison != null && ( m_Poison.Level == shuriken.Poison.Level ))
                    {
                        canload = true;
                    }
                }
                else if( shuriken.Poison == null || shuriken.PoisonCharges <= 0 )
                {
                    if( m_Poison == null || m_PoisonCharges <= 0 )
                    {
                        canload = true;
                    }
                }

                if( !canload )
                {
                    from.SendLocalizedMessage( 1070767 ); // Loaded projectile is stronger, unload it first
                }
                else
                {
                    if( poison )
                    {
                        if ( need > shuriken.PoisonCharges )
                        {
                            need = shuriken.PoisonCharges;
                        }

                        if ( m_Poison == null || m_PoisonCharges <= 0 )
                        {
                            PoisonCharges = need;
                        }
                        else
                        {
                            PoisonCharges += need;
                        }

                        Poison = shuriken.Poison;

                        shuriken.PoisonCharges -= need;

                        if ( shuriken.PoisonCharges <= 0 )
                        {
                            shuriken.Poison = null;
                        }
                    }

                    UsesRemaining += need;
                    shuriken.UsesRemaining -= need;
                }

                if ( shuriken.UsesRemaining <= 0 )
                    shuriken.Delete();
            }
        }
Exemple #4
0
        public void Reload(Mobile from, Shuriken shuriken)
        {
            int need = (MaxUses - m_UsesRemaining);

            if (need <= 0)
            {
                // You cannot add any more shuriken.
                from.SendLocalizedMessage(1063302);
            }
            else if (shuriken.UsesRemaining > 0)
            {
                bool canload = false;
                bool poison  = false;

                if (need > shuriken.UsesRemaining)
                {
                    need = shuriken.UsesRemaining;
                }

                if (shuriken.Poison != null && shuriken.PoisonCharges > 0)
                {
                    poison = true;

                    if (m_Poison == null || (m_Poison.Level < shuriken.Poison.Level))
                    {
                        Unload(from);
                        canload = true;
                    }
                    else if (m_Poison != null && (m_Poison.Level == shuriken.Poison.Level))
                    {
                        canload = true;
                    }
                }
                else if (shuriken.Poison == null || shuriken.PoisonCharges <= 0)
                {
                    if (m_Poison == null || m_PoisonCharges <= 0)
                    {
                        canload = true;
                    }
                }

                if (!canload)
                {
                    from.SendLocalizedMessage(1070767);                       // Loaded projectile is stronger, unload it first
                }
                else
                {
                    if (poison)
                    {
                        if (need > shuriken.PoisonCharges)
                        {
                            need = shuriken.PoisonCharges;
                        }

                        if (m_Poison == null || m_PoisonCharges <= 0)
                        {
                            PoisonCharges = need;
                        }
                        else
                        {
                            PoisonCharges += need;
                        }

                        Poison = shuriken.Poison;

                        shuriken.PoisonCharges -= need;

                        if (shuriken.PoisonCharges <= 0)
                        {
                            shuriken.Poison = null;
                        }
                    }

                    UsesRemaining          += need;
                    shuriken.UsesRemaining -= need;
                }

                if (shuriken.UsesRemaining <= 0)
                {
                    shuriken.Delete();
                }
            }
        }
Exemple #5
0
        public void Reload(Mobile from, Shuriken shuriken)
        {
            int need = (MaxUses - m_UsesRemaining);

            if (need <= 0)
            {
                // You cannot add any more shuriken.
                from.SendLocalizedMessage(1063302);
            }
            else if (shuriken.UsesRemaining > 0)
            {
                if (need > shuriken.UsesRemaining)
                {
                    need = shuriken.UsesRemaining;
                }

                if (shuriken.Poison != null && shuriken.PoisonCharges > 0)
                {
                    if (m_PoisonCharges <= 0 || m_Poison == shuriken.Poison)
                    {
                        if (m_Poison != null && m_Poison.Level < shuriken.Poison.Level)
                        {
                            Unload(from);
                        }

                        if (need > shuriken.PoisonCharges)
                        {
                            need = shuriken.PoisonCharges;
                        }

                        if (m_Poison == null || m_PoisonCharges <= 0)
                        {
                            m_PoisonCharges = need;
                        }
                        else
                        {
                            m_PoisonCharges += need;
                        }

                        m_Poison = shuriken.Poison;

                        shuriken.PoisonCharges -= need;

                        if (shuriken.PoisonCharges <= 0)
                        {
                            shuriken.Poison = null;
                        }

                        m_UsesRemaining        += need;
                        shuriken.UsesRemaining -= need;
                    }
                    else
                    {
                        from.SendLocalizedMessage(1070767);                           // Loaded projectile is stronger, unload it first
                    }
                }
                else
                {
                    m_UsesRemaining        += need;
                    shuriken.UsesRemaining -= need;
                }

                if (shuriken.UsesRemaining <= 0)
                {
                    shuriken.Delete();
                }

                InvalidateProperties();
            }
        }