package club.clubk.ktag.apps.koth

/**
 * Sealed class representing the game states in King of the Hill.
 */
sealed class KothState {
    data object Idle : KothState()
    data object Initiating : KothState()
    data object CountingDown : KothState()
    data object Playing : KothState()
    data object Finished : KothState()
}

/**
 * Sealed class representing the events that can trigger state transitions.
 */
sealed class KothEvent {
    data object Start : KothEvent()
    data object Timeout : KothEvent()
    data object Stop : KothEvent()
    data object Reset : KothEvent()
}

/**
 * Sealed class representing which team has possession of the hill.
 */
sealed class Possession {
    data object None : Possession()
    data object Red : Possession()
    data object Blue : Possession()
}
