Roamin and Ring-bearer can't be removed with "text removal" effect. Ring-bound keyword can 't be removed from Ring-bearer by such effect.
This commit is contained in:
@@ -189,7 +189,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying {
|
||||
public boolean hasKeyword(GameState gameState, PhysicalCard physicalCard, Keyword keyword) {
|
||||
LoggingThreadLocal.logMethodStart(physicalCard, "hasKeyword " + keyword.getHumanReadable());
|
||||
try {
|
||||
if (hasTextRemoved(gameState, physicalCard))
|
||||
if (isCandidateForKeywordRemovalWithTextRemoval(gameState, physicalCard, keyword) && hasTextRemoved(gameState, physicalCard))
|
||||
return false;
|
||||
|
||||
for (Modifier modifier : getModifiers(gameState, ModifierEffect.KEYWORD_MODIFIER)) {
|
||||
@@ -219,7 +219,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying {
|
||||
public int getKeywordCount(GameState gameState, PhysicalCard physicalCard, Keyword keyword) {
|
||||
LoggingThreadLocal.logMethodStart(physicalCard, "getKeywordCount " + keyword.getHumanReadable());
|
||||
try {
|
||||
if (hasTextRemoved(gameState, physicalCard))
|
||||
if (isCandidateForKeywordRemovalWithTextRemoval(gameState, physicalCard, keyword) && hasTextRemoved(gameState, physicalCard))
|
||||
return 0;
|
||||
|
||||
for (Modifier modifier : getModifiers(gameState, ModifierEffect.KEYWORD_MODIFIER)) {
|
||||
@@ -242,6 +242,17 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isCandidateForKeywordRemovalWithTextRemoval(GameState gameState, PhysicalCard physicalCard, Keyword keyword) {
|
||||
if (keyword == Keyword.RING_BEARER)
|
||||
return false;
|
||||
if (keyword == Keyword.ROAMING)
|
||||
return false;
|
||||
if (keyword == Keyword.RING_BOUND)
|
||||
if (gameState.getRingBearer(physicalCard.getOwner()) == physicalCard)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean appliesKeywordModifier(GameState gameState, PhysicalCard modifierSource, Keyword keyword) {
|
||||
if (modifierSource == null)
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user