package server.maps;
import client.MapleCharacter;
import client.MapleClient;
import handling.world.WorldBroadcastService;
import java.util.LinkedList;
import java.util.List;
import server.Timer.WorldTimer;
import tools.MaplePacketCreator;
public class MapleTVEffect {
private List<String> message = new LinkedList();
private final MapleCharacter user;
private static boolean active;
private final int type;
private MapleCharacter partner = null;
MapleClient c;
public MapleTVEffect(MapleCharacter User, MapleCharacter Partner, List<String> Msg, int Type) {
this.message = Msg;
this.user = User;
this.type = Type;
this.partner = Partner;
}
public static boolean isActive() {
return active;
}
public void stratMapleTV() {
broadCastTV(true);
}
private void setActive(boolean set) {
active = set;
}
private void broadCastTV(boolean isActive) {
setActive(isActive);
if (isActive) {
int delay = getDelayTime(this.type);
WorldBroadcastService.getInstance().broadcastMessage(MaplePacketCreator.enableTV());
WorldBroadcastService.getInstance().broadcastMessage(MaplePacketCreator.sendTV(this.user, this.message, this.type <= 2 ? this.type : this.type - 3, this.partner, delay));
WorldTimer.getInstance().schedule(new Runnable() {
@Override
public void run() {
MapleTVEffect.this.broadCastTV(false);
}
}, delay * 1000);
} else {
WorldBroadcastService.getInstance().broadcastMessage(MaplePacketCreator.removeTV());
}
}
public static int getDelayTime(int type) {
switch (type) {
case 0:
case 3:
return 15;
case 1:
case 4:
return 30;
case 2:
case 5:
return 60;
}
return 0;
}
}