From 315c7d2891677fc2694b4cc31c7ef345104a6477 Mon Sep 17 00:00:00 2001 From: punchready Date: Fri, 6 Aug 2021 12:45:06 +0200 Subject: [PATCH] fix: use correct power stone self damage calculation to not kill the character --- .../marvelous/gamelibrary/gamelogic/GameLogic.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/uulm/teamname/marvelous/gamelibrary/gamelogic/GameLogic.java b/src/main/java/uulm/teamname/marvelous/gamelibrary/gamelogic/GameLogic.java index feee29d..46039c2 100644 --- a/src/main/java/uulm/teamname/marvelous/gamelibrary/gamelogic/GameLogic.java +++ b/src/main/java/uulm/teamname/marvelous/gamelibrary/gamelogic/GameLogic.java @@ -490,11 +490,15 @@ public class GameLogic { case PowerStone -> { Character origin = (Character)state.entities.findEntity(data.originEntity); int dmg = (int)Math.round(origin.hp.getMax() * 0.1); - if(origin.hp.getValue() != 1 && dmg > 0) { + //this is ugly ... but also easy to understand + int hp1 = origin.hp.getValue(); + int hp2 = Math.max(1, origin.hp.getValue() - dmg); + int actualDmg = hp1 - hp2; + if(actualDmg > 0) { result.add(new EventBuilder(EventType.TakenDamageEvent) .withTargetEntity(data.originEntity) .withTargetField(data.originField) - .withAmount(dmg) + .withAmount(actualDmg) .buildEntityEvent()); } result.add(new EventBuilder(EventType.TakenDamageEvent)