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

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

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

Ability.getZone介绍

[英]Retrieves the Zone that this ability is active within.
[中]检索此能力处于活动状态的区域。

代码示例

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

@Override
public Zone getZone() {
  return this.ability.getZone();
}

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

@Override
public boolean apply(Ability input, Game game) {
  return input.getZone().match(zone);
}

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

@Override
public Abilities<ActivatedAbility> getActivatedAbilities(Zone zone) {
  return stream()
      .filter(ability -> ability instanceof ActivatedAbility)
      .filter(ability -> ability.getZone().match(zone))
      .map(ability -> (ActivatedAbility) ability)
      .collect(Collectors.toCollection(AbilitiesImpl::new));
}

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

@Override
public Abilities<StaticAbility> getStaticAbilities(Zone zone) {
  return stream()
      .filter(ability -> ability instanceof StaticAbility)
      .filter(ability -> ability.getZone().match(zone))
      .map(ability -> (StaticAbility) ability)
      .collect(Collectors.toCollection(AbilitiesImpl::new));
}

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

@Override
public Abilities<ActivatedAbility> getPlayableAbilities(Zone zone) {
  return stream()
      .filter(ability -> (ability instanceof ActivatedAbility))
      .filter(ability -> ability.getZone().match(zone))
      .map(ability -> (ActivatedAbility) ability)
      .collect(Collectors.toCollection(AbilitiesImpl::new));
}

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

@Override
public Abilities<ActivatedManaAbilityImpl> getActivatedManaAbilities(Zone zone) {
  return stream()
      .filter(ability -> ability instanceof ActivatedManaAbilityImpl)
      .filter(ability -> ability.getZone().match(zone))
      .map(ability -> (ActivatedManaAbilityImpl) ability)
      .collect(Collectors.toCollection(AbilitiesImpl::new));
}

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

@Override
public Abilities<Ability> getManaAbilities(Zone zone) {
  return stream()
      .filter(ability -> ability.getAbilityType() == AbilityType.MANA)
      .filter(ability -> ability.getZone().match(zone))
      .collect(Collectors.toCollection(AbilitiesImpl::new));
}

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

@Override
public Abilities<ActivatedManaAbilityImpl> getAvailableActivatedManaAbilities(Zone zone, Game game) {
  return stream()
      .filter(ability -> ability instanceof ActivatedManaAbilityImpl)
      .filter(ability -> ability.getZone().match(zone))
      .filter(ability -> (((ActivatedManaAbilityImpl) ability).canActivate(ability.getControllerId(), game).canActivate()))
      .map(ability -> (ActivatedManaAbilityImpl) ability)
      .collect(Collectors.toCollection(AbilitiesImpl::new));
}

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

private void setControllerForEffect(ContinuousEffectsList<?> effects, UUID sourceId, UUID controllerId) {
  for (Effect effect : effects) {
    Set<Ability> abilities = effects.getAbility(effect.getId());
    for (Ability ability : abilities) {
      if (ability.getSourceId() != null) {
        if (ability.getSourceId().equals(sourceId)) {
          ability.setControllerId(controllerId);
        }
      } else if (ability.getZone() != Zone.COMMAND) {
        logger.fatal("Continuous effect for ability with no sourceId Ability: " + ability);
      }
    }
  }
}

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

private static void traceForPermanent(Game game, Permanent permanent, String uuid, ContinuousEffectsList<RestrictionEffect> restrictionEffects) {
  for (RestrictionEffect effect: restrictionEffects) {
    log.error(uuid+"     effect=" + effect.toString() + " id=" + effect.getId());
    for (Ability ability : restrictionEffects.getAbility(effect.getId())) {
      if (!(ability instanceof StaticAbility) || ability.isInUseableZone(game, permanent, null)) {
        log.error(uuid+"        ability=" + ability + ", applies_to_attacker=" + effect.applies(permanent, ability, game));
      } else {
        boolean usable = ability.isInUseableZone(game, permanent, null);
        log.error(uuid+"        instanceof StaticAbility: " + (ability instanceof StaticAbility) + ", ability=" + ability);
        log.error(uuid+"        usable zone: " + usable + ", ability=" + ability);
        if (!usable) {
          Zone zone = ability.getZone();
          log.error(uuid+"        zone: " + zone);
          MageObject object = game.getObject(ability.getSourceId());
          log.error(uuid+"        object: " + object);
          if (object != null) {
            log.error(uuid + "        contains ability: " + object.getAbilities().contains(ability));
          }
          Zone test = game.getState().getZone(ability.getSourceId());
          log.error(uuid+"        test_zone: " + test);
        }
      }
    }
  }
}

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

@Override
public Abilities<TriggeredAbility> getTriggeredAbilities(Zone zone) {
  Abilities<TriggeredAbility> zonedAbilities = new AbilitiesImpl<>();
  for (T ability : this) {
    if (ability instanceof TriggeredAbility && ability.getZone().match(zone)) {
      zonedAbilities.add((TriggeredAbility) ability);
    } else if (ability instanceof ZoneChangeTriggeredAbility) {
      ZoneChangeTriggeredAbility zcAbility = (ZoneChangeTriggeredAbility) ability;
      if (zcAbility.getToZone() != null && zcAbility.getToZone().match(zone)) {
        zonedAbilities.add((ZoneChangeTriggeredAbility) ability);
      }
    }
  }
  return zonedAbilities;
}

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

Abilities:
for (Ability ability : card.getAbilities()) {
  if (ability.getZone().match(Zone.HAND)) {
    switch (ability.getAbilityType()) {
      case PLAY_LAND:

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

if (ability.getZone().match(zone)) {
  if (ability instanceof ActivatedAbility) {
    if (ability instanceof ActivatedManaAbilityImpl) {
      ability.setControllerId(this.getId());
      if (ability instanceof ActivatedAbility
          && ability.getZone().match(Zone.HAND)
          && ((ActivatedAbility) ability).canActivate(playerId, game).canActivate()) {
        output.put(ability.getId(), (ActivatedAbility) ability);

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

for (Card card : hand.getUniqueCards(game)) {
  for (Ability ability : card.getAbilities(game)) { // gets this activated ability from hand? (Morph?)
    if (ability.getZone().match(Zone.HAND)) {
      if (ability instanceof ActivatedAbility) {
        if (!(ability instanceof PlayLandAbility)
  if (null != game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, null, this.getId(), game)) {
    for (Ability ability : card.getAbilities()) {
      if (ability.getZone().match(Zone.HAND)) {
        ability.setControllerId(this.getId()); // controller must be set for case owner != caster
        if (ability instanceof ActivatedAbility) {

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

boolean isCard = false;
boolean isPermanent = false;
switch (ability.getZone()) {
  case ALL:
  case EXILED:

相关文章