26 lines
552 B
Scala
26 lines
552 B
Scala
package lila.puzzle
|
|
|
|
sealed abstract class PuzzleTier(val key: String) {
|
|
|
|
def stepDown = PuzzleTier stepDown this
|
|
|
|
override def toString = key
|
|
}
|
|
|
|
object PuzzleTier {
|
|
|
|
case object Top extends PuzzleTier("top")
|
|
case object Good extends PuzzleTier("good")
|
|
case object All extends PuzzleTier("all")
|
|
|
|
def stepDown(tier: PuzzleTier): Option[PuzzleTier] =
|
|
if (tier == Top) Good.some
|
|
else if (tier == Good) All.some
|
|
else none
|
|
|
|
def from(tier: String) =
|
|
if (tier == Top.key) Top
|
|
else if (tier == Good.key) Good
|
|
else All
|
|
}
|