/** * Broadcast * * */ package key.effect; import key.*; import java.util.StringTokenizer; /** * A communication effect that goes to an entire * medium, such as a room or channel. (Technically, * it goes to any scape) */ public class Broadcast extends Communication { protected Scape loc; protected String mainMessage; protected String selfMessage; /** * If it echos to the scape, it must always re-echo * to the originator - this boolean is set if the * originator is splashed, so if its still false * after all, then re-splash them. */ protected boolean gotOriginator; /** * Creates a new communication * * @param from the player who sent it * @param location where the local effect is to take place * @param main the message to show to everyone in the location scape * @param self the message to show to the player */ public Broadcast( Scape location, Player from, String main, String self ) { super( from ); mainMessage = main; selfMessage = self; loc = location; } public String getMessage( Player receiver ) { if( receiver == originator ) { gotOriginator = true; return( selfMessage ); } else return( mainMessage ); } public void cause() { gotOriginator = false; loc.splash( this, null ); if( !gotOriginator ) originator.splash( this, null ); //Log.log( loc.getName(), mainMessage ); } }