@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (event.getType() == EventType.LOSES && event.getPlayerId().equals(source.getControllerId())) {
Player player = game.getPlayer(event.getPlayerId());
if (!player.hasLost() && (
(player.getLife() > 0 || !player.canLoseByZeroOrLessLife())
&& player.isEmptyDraw()
&& player.getCounters().getCount(CounterType.POISON) < 10)) {
return true;
}
}