diff --git a/src/de/miaurizius/jgame2d/core/enums/EntityType.java b/src/de/miaurizius/jgame2d/core/enums/EntityType.java index 61e5494..d31626c 100644 --- a/src/de/miaurizius/jgame2d/core/enums/EntityType.java +++ b/src/de/miaurizius/jgame2d/core/enums/EntityType.java @@ -7,6 +7,7 @@ public enum EntityType { MONSTER, ITEM, WORLD, + PICKUP, PROJECTILE, WEAPON, SHIELD; diff --git a/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java b/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java index a94722b..ab60089 100644 --- a/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java +++ b/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java @@ -1,10 +1,7 @@ package de.miaurizius.jgame2d.core.handlers; import de.miaurizius.jgame2d.core.GamePanel; -import de.miaurizius.jgame2d.entity.item.AxeObj; -import de.miaurizius.jgame2d.entity.item.IronShieldObj; -import de.miaurizius.jgame2d.entity.item.KeyObj; -import de.miaurizius.jgame2d.entity.item.PotionObj; +import de.miaurizius.jgame2d.entity.item.*; import de.miaurizius.jgame2d.entity.npc.OldManNPC; import de.miaurizius.jgame2d.entity.monster.GreenSlimeMON; @@ -18,12 +15,12 @@ public class AssetSetter { public void setObject() { int i = 0; - panel.obj[i] = new KeyObj(panel); + panel.obj[i] = new HeartObj(panel); panel.obj[i].worldX = panel.tileSize*25; panel.obj[i].worldY = panel.tileSize*23; i++; - panel.obj[i] = new KeyObj(panel); + panel.obj[i] = new CoinObj(panel); panel.obj[i].worldX = panel.tileSize*21; panel.obj[i].worldY = panel.tileSize*19; i++; diff --git a/src/de/miaurizius/jgame2d/entity/Entity.java b/src/de/miaurizius/jgame2d/entity/Entity.java index b935468..daf3383 100644 --- a/src/de/miaurizius/jgame2d/entity/Entity.java +++ b/src/de/miaurizius/jgame2d/entity/Entity.java @@ -72,6 +72,7 @@ public class Entity { public int defenseValue; public String description; public int useCost; + public int value; public Entity(GamePanel panel) { this.panel = panel; diff --git a/src/de/miaurizius/jgame2d/entity/Player.java b/src/de/miaurizius/jgame2d/entity/Player.java index 68fe8b0..cfd556e 100644 --- a/src/de/miaurizius/jgame2d/entity/Player.java +++ b/src/de/miaurizius/jgame2d/entity/Player.java @@ -48,6 +48,8 @@ public class Player extends Entity { // DEFAULT public void update() { + if(life > maxLife) life = maxLife; + if(attacking) { attacking(); return; @@ -124,14 +126,22 @@ public class Player extends Entity { // INTERACTION public void pickObject(int index) { - if(index == 999) return; - if(inventory.size() == maxInvSize) { - panel.ui.addMessage("Your inventory is full!"); - return; + if(index == 999 || panel.obj[index] == null) return; + + // PICKUP ONLY + if(panel.obj[index].type == EntityType.PICKUP) { + panel.obj[index].use(this); + } + // INVENTORY ITEMS + else { + if(inventory.size() == maxInvSize) { + panel.ui.addMessage("Your inventory is full!"); + return; + } + inventory.add(panel.obj[index]); + panel.playSE(1); + panel.ui.addMessage("Picked up " + panel.obj[index].name + "!"); } - inventory.add(panel.obj[index]); - panel.playSE(1); - panel.ui.addMessage("Picked up " + panel.obj[index].name + "!"); panel.obj[index] = null; } diff --git a/src/de/miaurizius/jgame2d/entity/item/CoinObj.java b/src/de/miaurizius/jgame2d/entity/item/CoinObj.java new file mode 100644 index 0000000..6033048 --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/item/CoinObj.java @@ -0,0 +1,26 @@ +package de.miaurizius.jgame2d.entity.item; + +import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.core.enums.EntityType; +import de.miaurizius.jgame2d.entity.Entity; + +public class CoinObj extends Entity { + + GamePanel panel; + + public CoinObj(GamePanel panel) { + super(panel); + this.panel = panel; + + name = "Coin"; + type = EntityType.PICKUP; + value = 1; + down1 = initEntitySprites("/objects/coin_bronze"); + } + + public void use(Entity entity) { + panel.playSE(1); + panel.ui.addMessage("Coin +"+value); + panel.player.coins += value; + } +} diff --git a/src/de/miaurizius/jgame2d/entity/item/HeartObj.java b/src/de/miaurizius/jgame2d/entity/item/HeartObj.java index d387f68..fefdb78 100644 --- a/src/de/miaurizius/jgame2d/entity/item/HeartObj.java +++ b/src/de/miaurizius/jgame2d/entity/item/HeartObj.java @@ -6,13 +6,26 @@ import de.miaurizius.jgame2d.entity.Entity; public class HeartObj extends Entity { + GamePanel panel; + public HeartObj(GamePanel panel) { super(panel); - name = "Heart Container"; - type = EntityType.ITEM; + this.panel = panel; + + name = "Heart"; + type = EntityType.PICKUP; + value = 2; + + down1 = initEntitySprites("objects/heart_full"); image = initEntitySprites("objects/heart_full"); image2 = initEntitySprites("objects/heart_half"); image3 = initEntitySprites("objects/heart_blank"); } + public void use(Entity entity) { + panel.playSE(2); + panel.ui.addMessage("Life +"+value); + entity.life += value; + } + }