if (event.getType() == GameEvent.EventType.UPKEEP_STEP_PRE) {
Player player = game.getPlayer(event.getPlayerId());
if (player != null) {
FilterCreaturePermanent filter = new FilterCreaturePermanent("nonartifact creature you control");
filter.add(Predicates.not(new CardTypePredicate(CardType.ARTIFACT)));
filter.add(new ControllerIdPredicate(player.getId()));
Target target = new TargetCreaturePermanent(filter);
if (target.canChoose(this.getSourceId(), this.getControllerId(), game) && player.chooseTarget(Outcome.DestroyPermanent, target, this, game)) {
for (Effect effect: this.getEffects()) {
if (effect instanceof DestroyTargetEffect) {
effect.setTargetPointer(new FixedTarget(target.getFirstTarget()));