this.getSpellAbility().getModes().setMaxModes(1);
// Destroy target artifact;
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetArtifactPermanent());
// or target creature gets +1/+1 and gains trample until end of turn;
Mode mode = new Mode();
Effect effect = new BoostTargetEffect(1,1, Duration.EndOfTurn);
effect.setText("target creature gets +1/+1");
mode.getEffects().add(effect);
effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(),Duration.EndOfTurn);
effect.setText("and gains trample until end of turn");
mode.getEffects().add(effect);
mode.getTargets().add(new TargetCreaturePermanent());
this.getSpellAbility().getModes().addMode(mode);
// or remove two time counters from target permanent or suspended card.
mode = new Mode();
Choice targetChoice = new ChoiceImpl();
targetChoice.setMessage("Choose what to target");
targetChoice.getChoices().add("Permanent");
targetChoice.getChoices().add("Suspended Card");
mode.getChoices().add(targetChoice);
mode.getEffects().add(new FuryCharmRemoveCounterEffect());
this.getSpellAbility().getModes().addMode(mode);
}