package ai.instance.rakes;
import com.aionemu.gameserver.ai.AIName;
import com.aionemu.gameserver.model.gameobjects.Npc;
import com.aionemu.gameserver.model.templates.ai.Percentage;
import com.aionemu.gameserver.utils.ThreadPoolManager;
import ai.SummonerAI;
/**
* @author xTz
*/
@AIName("brasseyegrogget")
public class BrassEyeGroggetAI extends SummonerAI {
public BrassEyeGroggetAI(Npc owner) {
super(owner);
}
// todo 4 towers in the room center and fix coordinates of monsters
// need snif
@Override
protected void handleSpawned() {
super.handleSpawned();
}
@Override
protected void handleIndividualSpawnedSummons(Percentage percent) {
spawn(percent.getPercent());
}
private void spawn(int percent) {
int i = 0;
if (percent < 81 && percent > 60) {
i = 1;
} else if (percent < 61 && percent > 30) {
i = 2;
} else if (percent < 31) {
i = 3;
}
final int nrSpawn = i;
// to do move boss to initial position and set pause move and atack
// after 9 sec first spawn
ThreadPoolManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
spawnHelpers1(nrSpawn);
}
}, 9000);
}
private void spawnHelpers1(final int nrSpawn) {
switch (nrSpawn) {
case 1:
spawn(281184, 381.3756f, 495.24835f, 1072.1212f, (byte) 13);
spawn(281181, 379.4199f, 495.36453f, 1072.1212f, (byte) 13);
break;
case 2:
spawn(281184, 383.76724f, 527.02856f, 1072.1212f, (byte) 100);
spawn(281181, 381.26767f, 526.40845f, 1072.1212f, (byte) 100);
break;
case 3:
spawn(281182, 416.2482f, 500.6516f, 1071.8457f, (byte) 52);
spawn(281182, 415.66647f, 519.5354f, 1071.8457f, (byte) 52);
break;
}
// next spawn after 35 sec
ThreadPoolManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
spawnHelpers2(nrSpawn);
}
}, 35000);
}
private void spawnHelpers2(int nrSpawn) {
switch (nrSpawn) {
case 1:
spawn(281183, 383.26193f, 528.38403f, 1072.1212f, (byte) 100);
spawn(281184, 383.76724f, 527.02856f, 1072.1212f, (byte) 100);
spawn(281181, 381.26767f, 526.40845f, 1072.1212f, (byte) 100);
break;
case 2:
spawn(281182, 429.55338f, 525.7714f, 1075.3801f, (byte) 62);
spawn(281182, 429.52865f, 492.56076f, 1075.3801f, (byte) 62);
spawn(281181, 376.42566f, 502.19736f, 1072.1212f, (byte) 1);
break;
case 3:
spawn(281187, 376.42566f, 502.19736f, 1072.1212f, (byte) 1);
spawn(281181, 381.26767f, 526.40845f, 1072.1212f, (byte) 100);
break;
}
// remove effect after 21 sec
ThreadPoolManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
if (getEffectController().hasAbnormalEffect(18191)) {
getEffectController().removeEffect(18191);
}
// to do move boss in the room center and remove pause
// to do some skill boss use
}
}, 21000);
}
}