From 1343b1875355768efb9d8bed7f3592349c834a2e Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 15 Dec 2025 17:25:59 +0100 Subject: [PATCH] refactor invincibility handling by consolidating invincible counting logic into a separate method --- src/de/miaurizius/jgame2d/entity/Entity.java | 23 ++++++++++++-------- src/de/miaurizius/jgame2d/entity/Player.java | 19 +++++++++++----- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/de/miaurizius/jgame2d/entity/Entity.java b/src/de/miaurizius/jgame2d/entity/Entity.java index 8c83921..47f61f9 100644 --- a/src/de/miaurizius/jgame2d/entity/Entity.java +++ b/src/de/miaurizius/jgame2d/entity/Entity.java @@ -108,6 +108,7 @@ public class Entity { knockbackCount = 0; knockback = false; speed = defaultSpeed; + invincibleCounting(); return; } @@ -119,7 +120,10 @@ public class Entity { } knockbackCount++; - if(knockbackCount != 10) return; + if(knockbackCount != 10) { + invincibleCounting(); + return; + } knockback = false; knockbackCount = 0; @@ -146,14 +150,7 @@ public class Entity { spriteCount = 0; } } - - // INVINCIBLE COUNTER - if(!invincible) return; - invincibleCount++; - if(invincibleCount > 40) { - invincible = false; - invincibleCount = 0; - } + invincibleCounting(); } public void draw(Graphics2D graphics2d) { int screenX = worldX - panel.player.worldX + panel.player.screenX; @@ -613,5 +610,13 @@ public class Entity { actionLock = 0; } } + public void invincibleCounting() { + if(!invincible) return; + invincibleCount++; + if(invincibleCount > 40) { + invincible = false; + invincibleCount = 0; + } + } } diff --git a/src/de/miaurizius/jgame2d/entity/Player.java b/src/de/miaurizius/jgame2d/entity/Player.java index f07d69c..7c8f74a 100644 --- a/src/de/miaurizius/jgame2d/entity/Player.java +++ b/src/de/miaurizius/jgame2d/entity/Player.java @@ -55,12 +55,14 @@ public class Player extends Entity { // ATTACKING if(attacking) { attacking(); + invincibleCounting(); return; } // BLOCKING if(keyH.CTLKeyPressed) { guarding = true; + invincibleCounting(); return; } @@ -138,12 +140,7 @@ public class Player extends Entity { // INVINCIBLE COUNTER if(!invincible) return; - invincibleCount++; - if(invincibleCount > 60) { - invincible = false; - transparent = false; - invincibleCount = 0; - } + invincibleCounting(); if(life <= 0) { panel.gameState = GameState.GAMEOVER; @@ -204,6 +201,7 @@ public class Player extends Entity { panel.playSE(5); if(knockbackVal > 0) setKnockback(panel.monster[panel.currentMap.getIndex()][index], attacker, knockbackVal); panel.monster[panel.currentMap.getIndex()][index].life -= damage; + panel.monster[panel.currentMap.getIndex()][index].transparent = true; panel.monster[panel.currentMap.getIndex()][index].invincible = true; } @@ -395,5 +393,14 @@ public class Player extends Entity { } return false; } + @Override + public void invincibleCounting() { + if(!invincible) return; + invincibleCount++; + if(invincibleCount > 60) { + invincible = false; + invincibleCount = 0; + } + } }