public override void OnSpeech( SpeechEventArgs e )
{
if ( !Active || Receivers.Count == 0 || ( RootParent != null && !(RootParent is Mobile) ) )
return;
if ( e.Type == MessageType.Emote )
return;
Mobile from = e.Mobile;
string speech = e.Speech;
foreach ( ReceiverCrystal receiver in new List<ReceiverCrystal>( Receivers ) )
{
if ( receiver.Deleted )
{
Receivers.Remove( receiver );
}
else if ( Charges > 0 )
{
receiver.TransmitMessage( from, speech );
Charges--;
}
else
{
this.Active = false;
break;
}
}
}