From 9916fa8b2521880027219c89252627e5e4fd918a Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 8 Dec 2025 05:09:21 +0100 Subject: [PATCH] added iTile life --- src/de/miaurizius/jgame2d/entity/Player.java | 6 ++++-- .../jgame2d/tile/interactive/DryTreeTI.java | 10 ++++++---- .../tile/interactive/InteractiveTile.java | 18 +++++++++++++----- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/de/miaurizius/jgame2d/entity/Player.java b/src/de/miaurizius/jgame2d/entity/Player.java index 694cc1f..1594979 100644 --- a/src/de/miaurizius/jgame2d/entity/Player.java +++ b/src/de/miaurizius/jgame2d/entity/Player.java @@ -220,10 +220,12 @@ public class Player extends Entity { } } public void interactTile(int index) { - if(index == 999 || !panel.iTile[index].destructible) return; + if(index == 999 || !panel.iTile[index].destructible || panel.iTile[index].invincible) return; if(!panel.iTile[index].meetItemReq(this)) return; panel.iTile[index].playSE(); - panel.iTile[index] = panel.iTile[index].getDestroyedForm(); + panel.iTile[index].life--; + panel.iTile[index].invincible = true; + if(panel.iTile[index].life == 0) panel.iTile[index] = panel.iTile[index].getDestroyedForm(); } public void interactNPC(int index) { diff --git a/src/de/miaurizius/jgame2d/tile/interactive/DryTreeTI.java b/src/de/miaurizius/jgame2d/tile/interactive/DryTreeTI.java index 51f1d46..5b19473 100644 --- a/src/de/miaurizius/jgame2d/tile/interactive/DryTreeTI.java +++ b/src/de/miaurizius/jgame2d/tile/interactive/DryTreeTI.java @@ -16,16 +16,18 @@ public class DryTreeTI extends InteractiveTile{ down1 = initEntitySprites("/interactive_tiles/drytree"); destructible = true; + life = 3; } - public boolean meetItemReq(Entity entity) { - return entity.currentWeapon.weaponType == EntityType.WeaponType.AXE; - } - + // PRE_CONFIGURED public void playSE() { panel.playSE(11); } + // GETTERS + public boolean meetItemReq(Entity entity) { + return entity.currentWeapon.weaponType == EntityType.WeaponType.AXE; + } public InteractiveTile getDestroyedForm() { return new TrunkIT(panel, worldX/panel.tileSize, worldY/panel.tileSize); } diff --git a/src/de/miaurizius/jgame2d/tile/interactive/InteractiveTile.java b/src/de/miaurizius/jgame2d/tile/interactive/InteractiveTile.java index a92ba33..7968f79 100644 --- a/src/de/miaurizius/jgame2d/tile/interactive/InteractiveTile.java +++ b/src/de/miaurizius/jgame2d/tile/interactive/InteractiveTile.java @@ -13,17 +13,25 @@ public class InteractiveTile extends Entity { this.panel = panel; } + // GENERAL public void update() { + // INVINCIBLE COUNTER + if(!invincible) return; + invincibleCount++; + if(invincibleCount > 20) { + invincible = false; + invincibleCount = 0; + } } - + // PRE-CONFIGURED public void playSE() {} - public InteractiveTile getDestroyedForm() { - return null; - } - + // UTILITY public boolean meetItemReq(Entity entity) { return false; } + public InteractiveTile getDestroyedForm() { + return null; + } }