import uk.co.nickthecoder.glok.event.Key
import uk.co.nickthecoder.glok.event.KeyEvent
import uk.co.nickthecoder.kyd.Act
import uk.co.nickthecoder.kyd.Director
import uk.co.nickthecoder.kyd.Management
import uk.co.nickthecoder.kyd.appearance.Label
class MenuDirector : Director {
private lateinit var modeAppearance: Label
override fun onActStarted(act: Act) {
(Management.instance.act?.stages?.firstOrNull { it.name == "glass" }?.actors?.firstOrNull { it.id == "mode" }
?.appearance as? Label)?.let { modeAppearance = it }
}
override fun onKeyPressed(keyEvent: KeyEvent) {
when (keyEvent.key) {
Key.DIGIT_1 -> { // PLAY
Management.instance.loadAct("/play")
}
Key.DIGIT_2 -> { // EASY
modeAppearance.text = "*"
with(CavernQuest.instance) {
maxBlasts = 1000
blastsPerDynamite = 50
friendly = true
monstersGetStuck = true
}
}
Key.DIGIT_3 -> { // STANDARD
modeAppearance.text = "\n*"
with(CavernQuest.instance) {
maxBlasts = 1000
blastsPerDynamite = 25
friendly = false
monstersGetStuck = true
}
}
Key.DIGIT_4 -> { // HARD
modeAppearance.text = "\n\n*"
with(CavernQuest.instance) {
maxBlasts = 50
blastsPerDynamite = 10
friendly = false
monstersGetStuck = false
}
}
Key.DIGIT_9 -> { // QUIT
Management.instance.terminate()
}
else -> {}
}
}
}