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(); } }
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(); } }
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(); } } }
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(); } }