Removed FPCantAssignToSkirmish. Expanded CantBeAssignedToSkirmish and associated modifier to accept a player value.
This commit is contained in:
@@ -23,8 +23,9 @@
|
||||
{
|
||||
type: modifier
|
||||
modifier: {
|
||||
type: fpCantAssignToSkirmish
|
||||
type: CantBeAssignedToSkirmish
|
||||
filter: self
|
||||
player: freeps
|
||||
}
|
||||
}
|
||||
{
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.build.field.effect.modifier;
|
||||
|
||||
import com.gempukku.lotro.cards.build.*;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.cards.build.field.effect.appender.resolver.PlayerResolver;
|
||||
import com.gempukku.lotro.logic.modifiers.CantBeAssignedToSkirmishModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import org.json.simple.JSONObject;
|
||||
@@ -10,20 +11,24 @@ public class CantBeAssignedToSkirmish implements ModifierSourceProducer {
|
||||
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(effectObject, "filter", "requires");
|
||||
FieldUtils.validateAllowedFields(effectObject, "filter", "player", "requires");
|
||||
|
||||
final String player = FieldUtils.getString(effectObject.get("player"), "player");
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(effectObject.get("requires"), "requires");
|
||||
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter");
|
||||
|
||||
final PlayerSource playerSource = player != null ? PlayerResolver.resolvePlayer(player, environment) : null;
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return new ModifierSource() {
|
||||
@Override
|
||||
public Modifier getModifier(ActionContext actionContext) {
|
||||
String bannedPlayer = (playerSource != null) ? playerSource.getPlayer(actionContext) : null;
|
||||
|
||||
return new CantBeAssignedToSkirmishModifier(actionContext.getSource(),
|
||||
RequirementCondition.createCondition(requirements, actionContext),
|
||||
filterableSource.getFilterable(actionContext));
|
||||
bannedPlayer, filterableSource.getFilterable(actionContext));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
package com.gempukku.lotro.cards.build.field.effect.modifier;
|
||||
|
||||
import com.gempukku.lotro.cards.build.*;
|
||||
import com.gempukku.lotro.cards.build.field.FieldUtils;
|
||||
import com.gempukku.lotro.logic.modifiers.FreePeoplePlayerMayNotAssignCharacterModifier;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class FPCantAssignToSkirmish implements ModifierSourceProducer {
|
||||
|
||||
@Override
|
||||
public ModifierSource getModifierSource(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||
FieldUtils.validateAllowedFields(effectObject, "filter", "requires");
|
||||
|
||||
final JSONObject[] conditionArray = FieldUtils.getObjectArray(effectObject.get("requires"), "requires");
|
||||
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter");
|
||||
|
||||
final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment);
|
||||
final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment);
|
||||
|
||||
return new ModifierSource() {
|
||||
@Override
|
||||
public Modifier getModifier(ActionContext actionContext) {
|
||||
return new FreePeoplePlayerMayNotAssignCharacterModifier(actionContext.getSource(),
|
||||
RequirementCondition.createCondition(requirements, actionContext),
|
||||
filterableSource.getFilterable(actionContext));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -63,7 +63,6 @@ public class ModifierSourceFactory {
|
||||
modifierProducers.put("fpculturespot", new FPCultureSpot());
|
||||
modifierProducers.put("fpusesresinsteadofstr", new FPUsesResInsteadOfStr());
|
||||
modifierProducers.put("fpusesvitinsteadofstr", new FPUsesVitInsteadOfStr());
|
||||
modifierProducers.put("fpcantassigntoskirmish", new FPCantAssignToSkirmish());
|
||||
modifierProducers.put("hastomoveifable", new AddModifierFlag(ModifierFlag.HAS_TO_MOVE_IF_POSSIBLE));
|
||||
modifierProducers.put("itemclassspot", new ItemClassSpot());
|
||||
modifierProducers.put("modifyarcherytotal", new ModifyArcheryTotal());
|
||||
|
||||
@@ -4,14 +4,25 @@ import com.gempukku.lotro.common.Filterable;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
|
||||
public class CantBeAssignedToSkirmishModifier extends AbstractModifier {
|
||||
private final String _bannedPlayer;
|
||||
|
||||
public CantBeAssignedToSkirmishModifier(PhysicalCard source, Condition condition, Filterable affectFilter) {
|
||||
this(source, condition, null, affectFilter);
|
||||
}
|
||||
|
||||
public CantBeAssignedToSkirmishModifier(PhysicalCard source, Condition condition, String bannedPlayer, Filterable affectFilter) {
|
||||
super(source, "Can't be assigned to skirmish", affectFilter, condition, ModifierEffect.ASSIGNMENT_MODIFIER);
|
||||
this._bannedPlayer = bannedPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPreventedFromBeingAssignedToSkirmish(LotroGame game, Side sidePlayer, PhysicalCard card) {
|
||||
return true;
|
||||
if(_bannedPlayer == null || GameUtils.getSide(game, _bannedPlayer) == sidePlayer)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user