gpt4 book ai didi

mage.constants.Zone.match()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-18 07:13:31 25 4
gpt4 key购买 nike

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

Zone.match介绍

暂无

代码示例

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

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

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

@Override
public boolean apply(StackObject input, Game game) {
  return input instanceof Spell && ((Spell) input).getFromZone().match(zone);
}

代码示例来源: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<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<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

@Override
public boolean checkTrigger(GameEvent event, Game game) {
  if (((ZoneChangeEvent) event).getFromZone().match(Zone.BATTLEFIELD)) {
    return (fixedTarget.getTarget().equals(event.getTargetId()));
  }
  return false;
}

代码示例来源: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

@Override
public boolean checkTrigger(GameEvent event, Game game) {
  ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
  if ((fromZone == null || fromZone.match(zEvent.getFromZone()))
      && (toZone == null || toZone.match(zEvent.getToZone()))) {
    Permanent perm;
    if (zEvent.getTarget() != null) {
      perm = zEvent.getTarget();
    } else {
      perm = game.getPermanent(event.getTargetId()); // LevelX2: maybe this part is not neccessary
    }
    if (perm != null && filter.match(perm, sourceId, controllerId, game)) {
      return true;
    }
  }
  return false;
}

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

@Override
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {       
  boolean fromOK = true;
  Permanent sourcePermanent = (Permanent) game.getLastKnownInformation(sourceId, Zone.BATTLEFIELD);
  if (creatureHaunt && sourcePermanent == null) {
    // check it was previously on battlefield
    fromOK = false;
  } 
  if (!this.hasSourceObjectAbility(game, sourcePermanent, event)) {
    return false;
  }         
  // check now it is in graveyard
  Zone after = game.getState().getZone(sourceId);
  return fromOK && after != null && Zone.GRAVEYARD.match(after);
}

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

private void getPlayableFromGraveyardCard(Game game, Card card, Abilities<Ability> candidateAbilities, ManaOptions availableMana, List<Ability> output) {
  MageObjectReference permittingObject = game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, card.getSpellAbility(), this.getId(), game);
  for (ActivatedAbility ability : candidateAbilities.getActivatedAbilities(Zone.ALL)) {
    boolean possible = false;
    if (ability.getZone().match(Zone.GRAVEYARD)) {
      possible = true;
    } else if (ability.getZone().match(Zone.HAND) && (ability instanceof SpellAbility || ability instanceof PlayLandAbility)) {
      if (permittingObject != null || canPlayCardsFromGraveyard()) {
        possible = true;
      }
    }
    if (possible && canPlay(ability, availableMana, card, game)) {
      output.add(ability);
    }
  }
}

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

@Override
  public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
    switch (allowedCaster) {
      case YOU:
        if (affectedControllerId != source.getControllerId()) {
          return false;
        }
        break;
      case OPPONENT:
        if (!game.getOpponents(source.getControllerId()).contains(affectedControllerId)) {
          return false;
        }
        break;
      case ANY:
        break;
    }
    List<UUID> targets = getTargetPointer().getTargets(game, source);
    if (targets.isEmpty()) {
      this.discard();
      return false;
    }
    return targets.contains(objectId)
        && affectedControllerId.equals(source.getControllerId())
        && game.getState().getZone(objectId).match(fromZone);
  }
}

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

@Override
public boolean canTarget(UUID id, Game game) {
  MageObject object = game.getObject(id);
  return object != null
      && zone != null && zone.match(game.getState().getZone(id))
      && getFilter() != null && getFilter().match(object, game);
}

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

@Override
  public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
    Card card = game.getCard(objectId);
    if (card != null) {
      switch (allowedCaster) {
        case YOU:
          if (affectedControllerId != source.getControllerId()) {
            return false;
          }
          break;
        case OPPONENT:
          if (!game.getOpponents(source.getControllerId()).contains(affectedControllerId)) {
            return false;
          }
          break;
      }
      return !onlyOwnedCards || card.getOwnerId().equals(source.getControllerId())
          && filter.match(card, game)
          && game.getState().getZone(card.getId()).match(fromZone);
    }
    return false;
  }
}

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

@Override
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {
  // check it was previously on battlefield
  Permanent before = ((ZoneChangeEvent) event).getTarget();
  if (before == null) {
    return false;
  }
  if (!(before instanceof PermanentToken) && !this.hasSourceObjectAbility(game, before, event)) {
    return false;
  }
  // check now it is in graveyard
  if (before.getZoneChangeCounter(game) + 1 == game.getState().getZoneChangeCounter(sourceId)) {
    Zone after = game.getState().getZone(sourceId);
    return after != null && Zone.GRAVEYARD.match(after);
  } else {
    // Already moved to another zone, so guess it's ok
    return true;
  }
}

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

@Override
public boolean checkTrigger(GameEvent event, Game game) {
  MageObject lastKnown = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD);
  if (lastKnown == null) {
    return false;
  }
  ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
  Permanent permanent = zEvent.getTarget();
  if (permanent == null) {
    return false;
  }
  if (super.getSourceId().equals(event.getTargetId())
      || permanent.getPower().getValue() > 4
      && permanent.isControlledBy(controllerId)) {
    Zone after = game.getState().getZone(event.getTargetId());
    return after != null && Zone.GRAVEYARD.match(after);
  }
  return false;
}

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

@Override
public boolean applies(GameEvent event, Ability source, Game game) {
  if (event.getType() == GameEvent.EventType.ZONE_CHANGE
      && ((ZoneChangeEvent) event).getToZone().match(Zone.BATTLEFIELD)) {
    Card card = game.getCard(event.getTargetId());
    if (card != null && card.isCreature()) { // TODO: Bestow Card cast as Enchantment probably not handled correctly
      Player controller = game.getPlayer(source.getControllerId());
      if (controller != null && controller.hasOpponent(event.getPlayerId(), game)) {
        return true;
      }
    }
  }
  if (event.getType() == GameEvent.EventType.CREATE_TOKEN && event.getFlag()) { // flag indicates if it's a creature token
    Player controller = game.getPlayer(source.getControllerId());
    return controller != null && controller.hasOpponent(event.getPlayerId(), game);
  }
  return false;
}

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

@Override
  public boolean apply(Game game, Ability source) {
    Spell spell = game.getStack().getSpell(source.getFirstTarget());
    if (spell != null && game.getStack().counter(spell.getId(), source.getSourceId(), game)) {
      countered = true;
    }

    Card card = game.getCard(source.getTargets().get(1).getFirstTarget());
    Player you = game.getPlayer(source.getControllerId());
    if (you != null && card != null) {
      if (you.chooseUse(Outcome.Benefit, "Do you wish to shuffle up to one target card from your graveyard into your library?", source, game)
          && game.getState().getZone(card.getId()).match(Zone.GRAVEYARD)) {
        card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, false);
        you.shuffleLibrary(source, game);
      }
    }
    return countered;
  }
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com