public StackAbility(Ability ability, UUID controllerId) { this.ability = ability; this.controllerId = controllerId; this.name = "stack ability (" + ability.getRule() + ')'; }
@Override public String getRule(boolean all) { return ability.getRule(all); }
@Override public String getRule(String source) { return ability.getRule(source); }
@Override public String getRule() { return ability.getRule(); }
public static int getAbilityScore(Ability ability) { if (!scores.containsKey(ability.getRule())) { //System.err.println("Couldn't find ability score: " + ability.getRule()); //TODO: add handling protection from ..., levelup, kicker, etc. abilities return 0; } return scores.get(ability.getRule()); } }
protected void logAbilityList(String message, List<Ability> list) { StringBuilder sb = new StringBuilder(); sb.append(message).append(": "); for (Ability ability : list) { sb.append(ability.getRule()).append(','); } log.debug(sb.toString()); }
private void setText() { StringBuilder sb = new StringBuilder(); sb.append(attachmentType.verb()); sb.append(" creature "); if (duration == Duration.WhileOnBattlefield) { sb.append("loses "); } else { sb.append("loses "); } sb.append(ability.getRule()); staticText = sb.toString(); }
public LoseAbilitySourceEffect(Ability ability, Duration duration) { super(duration, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.LoseAbility); this.ability = ability; staticText = "{this} loses " + ability.getRule() + ' ' + duration.toString(); }
public GainAbilitySpellsEffect(Ability ability, FilterObject filter) { super(Duration.Custom, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); this.ability = ability; this.filter = filter; staticText = filter.getMessage() + " have " + ability.getRule(); }
public GainAbilityControlledSpellsEffect(Ability ability, FilterSpell filter) { super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); this.ability = ability; this.filter = filter; staticText = filter.getMessage() + " you cast have " + ability.getRule() + '.'; }
public GainAbilitySourceEffect(Ability ability, Duration duration, boolean onCard) { this(ability, duration, onCard, false); staticText = "{this} gains " + ability.getRule() + ' ' + duration.toString(); }
public AbilityPickerView(String objectName, List<? extends Ability> abilities) { for (Ability ability : abilities) { if (objectName == null) { choices.put(ability.getId(), ability.getRule(true)); } else { String rule = ability.getRule(objectName); if (rule.isEmpty()) { rule = ability.toString(); } choices.put(ability.getId(), rule); } } }
private void setText() { StringBuilder sb = new StringBuilder(); sb.append(attachmentType.verb()); sb.append(" creature "); if (duration == Duration.WhileOnBattlefield) { sb.append("has "); } else { sb.append("gains "); } sb.append('"' + ability.getRule("this creature") + '"'); if (!duration.toString().isEmpty()) { sb.append(' ').append(duration.toString()); } staticText = sb.toString(); }
/** * * @param ability * @param duration custom - effect will be discarded as soon there is no sourceId - permanent on the battlefield */ public GainAbilityControllerEffect(Ability ability, Duration duration) { super(duration, Layer.PlayerEffects, SubLayer.NA, Outcome.AddAbility); this.ability = ability; staticText = "You have " + ability.getRule(); if (!duration.toString().isEmpty()) { staticText += ' ' + duration.toString(); } }
@Override public String getInfoMessage(Ability source, GameEvent event, Game game) { if (infoMessage == null) { String message; MageObject object = game.getObject(source.getSourceId()); if (object != null) { message = source.getRule(messageToUser ? object.getIdName() : object.getLogName()); } else { message = source.getRule(); } return message; } else { return infoMessage; } }
@Override public boolean apply(MageObject input, Game game) { Abilities<Ability> abilities = input.getAbilities(); for (int i = 0; i < abilities.size(); i++) { if (abilities.get(i) instanceof EnchantAbility) { String enchantText = abilities.get(i).getRule(); if (enchantText.contentEquals("Enchant creature")) { return true; } } } return false; }
@Override public boolean apply(MageObject input, Game game) { Abilities<Ability> abilities = input.getAbilities(); for (int i = 0; i < abilities.size(); i++) { if (abilities.get(i) instanceof EnchantAbility) { String enchantText = abilities.get(i).getRule(); if (enchantText.contentEquals("Enchant creature")) { return true; } } } return false; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Mana mana = getMana(game, source); if (mana != null) { checkToFirePossibleEvents(mana, game, source); controller.getManaPool().addMana(mana, game, source); } else { logger.error("There was no mana created: " + source.getSourceObject(game).getName() + " - Ability: " + source.getRule()); } return true; } return false; }