added player stats and re-ordered some classes

This commit is contained in:
2025-11-30 01:53:28 +01:00
parent 5879aec9a2
commit 298e6c624e
14 changed files with 69 additions and 40 deletions

View File

@@ -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;

View File

@@ -5,5 +5,7 @@ public enum EntityType {
PLAYER,
NPC,
MONSTER,
ITEM,
WORLD
}

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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;

View File

@@ -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");
}

View File

@@ -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");

View File

@@ -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");
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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;