package org.mafagafogigante.dungeon.world; /** * WeatherCondition class that indicates a weather condition. */ public enum WeatherCondition { CLEAR("the sky is clear"), CLOUDY("the sky is cloudy"), OVERCAST("the sky is overcast"), RAIN("it is raining"), STORM("it is storming"); private final String descriptivePhrase; WeatherCondition(String descriptivePhrase) { this.descriptivePhrase = descriptivePhrase; } WeatherCondition getLighter() { return WeatherCondition.values()[Math.max(0, ordinal() - 1)]; } boolean isLighterThan(WeatherCondition condition) { return ordinal() < condition.ordinal(); } WeatherCondition getHeavier() { return WeatherCondition.values()[Math.min(WeatherCondition.values().length - 1, ordinal() + 1)]; } boolean isHeavierThan(WeatherCondition condition) { return ordinal() > condition.ordinal(); } public String toDescriptiveString() { return descriptivePhrase; } }