diff --git a/core/assets/sprites/playerFullHealth.png b/core/assets/sprites/playerFullHealth.png deleted file mode 100644 index e48e433..0000000 Binary files a/core/assets/sprites/playerFullHealth.png and /dev/null differ diff --git a/core/assets/sprites/playerHalfHealth.png b/core/assets/sprites/playerHalfHealth.png deleted file mode 100644 index 53b136a..0000000 Binary files a/core/assets/sprites/playerHalfHealth.png and /dev/null differ diff --git a/core/assets/sprites/playerHealthBar.png b/core/assets/sprites/playerHealthBar.png new file mode 100644 index 0000000..eef1574 Binary files /dev/null and b/core/assets/sprites/playerHealthBar.png differ diff --git a/core/assets/sprites/playerZeroHealth.png b/core/assets/sprites/playerZeroHealth.png deleted file mode 100644 index bf32870..0000000 Binary files a/core/assets/sprites/playerZeroHealth.png and /dev/null differ diff --git a/core/assets/sprites/potion.png b/core/assets/sprites/potion.png new file mode 100644 index 0000000..d7f9da1 Binary files /dev/null and b/core/assets/sprites/potion.png differ diff --git a/core/assets/sprites/sword.png b/core/assets/sprites/sword.png index c4d865a..8c7b07a 100644 Binary files a/core/assets/sprites/sword.png and b/core/assets/sprites/sword.png differ diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 859e605..9ffc22f 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -27,7 +27,7 @@ import com.dungeoncrawler.model.Item; import com.dungeoncrawler.model.ItemContainer; import com.dungeoncrawler.model.items.Key; import com.dungeoncrawler.model.items.Potion; -import com.dungeoncrawler.model.items.Sword; +import com.dungeoncrawler.model.items.Amulet; import java.util.ArrayList; public class Controller extends ApplicationAdapter implements InputProcessor{ @@ -65,7 +65,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void create(){ - volume = 0.01f; arrows = new Entity[10]; @@ -142,7 +141,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ // Render methode zum rendern der einzelnen Sprites wird aufgerufen m.render(batch, d.getPlayer(), d.getCurrentEntities(), arrows, tileX, tileY, level, roomPosX, roomPosY); - hc.updateInventory(batch, d.getPlayer()); + hc.updateHud(batch, d.getPlayer()); + d.getPlayer().updateItems(); } } } @@ -382,6 +382,12 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ m.music.setVolume(volume); } } + + if(keycode == Input.Keys.Q){ + if(m != null && m.getIsLoading() == false){ + d.getPlayer().getInv().dropItem(); + } + } return true; } diff --git a/core/src/com/dungeoncrawler/model/DungeonGenerator.java b/core/src/com/dungeoncrawler/model/DungeonGenerator.java index 163efbe..7ab7061 100644 --- a/core/src/com/dungeoncrawler/model/DungeonGenerator.java +++ b/core/src/com/dungeoncrawler/model/DungeonGenerator.java @@ -6,7 +6,7 @@ package com.dungeoncrawler.model; import com.dungeoncrawler.model.entities.*; -import com.dungeoncrawler.model.items.Sword; +import com.dungeoncrawler.model.items.Amulet; import java.util.ArrayList; /** @@ -206,7 +206,7 @@ public class DungeonGenerator { int id = (int) (Math.random() * 2); switch(id){ case 0: - tempItem = new Sword(lvl); + tempItem = new Amulet(lvl); break; /*case 1: diff --git a/core/src/com/dungeoncrawler/model/Inventory.java b/core/src/com/dungeoncrawler/model/Inventory.java index 1396b46..cdf2ddc 100644 --- a/core/src/com/dungeoncrawler/model/Inventory.java +++ b/core/src/com/dungeoncrawler/model/Inventory.java @@ -58,8 +58,8 @@ public class Inventory { selected += i; } - public void dropItem(int x){ - items[x] = null; + public void dropItem(){ + items[selected] = null; } diff --git a/core/src/com/dungeoncrawler/model/Item.java b/core/src/com/dungeoncrawler/model/Item.java index 7ab6858..e173b5d 100644 --- a/core/src/com/dungeoncrawler/model/Item.java +++ b/core/src/com/dungeoncrawler/model/Item.java @@ -23,6 +23,12 @@ public abstract class Item { public int getId(){ return this.id; } + public int getDmg(){ + return dmg; + } + public int getHeal(){ + return heal; + } /** * @return the amount */ diff --git a/core/src/com/dungeoncrawler/model/ItemContainer.java b/core/src/com/dungeoncrawler/model/ItemContainer.java index 38a9f10..91f406d 100644 --- a/core/src/com/dungeoncrawler/model/ItemContainer.java +++ b/core/src/com/dungeoncrawler/model/ItemContainer.java @@ -28,6 +28,7 @@ public class ItemContainer { /** * @param xPos the xPos to set + * */ public void setxPos(int xPos) { this.xPos = xPos; diff --git a/core/src/com/dungeoncrawler/model/entities/Player.java b/core/src/com/dungeoncrawler/model/entities/Player.java index 4e9c7d7..0e8d2b6 100644 --- a/core/src/com/dungeoncrawler/model/entities/Player.java +++ b/core/src/com/dungeoncrawler/model/entities/Player.java @@ -16,16 +16,22 @@ import com.dungeoncrawler.model.ItemContainer; */ public class Player extends Entity { + int standartDmg; + int standartMaxHp; + public Player() { super(200, 200, 1); - this.maxhp = 5*lvl; + this.maxhp = 5 * lvl; this.hp = this.maxhp; + standartMaxHp = this.maxhp; this.dmg = 3*lvl; + standartDmg = this.dmg; id = -1; inv = new Inventory(3,2); // TODO: Sinnvolle Werte finden + } public void pickUp(Item item){ @@ -34,5 +40,15 @@ public class Player extends Entity { public Inventory getInv(){ return inv; } + public void updateItems(){ + if(inv.getItem(1) != null){ + dmg = standartDmg + inv.getItem(1).getDmg(); + maxhp = standartMaxHp + inv.getItem(1).getHeal(); + } + else{ + dmg = standartDmg; + maxhp = standartMaxHp; + } + } } diff --git a/core/src/com/dungeoncrawler/model/items/Sword.java b/core/src/com/dungeoncrawler/model/items/Amulet.java similarity index 80% rename from core/src/com/dungeoncrawler/model/items/Sword.java rename to core/src/com/dungeoncrawler/model/items/Amulet.java index c7102ef..06f5290 100644 --- a/core/src/com/dungeoncrawler/model/items/Sword.java +++ b/core/src/com/dungeoncrawler/model/items/Amulet.java @@ -11,11 +11,12 @@ import com.dungeoncrawler.model.Item; * * @author jonathan */ -public class Sword extends Item { +public class Amulet extends Item { - public Sword(int lvl) { + public Amulet(int lvl) { super(lvl); this.dmg = lvl * 4; + this.heal = lvl * 4; this.id = 2; } diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index bb0a98c..11c5f4b 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -172,7 +172,7 @@ public class GameScreen { roomChangeRow++; } } - },0, 0.02f); + },0, 0.01f); } @@ -226,7 +226,7 @@ public class GameScreen { tmr.setView(camera); tmr.render(); - camera.zoom = 700f; + camera.zoom = 700f; // Standart 700f camera.update(); batch.setProjectionMatrix(camera.combined); diff --git a/core/src/com/dungeoncrawler/view/HudContainer.java b/core/src/com/dungeoncrawler/view/HudContainer.java index bb46c5a..bd206cc 100644 --- a/core/src/com/dungeoncrawler/view/HudContainer.java +++ b/core/src/com/dungeoncrawler/view/HudContainer.java @@ -8,6 +8,7 @@ package com.dungeoncrawler.view; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.dungeoncrawler.model.Item; import com.dungeoncrawler.model.entities.Player; @@ -26,7 +27,12 @@ public class HudContainer { Texture selectedTexture; Sprite selectedSprite; + Texture playerHealthTexture; + Sprite playerHealthSprite; + public HudContainer(){ + playerHealthTexture = new Texture("sprites/playerHealthBar.png"); + playerHealthSprite = new Sprite(); selectedTexture = new Texture("sprites/selected.png"); selectedSprite = new Sprite(selectedTexture); HudTexture = new Texture("sprites/hud.png"); @@ -62,10 +68,9 @@ public class HudContainer { selected = 2; selectedSprite.setX(invXPos[selected] - 2f); selectedSprite.setY(invYPos[selected] - 2f); - } - public void updateInventory(SpriteBatch batch, Player p){ + public void updateHud(SpriteBatch batch, Player p){ InventoryItemSprites = new Sprite[8]; Item[] items = p.getInv().getItem(); @@ -77,6 +82,15 @@ public class HudContainer { } selectedSprite.setX(invXPos[selected] - 2f); selectedSprite.setY(invYPos[selected] - 2f); + + p.setHp(3); + float n = p.getHp() / p.getMaxhp(); + int newWidth = (int) (n * 122); + TextureRegion[][] playerHealthRegion = TextureRegion.split(playerHealthTexture,newWidth, playerHealthTexture.getHeight()); + + playerHealthSprite = new Sprite(playerHealthRegion[0][0]); + playerHealthSprite.setPosition(200f, 200f); + batch.begin(); HudSprite.draw(batch); for(int i = 0; i < InventoryItemSprites.length ;i++){ @@ -85,8 +99,10 @@ public class HudContainer { } } selectedSprite.draw(batch); + playerHealthSprite.draw(batch); batch.end(); + } public void addItem(Item item, int x){ diff --git a/core/src/com/dungeoncrawler/view/MainMenu.java b/core/src/com/dungeoncrawler/view/MainMenu.java index 8c3a216..10dc3af 100644 --- a/core/src/com/dungeoncrawler/view/MainMenu.java +++ b/core/src/com/dungeoncrawler/view/MainMenu.java @@ -58,10 +58,10 @@ public class MainMenu{ backgroundSprite.setY(0); - camera = new OrthographicCamera(1, h/w); - camera.translate(backgroundSprite.getWidth()/2, backgroundSprite.getHeight()/2); - camera.zoom = 1150f; - camera.update(); + //camera = new OrthographicCamera(1, h/w); + //camera.translate(backgroundSprite.getWidth()/2, backgroundSprite.getHeight()/2); + //camera.zoom = 1150f; + //camera.update(); Pixmap pm = new Pixmap(Gdx.files.internal("sprites/cursor.png")); Gdx.graphics.setCursor(Gdx.graphics.newCursor(pm, 0, 0)); @@ -86,7 +86,7 @@ public class MainMenu{ Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); - batch.setProjectionMatrix(camera.combined); + //batch.setProjectionMatrix(camera.combined); backgroundSprite.draw(batch); startButtonSprite.draw(batch); quitButtonSprite.draw(batch); diff --git a/core/src/com/dungeoncrawler/view/MapGenerator.java b/core/src/com/dungeoncrawler/view/MapGenerator.java index e45e3ef..0f69af2 100644 --- a/core/src/com/dungeoncrawler/view/MapGenerator.java +++ b/core/src/com/dungeoncrawler/view/MapGenerator.java @@ -312,7 +312,7 @@ public class MapGenerator { Item item = container.getItem(); if(item.getId() == 2){ - AnimatedObject swordSprite = new AnimatedObject(sword, 24, 24); + AnimatedObject swordSprite = new AnimatedObject(sword, 48, 48); swordSprite.getSprite().setPosition(container.getxPos(), container.getyPos()); temp.getMapItems().add(swordSprite); }