All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.robocode.tankroyale.gui.ui.console.BaseBotConsolePanel.kt Maven / Gradle / Ivy

package dev.robocode.tankroyale.gui.ui.console

import dev.robocode.tankroyale.gui.client.ClientEvents
import dev.robocode.tankroyale.gui.model.Participant
import dev.robocode.tankroyale.gui.ui.Strings

abstract class BaseBotConsolePanel(val bot: Participant) : ConsolePanel() {

    private var numberOfRounds: Int = 0

    init {
        updateRoundInfo(1)
        subscribeToEvents()
    }

    private fun subscribeToEvents() {
        ClientEvents.apply {
            onGameStarted.subscribe(this@BaseBotConsolePanel) { gameStartedEvent ->
                numberOfRounds = gameStartedEvent.gameSetup.numberOfRounds
            }
            onRoundStarted.subscribe(this@BaseBotConsolePanel) {
                updateRoundInfo(it.roundNumber)
            }
        }
    }

    private fun updateRoundInfo(roundNumber: Int) {
        var roundInfo = "${Strings.get("round")}: $roundNumber"
        if (numberOfRounds > 0) {
            roundInfo += "/$numberOfRounds"
        }

        appendBanner("""
            --------------------
            $roundInfo
            --------------------
        """.trimIndent()
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy