package org.mafagafogigante.dungeon.world;
import org.mafagafogigante.dungeon.entity.Luminosity;
import org.mafagafogigante.dungeon.entity.creatures.Observer;
import java.io.Serializable;
/**
* A visibility criterion based on luminosity.
*/
public class LuminosityVisibilityCriterion implements Serializable, VisibilityCriterion {
private final Luminosity minimumLuminosity;
public LuminosityVisibilityCriterion(Luminosity minimumLuminosity) {
this.minimumLuminosity = minimumLuminosity;
}
@Override
public boolean isMetBy(Observer observer) {
double observerLuminosity = observer.getObserverLocation().getLuminosity().toPercentage().toDouble();
return Double.compare(observerLuminosity, minimumLuminosity.toPercentage().toDouble()) >= 0;
}
}