Island Sanctuary did not check for active player, so it could trigger in other players' draw steps. Added extra check for this. Solves
@@ -81,7 +81,7 @@ class IslandSanctuaryEffect extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
- return source.isControlledBy(event.getPlayerId()) && game.getTurn().getStepType() == PhaseStep.DRAW;
+ return source.isControlledBy(event.getPlayerId()) && game.getTurn().getStepType() == PhaseStep.DRAW && game.getActivePlayerId().equals(event.getPlayerId());
}
@Override
