From ebd7d2a12b2b29819fc7ab6ec171fcd67f312f7c Mon Sep 17 00:00:00 2001 From: punchready Date: Tue, 10 Aug 2021 12:35:08 +0200 Subject: [PATCH] fix: add missing check to reality stone --- .../marvelous/gamelibrary/gamelogic/GameLogic.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 ffabd7d..3f63f26 100644 --- a/src/main/java/uulm/teamname/marvelous/gamelibrary/gamelogic/GameLogic.java +++ b/src/main/java/uulm/teamname/marvelous/gamelibrary/gamelogic/GameLogic.java @@ -139,7 +139,19 @@ public class GameLogic { requireLineOfSight(state, data.originField, data.targetField); } case RealityStone -> { - // no check done + boolean rock = false; + boolean empty = true; + for(Entity entity: state.entities.findByPosition(data.targetField)) { + if(entity.id.type == EntityType.Rocks) { + rock = true; + break; + }else { + empty = false; + } + } + if(!empty && !rock) { + throw new InvalidRequestException("Using reality stone on non-free field without a rock"); + } } case PowerStone -> { Character target = getCharacter(state, data.targetField, data.targetEntity);