本文整理了Java中mage.abilities.Ability.getZone()
方法的一些代码示例,展示了Ability.getZone()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ability.getZone()
方法的具体详情如下:
包路径:mage.abilities.Ability
类名称: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:
内容来源于网络,如有侵权,请联系作者删除!