diff --git a/assets/monster/bat_down_1.png b/assets/monster/bat_down_1.png new file mode 100644 index 0000000..5dc090f Binary files /dev/null and b/assets/monster/bat_down_1.png differ diff --git a/assets/monster/bat_down_2.png b/assets/monster/bat_down_2.png new file mode 100644 index 0000000..2bcece4 Binary files /dev/null and b/assets/monster/bat_down_2.png differ diff --git a/assets/monster/greenslime_down_1.png b/assets/monster/greenslime_down_1.png new file mode 100644 index 0000000..19e98a3 Binary files /dev/null and b/assets/monster/greenslime_down_1.png differ diff --git a/assets/monster/greenslime_down_2.png b/assets/monster/greenslime_down_2.png new file mode 100644 index 0000000..6c06cd4 Binary files /dev/null and b/assets/monster/greenslime_down_2.png differ diff --git a/assets/monster/orc_attack_down_1.png b/assets/monster/orc_attack_down_1.png new file mode 100644 index 0000000..58e1f35 Binary files /dev/null and b/assets/monster/orc_attack_down_1.png differ diff --git a/assets/monster/orc_attack_down_2.png b/assets/monster/orc_attack_down_2.png new file mode 100644 index 0000000..c047688 Binary files /dev/null and b/assets/monster/orc_attack_down_2.png differ diff --git a/assets/monster/orc_attack_left_1.png b/assets/monster/orc_attack_left_1.png new file mode 100644 index 0000000..feed1b6 Binary files /dev/null and b/assets/monster/orc_attack_left_1.png differ diff --git a/assets/monster/orc_attack_left_2.png b/assets/monster/orc_attack_left_2.png new file mode 100644 index 0000000..f2c668c Binary files /dev/null and b/assets/monster/orc_attack_left_2.png differ diff --git a/assets/monster/orc_attack_right_1.png b/assets/monster/orc_attack_right_1.png new file mode 100644 index 0000000..d5972c0 Binary files /dev/null and b/assets/monster/orc_attack_right_1.png differ diff --git a/assets/monster/orc_attack_right_2.png b/assets/monster/orc_attack_right_2.png new file mode 100644 index 0000000..6892016 Binary files /dev/null and b/assets/monster/orc_attack_right_2.png differ diff --git a/assets/monster/orc_attack_up_1.png b/assets/monster/orc_attack_up_1.png new file mode 100644 index 0000000..2e3f0cf Binary files /dev/null and b/assets/monster/orc_attack_up_1.png differ diff --git a/assets/monster/orc_attack_up_2.png b/assets/monster/orc_attack_up_2.png new file mode 100644 index 0000000..39332f1 Binary files /dev/null and b/assets/monster/orc_attack_up_2.png differ diff --git a/assets/monster/orc_down_1.png b/assets/monster/orc_down_1.png new file mode 100644 index 0000000..87ba2ab Binary files /dev/null and b/assets/monster/orc_down_1.png differ diff --git a/assets/monster/orc_down_2.png b/assets/monster/orc_down_2.png new file mode 100644 index 0000000..c02a1dd Binary files /dev/null and b/assets/monster/orc_down_2.png differ diff --git a/assets/monster/orc_left_1.png b/assets/monster/orc_left_1.png new file mode 100644 index 0000000..2033abe Binary files /dev/null and b/assets/monster/orc_left_1.png differ diff --git a/assets/monster/orc_left_2.png b/assets/monster/orc_left_2.png new file mode 100644 index 0000000..084e0e3 Binary files /dev/null and b/assets/monster/orc_left_2.png differ diff --git a/assets/monster/orc_right_1.png b/assets/monster/orc_right_1.png new file mode 100644 index 0000000..3f2bc22 Binary files /dev/null and b/assets/monster/orc_right_1.png differ diff --git a/assets/monster/orc_right_2.png b/assets/monster/orc_right_2.png new file mode 100644 index 0000000..670d44c Binary files /dev/null and b/assets/monster/orc_right_2.png differ diff --git a/assets/monster/orc_up_1.png b/assets/monster/orc_up_1.png new file mode 100644 index 0000000..4ea857c Binary files /dev/null and b/assets/monster/orc_up_1.png differ diff --git a/assets/monster/orc_up_2.png b/assets/monster/orc_up_2.png new file mode 100644 index 0000000..c1518a7 Binary files /dev/null and b/assets/monster/orc_up_2.png differ diff --git a/assets/monster/redslime_down_1.png b/assets/monster/redslime_down_1.png new file mode 100644 index 0000000..7bc2f0b Binary files /dev/null and b/assets/monster/redslime_down_1.png differ diff --git a/assets/monster/redslime_down_2.png b/assets/monster/redslime_down_2.png new file mode 100644 index 0000000..d34813a Binary files /dev/null and b/assets/monster/redslime_down_2.png differ diff --git a/assets/monster/skeletonlord_attack_down_1.png b/assets/monster/skeletonlord_attack_down_1.png new file mode 100644 index 0000000..16db36b Binary files /dev/null and b/assets/monster/skeletonlord_attack_down_1.png differ diff --git a/assets/monster/skeletonlord_attack_down_2.png b/assets/monster/skeletonlord_attack_down_2.png new file mode 100644 index 0000000..ce2f1cc Binary files /dev/null and b/assets/monster/skeletonlord_attack_down_2.png differ diff --git a/assets/monster/skeletonlord_attack_left_1.png b/assets/monster/skeletonlord_attack_left_1.png new file mode 100644 index 0000000..a51ca28 Binary files /dev/null and b/assets/monster/skeletonlord_attack_left_1.png differ diff --git a/assets/monster/skeletonlord_attack_left_2.png b/assets/monster/skeletonlord_attack_left_2.png new file mode 100644 index 0000000..a212b78 Binary files /dev/null and b/assets/monster/skeletonlord_attack_left_2.png differ diff --git a/assets/monster/skeletonlord_attack_right_1.png b/assets/monster/skeletonlord_attack_right_1.png new file mode 100644 index 0000000..b963341 Binary files /dev/null and b/assets/monster/skeletonlord_attack_right_1.png differ diff --git a/assets/monster/skeletonlord_attack_right_2.png b/assets/monster/skeletonlord_attack_right_2.png new file mode 100644 index 0000000..01619ed Binary files /dev/null and b/assets/monster/skeletonlord_attack_right_2.png differ diff --git a/assets/monster/skeletonlord_attack_up_1.png b/assets/monster/skeletonlord_attack_up_1.png new file mode 100644 index 0000000..1d13e87 Binary files /dev/null and b/assets/monster/skeletonlord_attack_up_1.png differ diff --git a/assets/monster/skeletonlord_attack_up_2.png b/assets/monster/skeletonlord_attack_up_2.png new file mode 100644 index 0000000..7dc3a61 Binary files /dev/null and b/assets/monster/skeletonlord_attack_up_2.png differ diff --git a/assets/monster/skeletonlord_down_1.png b/assets/monster/skeletonlord_down_1.png new file mode 100644 index 0000000..16d2fec Binary files /dev/null and b/assets/monster/skeletonlord_down_1.png differ diff --git a/assets/monster/skeletonlord_down_2.png b/assets/monster/skeletonlord_down_2.png new file mode 100644 index 0000000..194a18c Binary files /dev/null and b/assets/monster/skeletonlord_down_2.png differ diff --git a/assets/monster/skeletonlord_left_1.png b/assets/monster/skeletonlord_left_1.png new file mode 100644 index 0000000..4656525 Binary files /dev/null and b/assets/monster/skeletonlord_left_1.png differ diff --git a/assets/monster/skeletonlord_left_2.png b/assets/monster/skeletonlord_left_2.png new file mode 100644 index 0000000..543eb6a Binary files /dev/null and b/assets/monster/skeletonlord_left_2.png differ diff --git a/assets/monster/skeletonlord_phase2_attack_down_1.png b/assets/monster/skeletonlord_phase2_attack_down_1.png new file mode 100644 index 0000000..19b0342 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_attack_down_1.png differ diff --git a/assets/monster/skeletonlord_phase2_attack_down_2.png b/assets/monster/skeletonlord_phase2_attack_down_2.png new file mode 100644 index 0000000..fe10ed1 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_attack_down_2.png differ diff --git a/assets/monster/skeletonlord_phase2_attack_left_1.png b/assets/monster/skeletonlord_phase2_attack_left_1.png new file mode 100644 index 0000000..ee103c1 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_attack_left_1.png differ diff --git a/assets/monster/skeletonlord_phase2_attack_left_2.png b/assets/monster/skeletonlord_phase2_attack_left_2.png new file mode 100644 index 0000000..30f73c0 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_attack_left_2.png differ diff --git a/assets/monster/skeletonlord_phase2_attack_right_1.png b/assets/monster/skeletonlord_phase2_attack_right_1.png new file mode 100644 index 0000000..b963341 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_attack_right_1.png differ diff --git a/assets/monster/skeletonlord_phase2_attack_right_2.png b/assets/monster/skeletonlord_phase2_attack_right_2.png new file mode 100644 index 0000000..60b5c6e Binary files /dev/null and b/assets/monster/skeletonlord_phase2_attack_right_2.png differ diff --git a/assets/monster/skeletonlord_phase2_attack_up_1.png b/assets/monster/skeletonlord_phase2_attack_up_1.png new file mode 100644 index 0000000..1d13e87 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_attack_up_1.png differ diff --git a/assets/monster/skeletonlord_phase2_attack_up_2.png b/assets/monster/skeletonlord_phase2_attack_up_2.png new file mode 100644 index 0000000..7dc3a61 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_attack_up_2.png differ diff --git a/assets/monster/skeletonlord_phase2_down_1.png b/assets/monster/skeletonlord_phase2_down_1.png new file mode 100644 index 0000000..5978308 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_down_1.png differ diff --git a/assets/monster/skeletonlord_phase2_down_2.png b/assets/monster/skeletonlord_phase2_down_2.png new file mode 100644 index 0000000..f3cb983 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_down_2.png differ diff --git a/assets/monster/skeletonlord_phase2_left_1.png b/assets/monster/skeletonlord_phase2_left_1.png new file mode 100644 index 0000000..6b5bdbe Binary files /dev/null and b/assets/monster/skeletonlord_phase2_left_1.png differ diff --git a/assets/monster/skeletonlord_phase2_left_2.png b/assets/monster/skeletonlord_phase2_left_2.png new file mode 100644 index 0000000..fc2ac4a Binary files /dev/null and b/assets/monster/skeletonlord_phase2_left_2.png differ diff --git a/assets/monster/skeletonlord_phase2_right_1.png b/assets/monster/skeletonlord_phase2_right_1.png new file mode 100644 index 0000000..217709f Binary files /dev/null and b/assets/monster/skeletonlord_phase2_right_1.png differ diff --git a/assets/monster/skeletonlord_phase2_right_2.png b/assets/monster/skeletonlord_phase2_right_2.png new file mode 100644 index 0000000..8dc11c6 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_right_2.png differ diff --git a/assets/monster/skeletonlord_phase2_up_1.png b/assets/monster/skeletonlord_phase2_up_1.png new file mode 100644 index 0000000..7edf958 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_up_1.png differ diff --git a/assets/monster/skeletonlord_phase2_up_2.png b/assets/monster/skeletonlord_phase2_up_2.png new file mode 100644 index 0000000..ea1dcb9 Binary files /dev/null and b/assets/monster/skeletonlord_phase2_up_2.png differ diff --git a/assets/monster/skeletonlord_right_1.png b/assets/monster/skeletonlord_right_1.png new file mode 100644 index 0000000..0c5d2ed Binary files /dev/null and b/assets/monster/skeletonlord_right_1.png differ diff --git a/assets/monster/skeletonlord_right_2.png b/assets/monster/skeletonlord_right_2.png new file mode 100644 index 0000000..67b9811 Binary files /dev/null and b/assets/monster/skeletonlord_right_2.png differ diff --git a/assets/monster/skeletonlord_up_1.png b/assets/monster/skeletonlord_up_1.png new file mode 100644 index 0000000..7edf958 Binary files /dev/null and b/assets/monster/skeletonlord_up_1.png differ diff --git a/assets/monster/skeletonlord_up_2.png b/assets/monster/skeletonlord_up_2.png new file mode 100644 index 0000000..ea1dcb9 Binary files /dev/null and b/assets/monster/skeletonlord_up_2.png differ diff --git a/src/de/miaurizius/jgame2d/core/GamePanel.java b/src/de/miaurizius/jgame2d/core/GamePanel.java index 4da5d99..a136289 100644 --- a/src/de/miaurizius/jgame2d/core/GamePanel.java +++ b/src/de/miaurizius/jgame2d/core/GamePanel.java @@ -48,6 +48,7 @@ public class GamePanel extends JPanel implements Runnable { public Player player = new Player(this, keyH); public Entity[] obj = new Entity[10]; public Entity[] npc = new Entity[10]; + public Entity[] monster = new Entity[20]; ArrayList entityList = new ArrayList<>(); // GAME STATE @@ -64,7 +65,7 @@ public class GamePanel extends JPanel implements Runnable { public void setupGame() { assetSetter.setObject(); assetSetter.setNPC(); - //playMusic(0); //Play main theme + assetSetter.setMonster(); gameState = GameState.TITLE; } @@ -107,6 +108,7 @@ public class GamePanel extends JPanel implements Runnable { case PLAY: player.update(); for(Entity entity : npc) if(entity != null) entity.update(); + for(Entity entity : monster) if(entity != null) entity.update(); break; case PAUSE: break; @@ -134,6 +136,7 @@ public class GamePanel extends JPanel implements Runnable { entityList.add(player); for(Entity entity : npc) if(entity != null) entityList.add(entity); for(Entity entity : obj) if(entity != null) entityList.add(entity); + for(Entity entity : monster) if(entity != null) entityList.add(entity); entityList.sort(Comparator.comparingInt(o -> o.worldY)); for(Entity entity : entityList) entity.draw(graphics2d); entityList.clear(); diff --git a/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java b/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java index 74a6139..e3aba58 100644 --- a/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java +++ b/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java @@ -2,6 +2,7 @@ package de.miaurizius.jgame2d.core.handlers; import de.miaurizius.jgame2d.core.GamePanel; import de.miaurizius.jgame2d.entity.OldManNPC; +import de.miaurizius.jgame2d.entity.monster.GreenSlimeMON; import de.miaurizius.jgame2d.entity.objects.DoorObj; public class AssetSetter { @@ -14,14 +15,6 @@ public class AssetSetter { public void setObject() { - panel.obj[0] = new DoorObj(panel); - panel.obj[0].worldX = panel.tileSize*21; - panel.obj[0].worldY = panel.tileSize*22; - - panel.obj[1] = new DoorObj(panel); - panel.obj[1].worldX = panel.tileSize*23; - panel.obj[1].worldY = panel.tileSize*25; - } public void setNPC() { @@ -30,4 +23,14 @@ public class AssetSetter { panel.npc[0].worldY = panel.tileSize*21; } + public void setMonster() { + panel.monster[0] = new GreenSlimeMON(panel); + panel.monster[0].worldX = panel.tileSize*23; + panel.monster[0].worldY = panel.tileSize*36; + + panel.monster[1] = new GreenSlimeMON(panel); + panel.monster[1].worldX = panel.tileSize*23; + panel.monster[1].worldY = panel.tileSize*37; + } + } diff --git a/src/de/miaurizius/jgame2d/entity/monster/GreenSlimeMON.java b/src/de/miaurizius/jgame2d/entity/monster/GreenSlimeMON.java new file mode 100644 index 0000000..5c90e55 --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/monster/GreenSlimeMON.java @@ -0,0 +1,51 @@ +package de.miaurizius.jgame2d.entity.monster; + +import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.core.enums.Direction; +import de.miaurizius.jgame2d.entity.Entity; + +import java.util.Random; + +public class GreenSlimeMON extends Entity { + + public GreenSlimeMON(GamePanel panel) { + super(panel); + name = "green-slime"; + speed = 1; + maxLife = 4; + life = maxLife; + + solidArea.x = 3; + solidArea.y = 18; + solidArea.width = 42; + solidArea.height = 30; + solidAreaDefaultX = solidArea.x; + solidAreaDefaultY = solidArea.y; + + getImage(); + } + + public void getImage() { + up1 = initEntitySprites("monster/greenslime_down_1"); + up2 = initEntitySprites("monster/greenslime_down_2"); + down1 = initEntitySprites("monster/greenslime_down_1"); + down2 = initEntitySprites("monster/greenslime_down_2"); + left1 = initEntitySprites("monster/greenslime_down_1"); + left2 = initEntitySprites("monster/greenslime_down_2"); + right1 = initEntitySprites("monster/greenslime_down_1"); + right2 = initEntitySprites("monster/greenslime_down_2"); + } + + public void setAction() { + actionLock++; + if(actionLock != 120) return; //lock action for x frames + Random rand = new Random(); + int i = rand.nextInt(100)+1; //Generate number between 1 and 100 + if(i <= 25) direction = Direction.UP; + if(i > 25 && i <= 50) direction = Direction.DOWN; + if(i > 50 && i <= 75) direction = Direction.LEFT; + if(i > 75) direction = Direction.RIGHT; + actionLock = 0; + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java b/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java index c13de80..e9abdae 100644 --- a/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java +++ b/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java @@ -10,6 +10,13 @@ public class DoorObj extends Entity { name = "door"; down1 = initEntitySprites("objects/door"); collision = true; + + solidArea.x = 0; + solidArea.y = 16; + solidArea.width = 48; + solidArea.height = 32; + solidAreaDefaultX = solidArea.x; + solidAreaDefaultY = solidArea.y; } }