import uk.co.nickthecoder.glok.property.boilerplate.intProperty
import uk.co.nickthecoder.kyd.Actor
import uk.co.nickthecoder.kyd.Behaviour
import uk.co.nickthecoder.kyd.appearance.Label
/**
* Text containing : "Blasts : $blasts"
*/
class BlastsCounter : Behaviour {
val blastsProperty by intProperty(0)
var blasts by blastsProperty
override fun onEnteredStage(actor: Actor) {
PlayDirector.instance.registerBlastsCounter(this)
updateCounter(actor)
blastsProperty.addListener { updateCounter(actor) }
}
private fun updateCounter(actor: Actor) {
(actor.appearance as? Label)?.let { label ->
label.text = "Blasts : $blasts"
}
}
}