Adding experimental chat output for AddKeyword effects to indicate their result (notably so that the Keeper of Isengard errata will record what it was used on)
This commit is contained in:
@@ -63,6 +63,13 @@ public enum Keyword implements Filterable {
|
|||||||
return _humanReadable;
|
return _humanReadable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getHumanReadableGeneric() {
|
||||||
|
if(_multiples)
|
||||||
|
return _humanReadable + " bonus";
|
||||||
|
|
||||||
|
return _humanReadable;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isInfoDisplayable() {
|
public boolean isInfoDisplayable() {
|
||||||
return _infoDisplayable;
|
return _infoDisplayable;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.common.Keyword;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
|
import com.gempukku.lotro.logic.GameUtils;
|
||||||
import com.gempukku.lotro.logic.actions.CostToEffectAction;
|
import com.gempukku.lotro.logic.actions.CostToEffectAction;
|
||||||
import com.gempukku.lotro.logic.effects.AddUntilModifierEffect;
|
import com.gempukku.lotro.logic.effects.AddUntilModifierEffect;
|
||||||
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
|
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
|
||||||
@@ -68,6 +69,12 @@ public class AddKeyword implements EffectAppenderProducer {
|
|||||||
result.add(new AddUntilModifierEffect(
|
result.add(new AddUntilModifierEffect(
|
||||||
new KeywordModifier(actionContext.getSource(), physicalCard, keywordFunction.apply(actionContext), keywordCount), until));
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -17,13 +17,16 @@ public class TimeResolver {
|
|||||||
if (value.startsWith("start(") && value.endsWith(")")) {
|
if (value.startsWith("start(") && value.endsWith(")")) {
|
||||||
final String phaseName = value.substring(value.indexOf("(") + 1, value.lastIndexOf(")"));
|
final String phaseName = value.substring(value.indexOf("(") + 1, value.lastIndexOf(")"));
|
||||||
return new Time(Phase.valueOf(phaseName.toUpperCase()), true, false);
|
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(")"));
|
final String phaseName = value.substring(value.indexOf("(") + 1, value.lastIndexOf(")"));
|
||||||
if (phaseName.equals("current"))
|
if (phaseName.equals("current"))
|
||||||
return new Time(null, false, false);
|
return new Time(null, false, false);
|
||||||
return new Time(Phase.valueOf(phaseName.toUpperCase()), 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);
|
return new Time(null, false, true);
|
||||||
|
|
||||||
throw new InvalidCardDefinitionException("Unable to resolve time: " + value);
|
throw new InvalidCardDefinitionException("Unable to resolve time: " + value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,5 +52,20 @@ public class TimeResolver {
|
|||||||
public boolean isEndOfTurn() {
|
public boolean isEndOfTurn() {
|
||||||
return endOfTurn;
|
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";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user