diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java index a5f3879a0..a31bce658 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java @@ -63,6 +63,13 @@ public enum Keyword implements Filterable { return _humanReadable; } + public String getHumanReadableGeneric() { + if(_multiples) + return _humanReadable + " bonus"; + + return _humanReadable; + } + public boolean isInfoDisplayable() { return _infoDisplayable; } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddKeyword.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddKeyword.java index e0b8a72fb..a956fbf9e 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddKeyword.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddKeyword.java @@ -13,6 +13,7 @@ import com.gempukku.lotro.cards.build.field.effect.appender.resolver.ValueResolv import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.actions.CostToEffectAction; import com.gempukku.lotro.logic.effects.AddUntilModifierEffect; import com.gempukku.lotro.logic.modifiers.KeywordModifier; @@ -68,6 +69,12 @@ public class AddKeyword implements EffectAppenderProducer { result.add(new AddUntilModifierEffect( new KeywordModifier(actionContext.getSource(), physicalCard, keywordFunction.apply(actionContext), keywordCount), until)); } + + actionContext.getGame().getGameState().sendMessage( + GameUtils.getCardLink(actionContext.getSource()) + + " adds " + keywordFunction.apply(actionContext).getHumanReadableGeneric() + + " to " + GameUtils.getAppendedNames(cardsFromMemory) + + " until " + until.getHumanReadable()); return result; } }); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/TimeResolver.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/TimeResolver.java index 91f3c856f..b2781db3b 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/TimeResolver.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/TimeResolver.java @@ -17,13 +17,16 @@ public class TimeResolver { if (value.startsWith("start(") && value.endsWith(")")) { final String phaseName = value.substring(value.indexOf("(") + 1, value.lastIndexOf(")")); return new Time(Phase.valueOf(phaseName.toUpperCase()), true, false); - } else if (value.startsWith("end(") && value.endsWith(")")) { + } + else if (value.startsWith("end(") && value.endsWith(")")) { final String phaseName = value.substring(value.indexOf("(") + 1, value.lastIndexOf(")")); if (phaseName.equals("current")) return new Time(null, false, false); return new Time(Phase.valueOf(phaseName.toUpperCase()), false, false); - } else if (value.equals("endofturn")) + } + else if (value.equals("endofturn")) return new Time(null, false, true); + throw new InvalidCardDefinitionException("Unable to resolve time: " + value); } @@ -49,5 +52,20 @@ public class TimeResolver { public boolean isEndOfTurn() { return endOfTurn; } + + public String getHumanReadable() { + if (endOfTurn) { + return "the end of the turn"; + } + else if (phase == null) { + return "the end of the current phase"; + } + else if (start) { + return "the start of the " + phase.getHumanReadable() + " phase"; + } + else { + return "the end of the " + phase.getHumanReadable() + " phase"; + } + } } }