added strong towers
This commit is contained in:
@ -4,10 +4,7 @@ import eu.mhsl.minenet.minigames.instance.Dimension;
|
||||
import eu.mhsl.minenet.minigames.instance.game.stateless.StatelessGame;
|
||||
import eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.enemies.WaveGenerator;
|
||||
import eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.generator.MazeGenerator;
|
||||
import eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers.BlazeTower;
|
||||
import eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers.SkeletonTower;
|
||||
import eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers.Tower;
|
||||
import eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers.ZombieTower;
|
||||
import eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers.*;
|
||||
import eu.mhsl.minenet.minigames.score.LastWinsScore;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.coordinate.Pos;
|
||||
@ -33,12 +30,20 @@ public class Towerdefense extends StatelessGame {
|
||||
private final Map<Material, Class<? extends Tower>> availableTowers = Map.of(
|
||||
Material.SKELETON_SPAWN_EGG, SkeletonTower.class,
|
||||
Material.ZOMBIE_SPAWN_EGG, ZombieTower.class,
|
||||
Material.BLAZE_SPAWN_EGG, BlazeTower.class
|
||||
Material.BLAZE_SPAWN_EGG, BlazeTower.class,
|
||||
Material.ENDERMAN_SPAWN_EGG, EndermanTower.class,
|
||||
Material.PIGLIN_BRUTE_SPAWN_EGG, BruteTower.class,
|
||||
Material.WITHER_SPAWN_EGG, WitherTower.class,
|
||||
Material.ENDER_DRAGON_SPAWN_EGG, EnderDragonTower.class
|
||||
);
|
||||
private final Map<Class<? extends Tower>, Integer> prices = Map.of(
|
||||
ZombieTower.class, 4,
|
||||
SkeletonTower.class, 3,
|
||||
BlazeTower.class, 8
|
||||
BlazeTower.class, 8,
|
||||
EndermanTower.class, 20,
|
||||
BruteTower.class, 27,
|
||||
WitherTower.class, 40,
|
||||
EnderDragonTower.class, 200
|
||||
);
|
||||
private static final int pathLength = 10;
|
||||
|
||||
|
@ -0,0 +1,19 @@
|
||||
package eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers;
|
||||
|
||||
import net.minestom.server.entity.EntityCreature;
|
||||
import net.minestom.server.entity.EntityType;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.item.Material;
|
||||
|
||||
public class BruteTower extends Tower {
|
||||
public BruteTower() {
|
||||
super(EntityType.PIGLIN_BRUTE, 20, 2, 4);
|
||||
this.setItemInMainHand(ItemStack.of(Material.GOLDEN_AXE));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attack(EntityCreature enemy) {
|
||||
this.swingMainHand();
|
||||
this.causeDamage(enemy);
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers;
|
||||
|
||||
import net.minestom.server.entity.EntityCreature;
|
||||
import net.minestom.server.entity.EntityType;
|
||||
|
||||
public class EnderDragonTower extends ShootingTower{
|
||||
public EnderDragonTower() {
|
||||
super(EntityType.ENDER_DRAGON, 40, 7, 20);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attack(EntityCreature enemy) {
|
||||
this.shootProjectile(enemy, EntityType.DRAGON_FIREBALL, 2, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onProjectileHit(EntityCreature enemy) {
|
||||
super.onProjectileHit(enemy);
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers;
|
||||
|
||||
import net.minestom.server.entity.EntityCreature;
|
||||
import net.minestom.server.entity.EntityType;
|
||||
|
||||
public class EndermanTower extends Tower {
|
||||
public EndermanTower() {
|
||||
super(EntityType.ENDERMAN, 12, 1, 6);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attack(EntityCreature enemy) {
|
||||
this.swingMainHand();
|
||||
this.causeDamage(enemy);
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package eu.mhsl.minenet.minigames.instance.game.stateless.types.towerdefense.towers;
|
||||
|
||||
import net.minestom.server.entity.EntityCreature;
|
||||
import net.minestom.server.entity.EntityType;
|
||||
|
||||
public class WitherTower extends ShootingTower {
|
||||
public WitherTower() {
|
||||
super(EntityType.WITHER, 18, 4, 13);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attack(EntityCreature enemy) {
|
||||
this.shootProjectile(enemy, EntityType.WITHER_SKULL, 2, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onProjectileHit(EntityCreature enemy) {
|
||||
super.onProjectileHit(enemy);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user