From 298e6c624e82489f64ea13f34043690dad784ac1 Mon Sep 17 00:00:00 2001 From: Maurice Date: Sun, 30 Nov 2025 01:53:28 +0100 Subject: [PATCH] added player stats and re-ordered some classes --- src/de/miaurizius/jgame2d/core/UI.java | 2 +- .../jgame2d/core/enums/EntityType.java | 2 ++ .../jgame2d/core/handlers/AssetSetter.java | 2 +- .../jgame2d/core/handlers/EventHandler.java | 1 + src/de/miaurizius/jgame2d/entity/Entity.java | 18 +++++++++-- .../entity/{objects => item}/BootsObj.java | 4 ++- .../entity/{objects => item}/HeartObj.java | 4 ++- .../entity/{objects => item}/KeyObj.java | 4 ++- .../jgame2d/entity/item/ShieldWoodObj.java | 17 +++++++++++ .../jgame2d/entity/item/SwordNormalObj.java | 18 +++++++++++ .../jgame2d/entity/{ => npc}/OldManNPC.java | 3 +- .../jgame2d/entity/objects/SuperObject.java | 30 ------------------- .../entity/{objects => world}/ChestObj.java | 2 +- .../entity/{objects => world}/DoorObj.java | 2 +- 14 files changed, 69 insertions(+), 40 deletions(-) rename src/de/miaurizius/jgame2d/entity/{objects => item}/BootsObj.java (68%) rename src/de/miaurizius/jgame2d/entity/{objects => item}/HeartObj.java (75%) rename src/de/miaurizius/jgame2d/entity/{objects => item}/KeyObj.java (67%) create mode 100644 src/de/miaurizius/jgame2d/entity/item/ShieldWoodObj.java create mode 100644 src/de/miaurizius/jgame2d/entity/item/SwordNormalObj.java rename src/de/miaurizius/jgame2d/entity/{ => npc}/OldManNPC.java (95%) delete mode 100644 src/de/miaurizius/jgame2d/entity/objects/SuperObject.java rename src/de/miaurizius/jgame2d/entity/{objects => world}/ChestObj.java (85%) rename src/de/miaurizius/jgame2d/entity/{objects => world}/DoorObj.java (91%) diff --git a/src/de/miaurizius/jgame2d/core/UI.java b/src/de/miaurizius/jgame2d/core/UI.java index 7f2f16f..fa41513 100644 --- a/src/de/miaurizius/jgame2d/core/UI.java +++ b/src/de/miaurizius/jgame2d/core/UI.java @@ -2,7 +2,7 @@ package de.miaurizius.jgame2d.core; import de.miaurizius.jgame2d.core.enums.GameState; import de.miaurizius.jgame2d.entity.Entity; -import de.miaurizius.jgame2d.entity.objects.HeartObj; +import de.miaurizius.jgame2d.entity.item.HeartObj; import java.awt.*; import java.awt.image.BufferedImage; diff --git a/src/de/miaurizius/jgame2d/core/enums/EntityType.java b/src/de/miaurizius/jgame2d/core/enums/EntityType.java index 3bfaec1..d56fe53 100644 --- a/src/de/miaurizius/jgame2d/core/enums/EntityType.java +++ b/src/de/miaurizius/jgame2d/core/enums/EntityType.java @@ -5,5 +5,7 @@ public enum EntityType { PLAYER, NPC, MONSTER, + ITEM, + WORLD } diff --git a/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java b/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java index 8323e0d..a3734b4 100644 --- a/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java +++ b/src/de/miaurizius/jgame2d/core/handlers/AssetSetter.java @@ -1,7 +1,7 @@ package de.miaurizius.jgame2d.core.handlers; import de.miaurizius.jgame2d.core.GamePanel; -import de.miaurizius.jgame2d.entity.OldManNPC; +import de.miaurizius.jgame2d.entity.npc.OldManNPC; import de.miaurizius.jgame2d.entity.monster.GreenSlimeMON; public class AssetSetter { diff --git a/src/de/miaurizius/jgame2d/core/handlers/EventHandler.java b/src/de/miaurizius/jgame2d/core/handlers/EventHandler.java index 21b4360..03122ca 100644 --- a/src/de/miaurizius/jgame2d/core/handlers/EventHandler.java +++ b/src/de/miaurizius/jgame2d/core/handlers/EventHandler.java @@ -84,6 +84,7 @@ public class EventHandler { if(!panel.keyH.spacePressed) return; panel.gameState = gameState; panel.player.attackCancel = true; + System.out.println("attack cancel"); panel.playSE(2); panel.ui.currentDialogue = "You drank the holy water.\nYour life has been recovered!"; panel.player.life = panel.player.maxLife; diff --git a/src/de/miaurizius/jgame2d/entity/Entity.java b/src/de/miaurizius/jgame2d/entity/Entity.java index d6f14cf..fc96920 100644 --- a/src/de/miaurizius/jgame2d/entity/Entity.java +++ b/src/de/miaurizius/jgame2d/entity/Entity.java @@ -23,7 +23,7 @@ public class Entity { public Rectangle attackArea = new Rectangle(0, 0, 0, 0); public int solidAreaDefaultX, solidAreaDefaultY; public boolean collision; - String[] dialogue = new String[20]; + protected String[] dialogue = new String[20]; // STATE public int worldX, worldY; @@ -44,12 +44,26 @@ public class Entity { int dyingCount; int hpBarCounter; - // ATTRIBUTES + // CHARACTER ATTRIBUTES public EntityType type; public String name; public int speed; public int maxLife; public int life; + public int level; + public int strength; + public int dexterity; + public int attack; + public int defense; + public int exp; + public int nextLevelExp; + public int coins; + public Entity currentWeapon; + public Entity currentShield; + + // ITEM ATTRIBUTES + public int attackValue; + public int defenseValue; public Entity(GamePanel panel) { this.panel = panel; diff --git a/src/de/miaurizius/jgame2d/entity/objects/BootsObj.java b/src/de/miaurizius/jgame2d/entity/item/BootsObj.java similarity index 68% rename from src/de/miaurizius/jgame2d/entity/objects/BootsObj.java rename to src/de/miaurizius/jgame2d/entity/item/BootsObj.java index 645e6db..b3308e0 100644 --- a/src/de/miaurizius/jgame2d/entity/objects/BootsObj.java +++ b/src/de/miaurizius/jgame2d/entity/item/BootsObj.java @@ -1,6 +1,7 @@ -package de.miaurizius.jgame2d.entity.objects; +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 BootsObj extends Entity { @@ -8,6 +9,7 @@ public class BootsObj extends Entity { public BootsObj(GamePanel panel) { super(panel); name = "boots"; + type = EntityType.ITEM; down1 = initEntitySprites("objects/boots.png"); } diff --git a/src/de/miaurizius/jgame2d/entity/objects/HeartObj.java b/src/de/miaurizius/jgame2d/entity/item/HeartObj.java similarity index 75% rename from src/de/miaurizius/jgame2d/entity/objects/HeartObj.java rename to src/de/miaurizius/jgame2d/entity/item/HeartObj.java index 1f343ba..b7b0693 100644 --- a/src/de/miaurizius/jgame2d/entity/objects/HeartObj.java +++ b/src/de/miaurizius/jgame2d/entity/item/HeartObj.java @@ -1,6 +1,7 @@ -package de.miaurizius.jgame2d.entity.objects; +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 HeartObj extends Entity { @@ -8,6 +9,7 @@ public class HeartObj extends Entity { public HeartObj(GamePanel panel) { super(panel); name = "heart"; + type = EntityType.ITEM; image = initEntitySprites("objects/heart_full"); image2 = initEntitySprites("objects/heart_half"); image3 = initEntitySprites("objects/heart_blank"); diff --git a/src/de/miaurizius/jgame2d/entity/objects/KeyObj.java b/src/de/miaurizius/jgame2d/entity/item/KeyObj.java similarity index 67% rename from src/de/miaurizius/jgame2d/entity/objects/KeyObj.java rename to src/de/miaurizius/jgame2d/entity/item/KeyObj.java index 21e929f..91834e9 100644 --- a/src/de/miaurizius/jgame2d/entity/objects/KeyObj.java +++ b/src/de/miaurizius/jgame2d/entity/item/KeyObj.java @@ -1,6 +1,7 @@ -package de.miaurizius.jgame2d.entity.objects; +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 KeyObj extends Entity { @@ -8,6 +9,7 @@ public class KeyObj extends Entity { public KeyObj(GamePanel panel) { super(panel); name = "key"; + type = EntityType.ITEM; down1 = initEntitySprites("objects/key"); } diff --git a/src/de/miaurizius/jgame2d/entity/item/ShieldWoodObj.java b/src/de/miaurizius/jgame2d/entity/item/ShieldWoodObj.java new file mode 100644 index 0000000..add9cc7 --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/item/ShieldWoodObj.java @@ -0,0 +1,17 @@ +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 ShieldWoodObj extends Entity { + + public ShieldWoodObj(GamePanel panel) { + super(panel); + name = "shield-wood"; + type = EntityType.ITEM; + down1 = initEntitySprites("assets/objects/shield_wood"); + defenseValue = 1; + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/item/SwordNormalObj.java b/src/de/miaurizius/jgame2d/entity/item/SwordNormalObj.java new file mode 100644 index 0000000..0aaa20b --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/item/SwordNormalObj.java @@ -0,0 +1,18 @@ +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 SwordNormalObj extends Entity { + + public SwordNormalObj(GamePanel panel) { + super(panel); + + name = "sword-normal"; + type = EntityType.ITEM; + down1 = initEntitySprites("assets/objects/sword_normal"); + attackValue = 1; + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/OldManNPC.java b/src/de/miaurizius/jgame2d/entity/npc/OldManNPC.java similarity index 95% rename from src/de/miaurizius/jgame2d/entity/OldManNPC.java rename to src/de/miaurizius/jgame2d/entity/npc/OldManNPC.java index 98fd566..7bee942 100644 --- a/src/de/miaurizius/jgame2d/entity/OldManNPC.java +++ b/src/de/miaurizius/jgame2d/entity/npc/OldManNPC.java @@ -1,8 +1,9 @@ -package de.miaurizius.jgame2d.entity; +package de.miaurizius.jgame2d.entity.npc; import de.miaurizius.jgame2d.core.enums.Direction; import de.miaurizius.jgame2d.core.GamePanel; import de.miaurizius.jgame2d.core.enums.EntityType; +import de.miaurizius.jgame2d.entity.Entity; import java.util.Random; diff --git a/src/de/miaurizius/jgame2d/entity/objects/SuperObject.java b/src/de/miaurizius/jgame2d/entity/objects/SuperObject.java deleted file mode 100644 index 9a518d2..0000000 --- a/src/de/miaurizius/jgame2d/entity/objects/SuperObject.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.miaurizius.jgame2d.entity.objects; - -import de.miaurizius.jgame2d.core.GamePanel; - -import java.awt.*; -import java.awt.image.BufferedImage; - -@Deprecated -public class SuperObject { - - public BufferedImage image, image2, image3; - public String name; - public boolean collision = false; - public int worldX, worldY; - public Rectangle solidArea = new Rectangle(0, 0, 48, 48); - public int solidAreaDefaultX = 0; - public int solidAreaDefaultY = 0; - - public void draw(Graphics2D graphics2D, GamePanel panel) { - int screenX = worldX - panel.player.worldX + panel.player.screenX; - int screenY = worldY - panel.player.worldY + panel.player.screenY; - - if(worldX + panel.tileSize > panel.player.worldX - panel.player.screenX && - worldX - panel.tileSize < panel.player.worldX + panel.player.screenX && - worldY + panel.tileSize > panel.player.worldY - panel.player.screenY && - worldY - panel.tileSize < panel.player.worldY + panel.player.screenY - ) graphics2D.drawImage(image, screenX, screenY, panel.tileSize, panel.tileSize, null); - } - -} diff --git a/src/de/miaurizius/jgame2d/entity/objects/ChestObj.java b/src/de/miaurizius/jgame2d/entity/world/ChestObj.java similarity index 85% rename from src/de/miaurizius/jgame2d/entity/objects/ChestObj.java rename to src/de/miaurizius/jgame2d/entity/world/ChestObj.java index 432f816..1dd30a1 100644 --- a/src/de/miaurizius/jgame2d/entity/objects/ChestObj.java +++ b/src/de/miaurizius/jgame2d/entity/world/ChestObj.java @@ -1,4 +1,4 @@ -package de.miaurizius.jgame2d.entity.objects; +package de.miaurizius.jgame2d.entity.world; import de.miaurizius.jgame2d.core.GamePanel; import de.miaurizius.jgame2d.entity.Entity; diff --git a/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java b/src/de/miaurizius/jgame2d/entity/world/DoorObj.java similarity index 91% rename from src/de/miaurizius/jgame2d/entity/objects/DoorObj.java rename to src/de/miaurizius/jgame2d/entity/world/DoorObj.java index e9abdae..0b44c26 100644 --- a/src/de/miaurizius/jgame2d/entity/objects/DoorObj.java +++ b/src/de/miaurizius/jgame2d/entity/world/DoorObj.java @@ -1,4 +1,4 @@ -package de.miaurizius.jgame2d.entity.objects; +package de.miaurizius.jgame2d.entity.world; import de.miaurizius.jgame2d.core.GamePanel; import de.miaurizius.jgame2d.entity.Entity;