diff --git a/data.mv.db b/data.mv.db index e8e9d83..208c521 100644 Binary files a/data.mv.db and b/data.mv.db differ diff --git a/src/main/java/com/bartlomiejpluta/demo/entity/Player.java b/src/main/java/com/bartlomiejpluta/demo/entity/Player.java index f02b051..6d32289 100644 --- a/src/main/java/com/bartlomiejpluta/demo/entity/Player.java +++ b/src/main/java/com/bartlomiejpluta/demo/entity/Player.java @@ -1,6 +1,7 @@ package com.bartlomiejpluta.demo.entity; import com.bartlomiejpluta.base.api.character.Character; +import com.bartlomiejpluta.base.util.random.DiceRoller; import com.bartlomiejpluta.demo.world.item.Item; import com.bartlomiejpluta.demo.world.item.ItemStack; import com.bartlomiejpluta.demo.world.weapon.Ammunition; @@ -8,6 +9,8 @@ import com.bartlomiejpluta.demo.world.weapon.Weapon; import lombok.NonNull; import org.joml.Vector2i; +import java.util.Arrays; + public class Player extends Creature { public static final int EQUIPMENT_SIZE = 6 * 6; private final Item[] equipment = new Item[EQUIPMENT_SIZE]; @@ -15,8 +18,22 @@ public class Player extends Creature { public Player(@NonNull Character entity) { super(entity); - this.hp = 20; - this.maxHp = 20; + reset(); + } + + public void reset() { + var data = DB.dao.levels.find(1); + this.maxHp = DiceRoller.roll(data.getMaxHp()); + this.hp = this.maxHp; + + alive = true; + changeCharacterSet(A.charsets.luna.uid); + setScale(1f); + setSpeed(4f); + setAnimationSpeed(1f); + setBlocking(true); + + Arrays.fill(equipment, null); } public void interact() { diff --git a/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java b/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java index 7a263d1..c90727b 100644 --- a/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java +++ b/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java @@ -57,18 +57,11 @@ public class DemoRunner implements GameRunner { this.player = new Player(context.createCharacter(A.charsets.luna.uid)); } - private void resetPlayer() { - this.player.changeCharacterSet(A.charsets.luna.uid); - this.player.setScale(1f); - this.player.setSpeed(4f); - this.player.setAnimationSpeed(1f); - this.player.setBlocking(true); - } - public void newGame() { + context.resetMaps(); guiManager.closeAll(); guiManager.enableGameMenu(); - resetPlayer(); + player.reset(); context.openMap(A.maps.hero_home.uid); context.getMap().getObjectLayer(A.maps.hero_home.layers.main).addEntity(this.player); player.setCoordinates(11, 14);