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

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

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

Ability.getFirstTarget介绍

[英]Retrieves the Target located at the 0th index in the Targets. A call to the method is equivalent to #getTargets().get(0).getFirstTarget().
[中]检索位于目标中第0个索引处的目标。对该方法的调用相当于#getTargets()。获取(0)。getFirstTarget()。

代码示例

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

@Override
public boolean applies(Permanent permanent, Ability source, Game game) {
  if (permanent.isControlledBy(source.getFirstTarget())) {
    return true;
  }
  return false;
}

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

@Override
  public boolean applies(GameEvent event, Ability source, Game game) {
    if (event.getPlayerId().equals(source.getFirstTarget())) {
      return true;
    }
    return false;
  }
}

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

@Override
public boolean applies(GameEvent event, Ability source, Game game) {
  return event.getTargetId().equals(source.getFirstTarget())
      && event.getSourceId().equals(targetSource.getFirstTarget());
}

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

@Override
public boolean apply(Game game, Ability source) {
  Permanent permanent = (Permanent) source.getSourceObjectIfItStillExists(game);
  if (permanent != null) {
    return permanent.changeControllerId(source.getFirstTarget(), game);
  } else {
    discard();
  }
  return false;
}

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

@Override
public void init(Ability source, Game game) {
  super.init(source, game);
  if (this.affectedObjectsSet) {
    List<Permanent> creatures = game.getBattlefield().getAllActivePermanents(StaticFilters.FILTER_PERMANENT_CREATURE, source.getFirstTarget(), game);
    for (Permanent creature : creatures) {
      affectedObjectList.add(new MageObjectReference(creature, game));
    }
  }
}

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

@Override
  public boolean apply(Game game, Ability source) {
    Permanent permanent = (Permanent) source.getSourceObjectIfItStillExists(game);
    if (permanent != null) {
      return permanent.changeControllerId(source.getFirstTarget(), game);
    } else {
      discard();
    }
    return false;
  }
}

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

@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
  if (sourceAbility != null) {
    Player player = game.getPlayer(sourceAbility.getFirstTarget());
    if (player != null) {
      return player.getHand().size();
    }
  }
  return 0;
}

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

@Override
public boolean canTarget(UUID id, Ability source, Game game) {
  UUID firstTarget = source.getFirstTarget();
  Permanent permanent = game.getPermanent(id);
  if (firstTarget != null && permanent != null && permanent.isControlledBy(firstTarget)) {
    return super.canTarget(id, source, game);
  }
  return false;
}

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

@Override
public boolean applies(Permanent permanent, Ability source, Game game) {
  if (permanent.getId().equals(source.getTargets().get(1).getFirstTarget())) {
    return permanent.canBlock(source.getFirstTarget(), game);
  }
  return false;
}

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

@Override
  public boolean apply(Game game, Ability source) {
    Permanent permanent = game.getPermanent(source.getFirstTarget());
    if (targetPointer != null) {
      permanent = game.getPermanent(targetPointer.getFirst(game, source));
    }
    if (permanent != null && controller != null) {
      return permanent.changeControllerId(controller, game);
    }
    return false;
  }
}

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

@Override
public boolean canTarget(UUID id, Ability source, Game game) {
  if (super.canTarget(id, source, game)) {
    Permanent target1 = game.getPermanent(source.getFirstTarget());
    Permanent opponentPermanent = game.getPermanent(id);
    if (target1 != null && opponentPermanent != null) {
      return target1.shareTypes(opponentPermanent);
    }
  }
  return false;
}

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

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

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

@Override
  public boolean apply(Game game, Ability source) {
    ContinuousEffect effect = new BoostTargetEffect(amount, amount, Duration.EndOfTurn);
    effect.setTargetPointer(new FixedTarget(source.getFirstTarget()));
    game.addEffect(effect, source);
    return true;
  }
}

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

@Override
  public boolean apply(Game game, Ability source) {
    Permanent target = game.getBattlefield().getPermanent(source.getFirstTarget());
    if (target != null) {
      if (filter.match(target, source.getSourceId(), source.getControllerId(), game)) {
        return true;
      }
    }
    return false;
  }
}

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

@Override
public boolean apply(Game game, Ability source) {
  Permanent targetCreature = game.getPermanent(source.getFirstTarget());
  if (targetCreature != null) {
    int toughness = targetCreature.getToughness().getBaseValueModified();
    game.addEffect(new SetPowerToughnessTargetEffect(0, toughness, Duration.EndOfTurn), source);
    return true;
  }
  return false;
}

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

@Override
public boolean apply(Game game, Ability source) {
  Permanent permanent = (Permanent) game.getLastKnownInformation(source.getFirstTarget(), Zone.BATTLEFIELD);
  if (permanent != null) {
    Player player = game.getPlayer(source.getControllerId());
    if (player != null) {
      player.gainLife(permanent.getToughness().getValue(), game, source);
    }
  }
  return false;
}

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

@Override
  public boolean apply(Game game, Ability source) {
    UUID targetId = source.getFirstTarget();
    if (targetId != null) {
      StackObject stackObject = game.getStack().getStackObject(targetId);
      if (stackObject != null) {
        return stackObject.getStackAbility().getManaCostsToPay().getPayment().count() == 0;
      }
    }
    return false;
  }
}

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

@Override
  public boolean apply(Game game, Ability source) {
    Player targetPlayer = game.getPlayer(source.getFirstTarget());
    if (targetPlayer != null) {
      int amount = 2 * game.getBattlefield().countAll(filter, targetPlayer.getId(), game);
      targetPlayer.damage(amount, source.getSourceId(), game, false, true);
      return true;
    }
    return false;
  }
}

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

@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
  GameEvent preventEvent = new GameEvent(GameEvent.EventType.PREVENT_DAMAGE, source.getFirstTarget(), source.getSourceId(), source.getControllerId(), event.getAmount(), false);
  if (!game.replaceEvent(preventEvent)) {
    int damage = event.getAmount();
    event.setAmount(0);
    game.informPlayers("Damage has been prevented: " + damage);
    game.fireEvent(GameEvent.getEvent(GameEvent.EventType.PREVENTED_DAMAGE, source.getFirstTarget(), source.getSourceId(), source.getControllerId(), damage));
  }
  return false;
}

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

@Override
  public boolean apply(Game game, Ability source) {
    DynamicValue amount = new HighestConvertedManaCostValue();
    Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source));
    if (spell != null && spell.getConvertedManaCost() <= amount.calculate(game, source, this)) {
      return game.getStack().counter(source.getFirstTarget(), source.getSourceId(), game);
    }
    return false;
  }
}

相关文章