public override bool HandlesOnSpeech{ get{ return true; } }
public override void OnSpeech( SpeechEventArgs e )
{
if ( !e.Handled && Insensitive.Equals( e.Speech, "i claim this staff stone" ) && m_Owner == null )
{
m_Owner = e.Mobile;
if (m_Owner.AccessLevel == AccessLevel.Player)
{
if (!HideEffects)
this.Say( String.Format("You are not authorized to have a Staff Stone!" ) );
else
e.Mobile.SendMessage( "You are not authorized to have a Staff Stone!" );
deleting = true;
DoDelete(this);
return;
}
else
{
if (!HideEffects)
this.Say( String.Format("How May I serve you master!") );
else
e.Mobile.SendMessage( "How May I serve you master!" );
Name = m_Owner.Name + "'s Staff Stone";
this.StaffLevel = m_Owner.AccessLevel;
LootType = LootType.Blessed;
this.HomeLocation = m_Owner.Location;
this.HomeMap = m_Owner.Map;
if (m_Owner.Title != null )
this.Title = m_Owner.Title;
}
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "release stone" ) && m_Owner == e.Mobile )
{
if (!HideEffects)
this.Say( String.Format("You released me!") );
else
e.Mobile.SendMessage( "You released me!" );
Movable = true;
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "reveal" ) && m_Owner == e.Mobile )
{
if (!HideEffects)
this.Say( String.Format("You are no longer hidden.") );
else
e.Mobile.SendMessage( "You are no longer hidden." );
e.Mobile.Hidden = false;
if (!HideEffects)
{
Effects.SendLocationEffect( new Point3D( e.Mobile.X + 1, e.Mobile.Y, e.Mobile.Z + 4 ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X + 1, e.Mobile.Y, e.Mobile.Z ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X + 1, e.Mobile.Y, e.Mobile.Z - 4 ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X, e.Mobile.Y + 1, e.Mobile.Z + 4 ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X, e.Mobile.Y + 1, e.Mobile.Z ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X, e.Mobile.Y + 1, e.Mobile.Z - 4 ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X + 1, e.Mobile.Y + 1, e.Mobile.Z + 11 ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X + 1, e.Mobile.Y + 1, e.Mobile.Z + 7 ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X + 1, e.Mobile.Y + 1, e.Mobile.Z + 3 ), e.Mobile.Map, 0x3728, 13 );
Effects.SendLocationEffect( new Point3D( e.Mobile.X + 1, e.Mobile.Y + 1, e.Mobile.Z - 1 ), e.Mobile.Map, 0x3728, 13 );
e.Mobile.PlaySound( 0x228 );
}
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "secure stone" ) && m_Owner == e.Mobile )
{
if (!HideEffects)
this.Say( String.Format("You secured me!") );
else
e.Mobile.SendMessage("You secured me!");
Movable = false;
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "switch player" ) && m_Owner == e.Mobile )
{
if (!HideEffects)
this.Say( String.Format("You change your level to a common Player.") );
else
e.Mobile.SendMessage("You change your level to a common Player.");
m_StaffLevel = e.Mobile.AccessLevel;
e.Mobile.AccessLevel = AccessLevel.Player;
if (!HideEffects)
e.Mobile.BoltEffect( 0 );
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "switch normal" ) && m_Owner == e.Mobile )
{
if (!HideEffects)
this.Say( String.Format("You change your level back.") );
else
e.Mobile.SendMessage("You change your level back.");
e.Mobile.AccessLevel = m_StaffLevel;
if (!HideEffects)
e.Mobile.BoltEffect( 0 );
e.Handled = true;
}
// With the autoressurect this may not be needed anymore but I left it in anyway
if ( !e.Handled && Insensitive.Equals( e.Speech, "resurrect me" ) && m_Owner == e.Mobile )
{
e.Mobile.PlaySound( 0x214 );
e.Mobile.FixedEffect( 0x376A, 10, 16 );
e.Mobile.Resurrect();
e.Mobile.Hidden = true;
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "res me" ) && m_Owner == e.Mobile )
{
e.Mobile.PlaySound( 0x214 );
e.Mobile.FixedEffect( 0x376A, 10, 16 );
e.Mobile.Resurrect();
e.Mobile.Hidden = true;
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "set title" ) && m_Owner == e.Mobile )
{
this.Title = e.Mobile.Title;
e.Mobile.SendMessage( "Your current title has been saved on the stone." );
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "clear title" ) && m_Owner == e.Mobile )
{
this.Title = null;
e.Mobile.SendMessage( "Your current title has been cleared from the stone." );
e.Handled = true;
}
if ( !e.Handled && Insensitive.Equals( e.Speech, "title" ) && m_Owner == e.Mobile )
{
switch ( this.StaffLevel )
{
case AccessLevel.Administrator:
{
if (e.Mobile.Title != this.Title)
e.Mobile.Title = this.Title;
else
e.Mobile.Title = "[Administrator]";
break;
}
case AccessLevel.Seer:
{
if (e.Mobile.Title != this.Title)
e.Mobile.Title = this.Title;
else
e.Mobile.Title = "[Seer]";
break;
}
case AccessLevel.GameMaster:
{
if (e.Mobile.Title != this.Title)
e.Mobile.Title = this.Title;
else
e.Mobile.Title = "[GameMaster]";
break;
}
case AccessLevel.Counselor:
{
if (e.Mobile.Title != this.Title)
e.Mobile.Title = this.Title;
else
e.Mobile.Title = "[Counselor]";
break;
}
case AccessLevel.Player:
{
if (e.Mobile.Title != this.Title)
e.Mobile.Title = this.Title;
else
e.Mobile.Title = null;
break;
}
default:
{
if (e.Mobile.Title != this.Title)
e.Mobile.Title = this.Title;
else
e.Mobile.Title = null;
break;
}
}
e.Mobile.SendMessage( "Your title has been adjusted." );
if (!HideEffects)
e.Mobile.BoltEffect( 0 );
e.Handled = true;
}
base.OnSpeech( e );
}