mage.abilities.Ability.getTargets()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(6.1k)|赞(0)|评价(0)|浏览(97)

本文整理了Java中mage.abilities.Ability.getTargets()方法的一些代码示例,展示了Ability.getTargets()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ability.getTargets()方法的具体详情如下:
包路径:mage.abilities.Ability
类名称:Ability
方法名:getTargets

Ability.getTargets介绍

[英]Retrieves all targets that must be satisfied before this ability is put onto the stack.
[中]检索在将此能力放入堆栈之前必须满足的所有目标。

代码示例

代码示例来源:origin: magefree/mage

@Override
  public void adjustCosts(Ability ability, Game game) {
    int numTargets = ability.getTargets().isEmpty() ? 0 : ability.getTargets().get(0).getTargets().size();
    if (numTargets > 1) {
      ability.getManaCostsToPay().add(new GenericManaCost(numTargets - 1));
    }
  }
}

代码示例来源:origin: magefree/mage

@Override
public boolean apply(Game game, Ability source) {
  Permanent permanent = game.getPermanent(source.getTargets().getFirstTarget());
  if (permanent != null) {
    return permanent.isRenowned();
  }
  return false;
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    Player activePlayer = game.getPlayer(game.getActivePlayerId());
    if (activePlayer != null) {
      ability.getTargets().clear();
      TargetPlayer target = new TargetPlayer(1, 1, false, filter);
      target.setTargetController(activePlayer.getId());
      ability.getTargets().add(target);
    }
  }
}

代码示例来源:origin: magefree/mage

@Override
  public boolean applies(GameEvent event, Ability source, Game game) {
    if (event.getTargetId().equals(this.getTargetPointer().getFirst(game, source))
        && event.getSourceId().equals(this.target.getFirstTarget())) {
      this.redirectTarget = source.getTargets().get(1);
      return true;
    }
    return false;
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    if (KickedCondition.instance.apply(game, ability)) {
      ability.getTargets().clear();
      ability.addTarget(new TargetNonlandPermanent(2));
    }
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    ability.getTargets().clear();
    if (KickedCondition.instance.apply(game, ability)) {
      ability.addTarget(new TargetPlayer());
    }
  }
}

代码示例来源:origin: magefree/mage

@Override
public void init(Ability source, Game game) {
  super.init(source, game);
  redirectToObject = new MageObjectReference(source.getTargets().get(0).getFirstTarget(), game);
}

代码示例来源:origin: magefree/mage

@Override
  public boolean apply(Game game, Ability source) {
    Player opponent = game.getPlayer(source.getTargets().get(0).getFirstTarget());

    if (opponent != null) {
      Permanent creature = game.getPermanent(source.getTargets().get(1).getFirstTarget());
      if (creature != null) {
        creature.destroy(source.getSourceId(), game, false);
      }
    }
    return true;
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    ability.getTargets().clear();
    ability.addTarget(new TargetCardInYourGraveyard(
        GetXValue.instance.calculate(game, ability, null),
        StaticFilters.FILTER_CARD_FROM_YOUR_GRAVEYARD
    ));
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    ability.getTargets().clear();
    ability.addTarget(new TargetCreaturePermanent(KickedCondition.instance.apply(game, ability) ? 2 : 1));
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    int xValue = ability.getManaCostsToPay().getX();
    FilterPermanent permanentFilter = new FilterCreaturePermanent("creature with power " + xValue + " or less");
    permanentFilter.add(new PowerPredicate(ComparisonType.FEWER_THAN, xValue + 1));
    ability.getTargets().clear();
    ability.getTargets().add(new TargetPermanent(permanentFilter));
  }
}

代码示例来源:origin: magefree/mage

@Override
public boolean apply(Game game, Ability source) {
  Permanent permanent = game.getPermanent(source.getTargets().get(0).getFirstTarget());
  Player player = game.getPlayer(source.getTargets().get(1).getFirstTarget());
  if (permanent != null) {
    permanent.damage(3, source.getSourceId(), game, false, true);
  }
  if (player != null) {
    player.damage(2, source.getSourceId(), game, false, true);
  }
  return true;
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    ability.getTargets().clear();
    ability.addTarget(new TargetCardInYourGraveyard(
        ability.getManaCostsToPay().getX(),
        StaticFilters.FILTER_CARD_FROM_YOUR_GRAVEYARD
    ));
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    ability.getTargets().clear();
    ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter));
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    ability.getTargets().clear();
    int xValue = ability.getManaCostsToPay().getX();
    ability.addTarget(new TargetLandPermanent(xValue, xValue, filter, false));
  }
}

代码示例来源:origin: magefree/mage

@Override
  public boolean apply(Game game, Ability source) {
    for (Target target : source.getTargets()) {
      if (target.getFirstTarget() != null) {
        ContinuousEffect effect = new GainControlTargetEffect(Duration.EndOfGame);
        effect.setTargetPointer(new FixedTarget(target.getFirstTarget()));
        game.addEffect(effect, source);
      }
    }
    return true;
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    ability.getTargets().clear();
    int xValue = ability.getManaCostsToPay().getX();
    Target target = new TargetCardInYourGraveyard(xValue, new FilterCreatureCard((xValue != 1 ? " creature cards" : "creature card") + " from your graveyard"));
    ability.addTarget(target);
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(ability.getSourceId());
    if (sourcePermanent != null) {
      ability.getTargets().clear();
      ability.addTarget(new TargetCreaturePermanentAmount(sourcePermanent.getPower().getValue()));
    }
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    int xValue = ability.getManaCostsToPay().getX();
    ability.getTargets().clear();
    FilterSpell filter = new FilterSpell("spell with converted mana cost " + xValue);
    filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
    ability.addTarget(new TargetSpell(filter));
  }
}

代码示例来源:origin: magefree/mage

@Override
  public void adjustTargets(Ability ability, Game game) {
    ability.getTargets().clear();
    int xValue = ability.getManaCostsToPay().getX();
    FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with converted mana cost X");
    filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
    ability.addTarget(new TargetCreaturePermanent(filter));
  }
}

相关文章