From f74f4387656b5862de41c03aed48eba14a7537a5 Mon Sep 17 00:00:00 2001 From: drdev Date: Fri, 10 Oct 2014 16:23:24 +0000 Subject: [PATCH] Fix crash with Battalion --- .../main/java/forge/game/keyword/Keyword.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/keyword/Keyword.java b/forge-game/src/main/java/forge/game/keyword/Keyword.java index 83323ba814a..cf8b233c20a 100644 --- a/forge-game/src/main/java/forge/game/keyword/Keyword.java +++ b/forge-game/src/main/java/forge/game/keyword/Keyword.java @@ -110,7 +110,13 @@ public enum Keyword { for (Keyword kw : Keyword.values()) { if (enumName.startsWith(kw.name())) { keyword = kw; - details = k.substring(kw.name().length() + 1); + int idx = kw.name().length() + 1; + if (idx < k.length()) { + details = k.substring(idx); + } + else { + details = ""; + } break; } } @@ -120,7 +126,14 @@ public enum Keyword { String firstWord = idx == -1 ? enumName : enumName.substring(0, idx); if (firstWord.endsWith("CYCLING")) { //handle special case of Typecycling - return new Cycling(firstWord.substring(0, firstWord.length() - 7), k.substring(firstWord.length() + 1)); + idx = firstWord.length() + 1; + if (idx < k.length()) { + details = k.substring(idx); + } + else { + details = ""; + } + return new Cycling(firstWord.substring(0, firstWord.length() - 7), details); } else if (firstWord.endsWith("WALK")) { keyword = Keyword.LANDWALK;