use of com.skelril.openboss.Instruction in project Skree by Skelril.
the class CatacombsInstance method spawnBossWave.
private void spawnBossWave() {
Zombie zombie = spawnZombie(entryPoint);
Boss<Zombie, CatacombsBossDetail> boss = new Boss<>(zombie, new CatacombsBossDetail(this, wave));
List<Instruction<DamageCondition, Boss<Zombie, CatacombsBossDetail>>> damageProcessor = boss.getDamageProcessor();
if (Probability.getChance(2)) {
damageProcessor.add(new ThorAttack());
}
if (Probability.getChance(2)) {
damageProcessor.add(new SoulReaper());
}
List<Instruction<DamagedCondition, Boss<Zombie, CatacombsBossDetail>>> damagedProcessor = boss.getDamagedProcessor();
if (Probability.getChance(4)) {
damagedProcessor.add(new BlipDefense());
}
if (Probability.getChance(3)) {
damagedProcessor.add(new ExplosiveArrowBarrage() {
@Override
public boolean activate(EntityDetail detail) {
return Probability.getChance(12);
}
});
}
if (Probability.getChance(2)) {
damagedProcessor.add(new DeathMark());
}
if (Probability.getChance(2)) {
damagedProcessor.add(new CatacombsDamageNearby());
}
if (Probability.getChance(2)) {
damagedProcessor.add(new UndeadMinionRetaliation(Probability.getRangedRandom(12, 25)));
}
bossManager.bind(boss);
}
use of com.skelril.openboss.Instruction in project Skree by Skelril.
the class CatacombsManager method setUpWave.
private void setUpWave() {
Sponge.getEventManager().registerListeners(SkreePlugin.inst(), new BossListener<>(waveMobManager, Zombie.class));
List<Instruction<UnbindCondition, Boss<Zombie, CatacombsBossDetail>>> unbindProcessor = waveMobManager.getUnbindProcessor();
unbindProcessor.add(new CheckedSpawnWave());
unbindProcessor.add(new WaveDropInstruction(1));
List<Instruction<DamageCondition, Boss<Zombie, CatacombsBossDetail>>> damageProcessor = waveMobManager.getDamageProcessor();
damageProcessor.add(new WaveDamageModifier());
}
use of com.skelril.openboss.Instruction in project Skree by Skelril.
the class CatacombsInstance method spawnStrong.
private Boss<Zombie, CatacombsBossDetail> spawnStrong(Location<World> loc) {
Zombie zombie = spawnZombie(loc);
Boss<Zombie, CatacombsBossDetail> boss = new Boss<>(zombie, new CatacombsBossDetail(this, wave * 2));
List<Instruction<BindCondition, Boss<Zombie, CatacombsBossDetail>>> bindProcessor = boss.getBindProcessor();
bindProcessor.add(new CatacombsHealthInstruction(25));
bindProcessor.add(new NamedBindInstruction<>("Wrathful Zombie"));
return boss;
}
use of com.skelril.openboss.Instruction in project Skree by Skelril.
the class CatacombsInstance method spawnNormal.
private Boss<Zombie, CatacombsBossDetail> spawnNormal(Location<World> loc) {
Zombie zombie = spawnZombie(loc);
Boss<Zombie, CatacombsBossDetail> boss = new Boss<>(zombie, new CatacombsBossDetail(this, wave));
List<Instruction<BindCondition, Boss<Zombie, CatacombsBossDetail>>> bindProcessor = boss.getBindProcessor();
bindProcessor.add(new CatacombsHealthInstruction(20));
bindProcessor.add(new NamedBindInstruction<>("Guardian Zombie"));
return boss;
}
use of com.skelril.openboss.Instruction in project Skree by Skelril.
the class CatacombsManager method setUpBoss.
private void setUpBoss() {
Sponge.getEventManager().registerListeners(SkreePlugin.inst(), new BossListener<>(bossManager, Zombie.class));
List<Instruction<BindCondition, Boss<Zombie, CatacombsBossDetail>>> bindProcessor = bossManager.getBindProcessor();
bindProcessor.add(new NamedBindInstruction<>("Necromancer"));
bindProcessor.add(new CatacombsHealthInstruction(250));
List<Instruction<UnbindCondition, Boss<Zombie, CatacombsBossDetail>>> unbindProcessor = bossManager.getUnbindProcessor();
unbindProcessor.add(new CheckedSpawnWave());
unbindProcessor.add(new WaveDropInstruction(2));
List<Instruction<DamageCondition, Boss<Zombie, CatacombsBossDetail>>> damageProcessor = bossManager.getDamageProcessor();
damageProcessor.add(new WaveDamageModifier());
}
Aggregations