[ new MagicWeakenCreatureActivation( [ MagicCondition.CAN_TAP_CONDITION, MagicConditionFactory.ChargeCountersAtLeast(1) ], new MagicActivationHints(MagicTiming.Removal), "-1/-1" ) { @Override public MagicEvent[] getCostEvent(final MagicPermanent source) { return [ new MagicTapEvent(source), new MagicRemoveCounterEvent(source,MagicCounterType.Charge,1) ]; } }, new MagicAtUpkeepTrigger() { @Override public MagicEvent executeTrigger( final MagicGame game, final MagicPermanent permanent, final MagicPlayer upkeepPlayer) { return (permanent.isController(upkeepPlayer) && permanent.getCounters(MagicCounterType.Charge) == 0) ? new MagicEvent( permanent, this, "Sacrifice SN." ): MagicEvent.NONE; } @Override public void executeEvent(final MagicGame game, final MagicEvent event) { game.doAction(new MagicSacrificeAction(event.getPermanent())); } } ]