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 d168e4b..c7e1aee 100644 --- a/src/main/java/uulm/teamname/marvelous/gamelibrary/gamelogic/GameLogic.java +++ b/src/main/java/uulm/teamname/marvelous/gamelibrary/gamelogic/GameLogic.java @@ -511,7 +511,8 @@ public class GameLogic { .buildCharacterEvent()); } case MindStone -> { - Entity targetEntity = state.entities.findEntity(data.targetEntity); + ArrayList found = state.entities.findByPosition(data.targetField); + Entity targetEntity = found.get(0); result.add(new EventBuilder(EventType.TakenDamageEvent) .withTargetEntity(targetEntity.id) @@ -571,6 +572,9 @@ public class GameLogic { } } case PowerStone -> { + ArrayList found = state.entities.findByPosition(data.targetField); + Entity targetEntity = found.get(0); + Character origin = (Character)state.entities.findEntity(data.originEntity); int dmg = (int)Math.round(origin.hp.getMax() * 0.1); //this is ugly ... but also easy to understand @@ -585,7 +589,7 @@ public class GameLogic { .buildEntityEvent()); } result.add(new EventBuilder(EventType.TakenDamageEvent) - .withTargetEntity(data.targetEntity) + .withTargetEntity(targetEntity.id) .withTargetField(data.targetField) .withAmount(origin.meleeDamage * 2) .buildEntityEvent()); @@ -610,9 +614,11 @@ public class GameLogic { } } case SoulStone -> { - Character target = (Character)state.entities.findEntity(data.targetEntity); + ArrayList found = state.entities.findByPosition(data.targetField); + Character target = (Character)found.get(0); + result.add(new EventBuilder(EventType.HealedEvent) - .withTargetEntity(data.targetEntity) + .withTargetEntity(target.id) .withTargetField(data.targetField) .withAmount(target.hp.getMax()) .buildEntityEvent());