Search in sources :

Example 11 with Instruction

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);
}
Also used : Zombie(org.spongepowered.api.entity.living.monster.Zombie) CatacombsHealthInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction) Instruction(com.skelril.openboss.Instruction) Boss(com.skelril.openboss.Boss) EntityDetail(com.skelril.openboss.EntityDetail)

Example 12 with Instruction

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());
}
Also used : WaveDamageModifier(com.skelril.skree.content.zone.group.catacombs.instruction.WaveDamageModifier) CheckedSpawnWave(com.skelril.skree.content.zone.group.catacombs.instruction.CheckedSpawnWave) Zombie(org.spongepowered.api.entity.living.monster.Zombie) WaveDropInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.WaveDropInstruction) NamedBindInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.bossmove.NamedBindInstruction) Instruction(com.skelril.openboss.Instruction) WaveDropInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.WaveDropInstruction) CatacombsHealthInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction)

Example 13 with Instruction

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;
}
Also used : Boss(com.skelril.openboss.Boss) Zombie(org.spongepowered.api.entity.living.monster.Zombie) CatacombsHealthInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction) Instruction(com.skelril.openboss.Instruction) CatacombsHealthInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction)

Example 14 with Instruction

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;
}
Also used : Boss(com.skelril.openboss.Boss) Zombie(org.spongepowered.api.entity.living.monster.Zombie) CatacombsHealthInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction) Instruction(com.skelril.openboss.Instruction) CatacombsHealthInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction)

Example 15 with Instruction

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());
}
Also used : WaveDamageModifier(com.skelril.skree.content.zone.group.catacombs.instruction.WaveDamageModifier) CheckedSpawnWave(com.skelril.skree.content.zone.group.catacombs.instruction.CheckedSpawnWave) Zombie(org.spongepowered.api.entity.living.monster.Zombie) WaveDropInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.WaveDropInstruction) NamedBindInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.bossmove.NamedBindInstruction) Instruction(com.skelril.openboss.Instruction) WaveDropInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.WaveDropInstruction) CatacombsHealthInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction) CatacombsHealthInstruction(com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction)

Aggregations

Instruction (com.skelril.openboss.Instruction)22 Living (org.spongepowered.api.entity.living.Living)15 NamedBindInstruction (com.skelril.skree.content.zone.group.catacombs.instruction.bossmove.NamedBindInstruction)12 ZoneBossDetail (com.skelril.skree.content.zone.ZoneBossDetail)11 HealthBindInstruction (com.skelril.skree.content.zone.group.freakyfour.boss.bossmove.HealthBindInstruction)10 Entity (org.spongepowered.api.entity.Entity)7 BackTeleportInstruction (com.skelril.skree.content.zone.group.freakyfour.boss.bossmove.BackTeleportInstruction)6 HealableInstruction (com.skelril.skree.content.zone.group.freakyfour.boss.bossmove.HealableInstruction)6 Zombie (org.spongepowered.api.entity.living.monster.Zombie)6 CatacombsHealthInstruction (com.skelril.skree.content.zone.group.catacombs.instruction.CatacombsHealthInstruction)5 Boss (com.skelril.openboss.Boss)4 FreakyFourBossDeath (com.skelril.skree.content.zone.group.freakyfour.boss.bossmove.FreakyFourBossDeath)4 IndirectEntityDamageSource (org.spongepowered.api.event.cause.entity.damage.source.IndirectEntityDamageSource)4 DamageEntityEvent (org.spongepowered.api.event.entity.DamageEntityEvent)4 WildernessBossDetail (com.skelril.skree.content.world.wilderness.WildernessBossDetail)3 Player (org.spongepowered.api.entity.living.player.Player)3 DamageSource (org.spongepowered.api.event.cause.entity.damage.source.DamageSource)3 EntityDamageSource (org.spongepowered.api.event.cause.entity.damage.source.EntityDamageSource)3 World (org.spongepowered.api.world.World)3 Vector3d (com.flowpowered.math.vector.Vector3d)2