package javastory.channel.maps;
import java.awt.Point;
import java.rmi.RemoteException;
import javastory.channel.ChannelCharacter;
import javastory.channel.ChannelServer;
import javastory.channel.life.LifeFactory;
import javastory.server.TimerManager;
import javastory.tools.packets.ChannelPackets;
public class AramiaFireWorks {
private short kegs = 0;
private static final AramiaFireWorks instance = new AramiaFireWorks();
private static final int[] arrayMob = { 9500168, 9500169, 9500170, 9500171, 9500173, 9500174, 9500175, 9500176, 9500170, 9500171, 9500172, 9500173,
9500174, 9500175, 9400569 };
private static final int[] arrayX = { 2100, 2605, 1800, 2600, 3120, 2700, 2320, 2062, 2800, 3100, 2300, 2840, 2700, 2320, 1950 };
private static final int[] arrayY = { 574, 364, 574, 316, 574, 574, 403, 364, 574, 574, 403, 574, 574, 403, 574 };
public static final AramiaFireWorks getInstance() {
return instance;
}
public final void giveKegs(final ChannelCharacter c, final int kegs) {
this.kegs += kegs;
if (this.kegs >= 2000) {
this.kegs = 0;
this.broadcastEvent(c);
}
}
public final short getKegsPercentage() {
return (short) (this.kegs / 2000 * 10000);
}
private void broadcastEvent(final ChannelCharacter c) {
try {
ChannelServer.getWorldInterface().broadcastMessage(
ChannelPackets.serverNotice(5, "<Channel " + c.getClient().getChannelId() + "> Aramia from Henesys park will shoot up the firecrackers soon!"));
} catch (final RemoteException e) {
ChannelServer.pingWorld();
}
// Henesys Park
TimerManager.getInstance().schedule(new Runnable() {
@Override
public final void run() {
AramiaFireWorks.this.startEvent(ChannelServer.getMapFactory().getMap(100000200));
}
}, 10000);
}
private void startEvent(final GameMap map) {
map.startMapEffect("Who's going crazy with the fireworks?", 5121010);
TimerManager.getInstance().schedule(new Runnable() {
@Override
public final void run() {
AramiaFireWorks.this.spawnMonster(map);
}
}, 5000);
}
private void spawnMonster(final GameMap map) {
Point pos;
for (int i = 0; i < arrayMob.length; i++) {
pos = new Point(arrayX[i], arrayY[i]);
map.spawnMonsterOnGroundBelow(LifeFactory.getMonster(arrayMob[i]), pos);
}
}
}