From 138db014bac51a10aeaba57cbb4f98d1d31720db Mon Sep 17 00:00:00 2001 From: Maurice Date: Sun, 30 Nov 2025 02:46:10 +0100 Subject: [PATCH] added stats to battle system --- src/de/miaurizius/jgame2d/entity/Entity.java | 5 ++++- src/de/miaurizius/jgame2d/entity/Player.java | 13 ++++++++++--- .../jgame2d/entity/monster/GreenSlimeMON.java | 2 ++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/de/miaurizius/jgame2d/entity/Entity.java b/src/de/miaurizius/jgame2d/entity/Entity.java index fc96920..be5ae78 100644 --- a/src/de/miaurizius/jgame2d/entity/Entity.java +++ b/src/de/miaurizius/jgame2d/entity/Entity.java @@ -82,7 +82,10 @@ public class Entity { if(this.type == EntityType.MONSTER && contactPlayer) { if(panel.player.invincible) return; panel.playSE(6); - panel.player.life -= 1; + + int damage = attack - panel.player.defense; + panel.player.life -= Math.max(damage, 0); + panel.player.invincible = true; } diff --git a/src/de/miaurizius/jgame2d/entity/Player.java b/src/de/miaurizius/jgame2d/entity/Player.java index c64a366..4975694 100644 --- a/src/de/miaurizius/jgame2d/entity/Player.java +++ b/src/de/miaurizius/jgame2d/entity/Player.java @@ -124,8 +124,12 @@ public class Player extends Entity { if(index == 999) return; if(invincible) return; if(panel.monster[index].dying || !panel.monster[index].alive) return; - life -= 1; + panel.playSE(6); + + int damage = panel.monster[index].attack - defense; + life -= Math.max(damage, 0); + invincible = true; } public void attacking() { @@ -166,8 +170,11 @@ public class Player extends Entity { public void damageMonster(int index) { if(index == 999) return; if(panel.monster[index].invincible) return; - panel.monster[index].life -= 1; panel.playSE(5); + + int damage = attack - panel.monster[index].defense; + panel.monster[index].life -= Math.max(damage, 0); + panel.monster[index].invincible = true; panel.monster[index].damageReaction(); if(panel.monster[index].life <= 0) panel.monster[index].dying = true; @@ -210,7 +217,7 @@ public class Player extends Entity { return attack = strength * currentWeapon.attackValue; } public int getDefense() { - return defense = dexterity * currentShield.attackValue; + return defense = dexterity * currentShield.defenseValue; } public void getPlayerImage() { up1 = initEntitySprites("player/boy_up_1"); diff --git a/src/de/miaurizius/jgame2d/entity/monster/GreenSlimeMON.java b/src/de/miaurizius/jgame2d/entity/monster/GreenSlimeMON.java index fd6223d..91fcd23 100644 --- a/src/de/miaurizius/jgame2d/entity/monster/GreenSlimeMON.java +++ b/src/de/miaurizius/jgame2d/entity/monster/GreenSlimeMON.java @@ -16,6 +16,8 @@ public class GreenSlimeMON extends Entity { speed = 1; maxLife = 4; life = maxLife; + attack = 5; + defense = 0; solidArea.x = 3; solidArea.y = 18;