Exit Full View

Cavern Quest 2 / src / commonMain / kotlin / FuelStatus.kt

import uk.co.nickthecoder.glok.property.boilerplate.booleanProperty
import uk.co.nickthecoder.kyd.Actor
import uk.co.nickthecoder.kyd.Behaviour
import uk.co.nickthecoder.kyd.appearance.Label

class FuelStatus : Behaviour {

    val fueledProperty by booleanProperty(false)
    var fueled by fueledProperty

    override fun onEnteredStage(actor: Actor) {
        PlayDirector.instance.registerFuelStatus(this)
        updateText(actor)
        fueledProperty.addListener { updateText(actor) }
    }

    private fun updateText(actor: Actor) {
        (actor.appearance as? Label)?.let { label ->
            label.text = if (fueled) "Ready to Take Off" else "No Fuel"
        }
    }
}