@Override
public boolean apply(Game game, Ability source) {
Spell spell = (Spell) this.getValue("StormSpell");
if (spell != null) {
CastSpellLastTurnWatcher watcher = (CastSpellLastTurnWatcher) game.getState().getWatchers().get("CastSpellLastTurnWatcher");
for (int i = 0; i < watcher.getSpellOrder(spell) - 1; i++) {
Spell copy = spell.copySpell();
copy.setControllerId(source.getControllerId());
copy.setCopiedSpell(true);
game.getStack().push(copy);
copy.chooseNewTargets(game, source.getControllerId());