@Override public boolean apply(Game game, Ability source) { MageObject object = source.getSourceObject(game); return object instanceof Spell && object.isCreature(); } }
@Override public boolean apply(Game game, Ability source) { if (source instanceof SpellAbility) { MageObject object = game.getObject(source.getSourceId()); if (object != null && object.isCreature()) { return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { MageObject mageObject = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); return mageObject != null && mageObject.isCreature(); }
@Override public boolean checkTrigger(GameEvent event, Game game) { return event.getPlayerId().equals(this.getControllerId()) && game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).isCreature(); }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getType() == EventType.SACRIFICED_PERMANENT) { MageObject mageObject = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (mageObject != null && mageObject.isCreature()) { return true; } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { return event.getPlayerId().equals(this.getControllerId()) && game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).isCreature(); }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (event.getPlayerId().equals(source.getControllerId())) { MageObject spellObject = game.getObject(event.getSourceId()); if (spellObject != null) { return spellObject.isCreature(); } } return false; }
@Override public boolean checkTrigger(GameEvent event, Game game) { return event.getPlayerId().equals(this.getControllerId()) && game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).isCreature(); }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (event.getType() == GameEvent.EventType.CAST_SPELL && event.getPlayerId().equals(source.getControllerId())) { MageObject object = game.getObject(event.getSourceId()); if (object != null && object.isCreature()) { return true; } } return false; } }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (super.applies(event, source, game)) { MageObject sourceObject = game.getObject(event.getSourceId()); if (sourceObject != null && sourceObject.isCreature()) { if (event.getTargetId().equals(source.getSourceId())) { return true; } } } return false; }
@Override public boolean applies(GameEvent event, Ability source, Game game) { if (super.applies(event, source, game)) { MageObject sourceObject = game.getObject(event.getSourceId()); if (sourceObject != null && sourceObject.isCreature()) { if (event.getTargetId().equals(source.getSourceId())) { return true; } } } return false; }
@Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.ZONE_CHANGE && ((ZoneChangeEvent) event).isDiesEvent()) { MageObject mageObject = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (mageObject != null && mageObject.isCreature()) { creaturesDiedThisTurn++; } } }
@Override public boolean apply(Game game, Ability source) { if (super.apply(game, source)) { MageObject object = game.getObject(source.getSourceId()); if (object != null && object.hasSubtype(SubType.ELF, game) && object.isCreature()) { return true; } } return false; } }
@Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.ZONE_CHANGE && ((ZoneChangeEvent) event).isDiesEvent()) { MageObject card = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (card != null && card.isCreature()) { creaturesDiedThisTurn++; } } }
@Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.ZONE_CHANGE && ((ZoneChangeEvent) event).isDiesEvent()) { MageObject card = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (card != null && ((Card) card).isOwnedBy(this.controllerId) && card.isCreature()) { creatureIds.add(card.getId()); } } }
@Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ZONE_CHANGE && ((ZoneChangeEvent) event).isDiesEvent()) { MageObject card = game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (card != null && ((Card) card).isOwnedBy(this.controllerId) && card.isCreature()) { creaturesCount++; } } }
@Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.MANA_PAID) { MageObject target = game.getObject(event.getTargetId()); if (event.getSourceId() != null && event.getSourceId().equals(this.getSourceId()) && target != null && target.isCreature() && event.getFlag()) { if (target instanceof Spell) { this.creatures.add(((Spell) target).getCard().getId()); } } } }
@Override public boolean checkTrigger(GameEvent event, Game game) { return event.getPlayerId().equals(this.getControllerId()) && game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).isCreature() && game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD).getColor(game).isBlack(); }
@Override public boolean applies(GameEvent event, Ability source, Game game) { Permanent brand = game.getPermanent(source.getSourceId()); if (brand != null && brand.getAttachedTo() != null) { UUID enchantedController = game.getPermanent(brand.getAttachedTo()).getControllerId(); if(Objects.equals(enchantedController, event.getPlayerId()) && game.getObject(event.getSourceId()).isCreature()) { return true; } } return false; } }
@Override public boolean checkTrigger(GameEvent event, Game game) { StackAbility stackAbility = (StackAbility) game.getStack().getStackObject(event.getSourceId()); if (stackAbility != null && stackAbility.getAbilityType() == AbilityType.ACTIVATED && game.getOpponents(this.getControllerId()).contains(stackAbility.getControllerId())) { MageObject abilitySourceObject = stackAbility.getSourceObject(game); return abilitySourceObject != null && (abilitySourceObject.isLand() || abilitySourceObject.isCreature()); } return false; }