本文整理了Java中mage.abilities.Ability.getModes()
方法的一些代码示例,展示了Ability.getModes()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ability.getModes()
方法的具体详情如下:
包路径:mage.abilities.Ability
类名称:Ability
方法名:getModes
暂无
代码示例来源:origin: magefree/mage
@Override
public Modes getModes() {
return ability.getModes();
}
代码示例来源:origin: magefree/mage
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify.getSourceId().equals(source.getSourceId()) && (abilityToModify instanceof SpellAbility)) {
return abilityToModify.getModes().getSelectedModes().size() > 1;
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public boolean apply(Game game, Ability source, Ability abilityToModify) {
int numCosts = abilityToModify.getModes().getSelectedModes().size() - 1;
for (int i = 0; i < numCosts; i++) {
abilityToModify.addCost(cost.copy());
}
return true;
}
代码示例来源:origin: magefree/mage
private static boolean canChooseTargetAbility(Ability ability, Game game, UUID controllerId) {
int found = 0;
for (Mode mode : ability.getModes().values()) {
if (mode.getTargets().canChoose(ability.getSourceId(), ability.getControllerId(), game)) {
found++;
if (ability.getModes().isEachModeMoreThanOnce()) {
return true;
}
if (found >= ability.getModes().getMinModes()) {
return true;
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
for (UUID modeId : abilityToModify.getModes().getSelectedModes()) {
Mode mode = abilityToModify.getModes().get(modeId);
for (Target target : mode.getTargets()) {
for (UUID targetUUID : target.getTargets()) {
if (targetUUID.equals(source.getSourceId())) {
return true;
}
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
public void addAbility(Ability ability, MageObject attachedTo) {
if (ability instanceof StaticAbility) {
for (UUID modeId : ability.getModes().getSelectedModes()) {
Mode mode = ability.getModes().get(modeId);
for (Effect effect : mode.getEffects()) {
if (effect instanceof ContinuousEffect) {
addEffect((ContinuousEffect) effect, ability);
}
}
}
} else if (ability instanceof TriggeredAbility) {
this.triggers.add((TriggeredAbility) ability, attachedTo);
}
}
代码示例来源:origin: magefree/mage
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
for (UUID modeId : abilityToModify.getModes().getSelectedModes()) {
Mode mode = abilityToModify.getModes().get(modeId);
for (Target target : mode.getTargets()) {
for (UUID targetId : target.getTargets()) {
if (targetId.equals(source.getSourceObject(game).getId())) {
return true;
}
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
private void addModeOptions(List<Ability> options, Ability option, Game game) {
// TODO: Support modal spells with more than one selectable mode
for (Mode mode : option.getModes().values()) {
Ability newOption = option.copy();
newOption.getModes().getSelectedModes().clear();
newOption.getModes().getSelectedModes().add(mode.getId());
newOption.getModes().setActiveMode(mode);
if (!newOption.getTargets().getUnchosen().isEmpty()) {
if (!newOption.getManaCosts().getVariableCosts().isEmpty()) {
addVariableXOptions(options, newOption, 0, game);
} else {
addTargetOptions(options, newOption, 0, game);
}
} else if (!newOption.getCosts().getTargets().getUnchosen().isEmpty()) {
addCostTargetOptions(options, newOption, 0, game);
} else {
options.add(newOption);
}
}
}
代码示例来源:origin: magefree/mage
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
if (game.getOpponents(source.getControllerId()).contains(abilityToModify.getControllerId())) {
for (UUID modeId : abilityToModify.getModes().getSelectedModes()) {
Mode mode = abilityToModify.getModes().get(modeId);
for (Target target : mode.getTargets()) {
for (UUID targetUUID : target.getTargets()) {
if (targetUUID.equals(source.getSourceId())) {
return true;
}
}
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
if (abilityToModify.isControlledBy(source.getControllerId())) {
for (UUID modeId : abilityToModify.getModes().getSelectedModes()) {
Mode mode = abilityToModify.getModes().get(modeId);
for (Target target : mode.getTargets()) {
for (UUID targetUUID : target.getTargets()) {
if (targetUUID.equals(source.getSourceId())) {
return true;
}
}
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public void changeModes(Ability ability, Game game) {
if (ability instanceof SpellAbility) {
Player player = game.getPlayer(controllerId);
if (player != null) {
this.resetCosts();
if (additionalCost != null) {
if (additionalCost.canPay(ability, ability.getSourceId(), ability.getControllerId(), game)
&& player.chooseUse(Outcome.Benefit, "Pay " + additionalCost.getText(false) + " ?", ability, game)) {
additionalCost.activate();
ability.getModes().setAdditionalCost(this);
ability.getModes().setMinModes(2);
ability.getModes().setMaxModes(2);
}
}
}
}
}
代码示例来源:origin: magefree/mage
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (abilityToModify instanceof SpellAbility) {
if (game.getOpponents(source.getControllerId()).contains(abilityToModify.getControllerId())) {
for (UUID modeId : abilityToModify.getModes().getSelectedModes()) {
Mode mode = abilityToModify.getModes().get(modeId);
for (Target target : mode.getTargets()) {
for (UUID targetUUID : target.getTargets()) {
Player player = game.getPlayer(targetUUID);
if (player != null && player.getId().equals(source.getControllerId())) {
return true;
}
}
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (!(abilityToModify instanceof SpellAbility) || !game.getOpponents(source.getControllerId()).contains(abilityToModify.getControllerId())) {
return false;
}
for (UUID modeId : abilityToModify.getModes().getSelectedModes()) {
Mode mode = abilityToModify.getModes().get(modeId);
for (Target target : mode.getTargets()) {
for (UUID targetUUID : target.getTargets()) {
Permanent permanent = game.getPermanent(targetUUID);
if (permanent != null && permanent.getId().equals(source.getSourceId())) {
return true;
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public boolean apply(ObjectSourcePlayer<MageObject> input, Game game) {
StackObject object = game.getStack().getStackObject(input.getObject().getId());
if (object != null) {
for (UUID modeId : object.getStackAbility().getModes().getSelectedModes()) {
Mode mode = object.getStackAbility().getModes().get(modeId);
for (Target target : mode.getTargets()) {
if (target.getTargets().size() == 1) { // only one player targeted
Player player = game.getPlayer(target.getFirstTarget());
return player != null;
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public boolean checkInterveningIfClause(Game game) {
StackObject stackObject = null;
for (Effect effect : this.getEffects()) {
stackObject = game.getStack().getStackObject(effect.getTargetPointer().getFirst(game, this));
}
if (stackObject != null) {
int numberOfTargets = 0;
for (UUID modeId : stackObject.getStackAbility().getModes().getSelectedModes()) {
Mode mode = stackObject.getStackAbility().getModes().get(modeId);
for (Target target : mode.getTargets()) {
numberOfTargets += target.getTargets().size();
}
}
return numberOfTargets == 1;
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public boolean apply(ObjectSourcePlayer<MageObject> input, Game game) {
StackObject object = game.getStack().getStackObject(input.getObject().getId());
if (object != null) {
for (UUID modeId : object.getStackAbility().getModes().getSelectedModes()) {
Mode mode = object.getStackAbility().getModes().get(modeId);
for (Target target : mode.getTargets()) {
for (UUID targetId : target.getTargets()) {
Player player = game.getPlayer(targetId);
return player != null;
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public boolean apply(ObjectSourcePlayer<MageObject> input, Game game) {
StackObject object = game.getStack().getStackObject(input.getObject().getId());
if (object != null) {
for (UUID modeId : object.getStackAbility().getModes().getSelectedModes()) {
Mode mode = object.getStackAbility().getModes().get(modeId);
for (Target target : mode.getTargets()) {
for (UUID targetId : target.getTargets()) {
Permanent permanent = game.getPermanentOrLKIBattlefield(targetId);
if (permanent != null && targetFilter.match(permanent, input.getSourceId(), input.getPlayerId(), game)) {
return true;
}
}
}
}
}
return false;
}
代码示例来源:origin: magefree/mage
@Override
public void adjustCosts(Ability ability, Game game) {
if (ability instanceof SimpleActivatedAbility && ability.getModes().size() == 3) {
Permanent sourcePermanent = game.getPermanent(ability.getSourceId());
if (sourcePermanent != null) {
int amount = sourcePermanent.getCounters(game).getCount(CounterType.P1P1);
if (amount > 0) {
for (VariableCost cost : ability.getManaCostsToPay().getVariableCosts()) {
if (cost instanceof VariableManaCost) {
((VariableManaCost) cost).setMaxX(amount);
break;
}
}
}
}
}
}
代码示例来源:origin: magefree/mage
private static int isRemoval(Card card) {
if (card.isEnchantment() || card.isInstant() || card.isSorcery()) {
for (Ability ability : card.getAbilities()) {
for (Effect effect : ability.getEffects()) {
if (isEffectRemoval(card, ability, effect) == 1) {
return 1;
}
}
for (Mode mode : ability.getModes().values()) {
for (Effect effect : mode.getEffects()) {
if (isEffectRemoval(card, ability, effect) == 1) {
return 1;
}
}
}
}
}
return 0;
}
代码示例来源:origin: magefree/mage
public CaptiveAudience(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{5}{B}{R}");
// Captive Audience enters the battlefield under the control of an opponent of your choice.
this.addAbility(new EntersBattlefieldAbility(new CaptiveAudienceETBEffect()));
// At the beginning of your upkeep, choose one that hasn't been chosen —
// • Your life total becomes 4.
Ability ability = new BeginningOfUpkeepTriggeredAbility(
new SetPlayerLifeSourceEffect(4), TargetController.YOU, false
);
ability.getModes().setEachModeOnlyOnce(true);
// • Discard your hand.
ability.addMode(new Mode(new DiscardHandControllerEffect()));
// • Each opponent creates five 2/2 black Zombie creature tokens.
ability.addMode(new Mode(new CaptiveAudienceCreateTokensEffect()));
this.addAbility(ability);
}
内容来源于网络,如有侵权,请联系作者删除!