Skip to content

Commit

Permalink
a bit more logic around busting/finishing
Browse files Browse the repository at this point in the history
  • Loading branch information
alyssaruth committed Apr 7, 2024
1 parent 449217d commit cb4df1a
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/main/kotlin/dartzee/screen/game/DartsGameScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class DartsGameScreen(game: GameEntity, private val participants: List<IWrappedP

if (InjectedThings.partyMode) {
contentPane.add(tutorialPanel)
pack()
extendedState = Frame.MAXIMIZED_BOTH
} else {
contentPane.add(gamePanel)
Expand Down
26 changes: 22 additions & 4 deletions src/main/kotlin/dartzee/screen/game/TutorialPanel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ import dartzee.core.util.setFontSize
import dartzee.listener.DartboardListener
import dartzee.`object`.Dart
import dartzee.screen.GameplayDartboard
import dartzee.utils.DartsColour
import dartzee.utils.ResourceCache
import dartzee.utils.sumScore
import java.awt.BorderLayout
import java.awt.Color
import java.awt.Dimension
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
Expand Down Expand Up @@ -104,7 +106,7 @@ class TutorialPanel(private val parent: DartsGameScreen) :

// Center-East - Score indicators
val panelEast = JPanel()
panelEast.preferredSize = Dimension(160, 50)
panelEast.preferredSize = Dimension(200, 50)
add(panelEast, BorderLayout.EAST)
panelEast.layout = MigLayout("al center center")
val lblRemainingText = JLabel("Remaining:")
Expand Down Expand Up @@ -181,7 +183,7 @@ class TutorialPanel(private val parent: DartsGameScreen) :
private fun confirmScore() {
if (!isBust()) {
scoreRemaining -= sumScore(dartsThrown)
lblRemaining.text = scoreRemaining.toString()
lblRemaining.text = if (scoreRemaining > 0) "$scoreRemaining" else "You win!"
}

clearDarts()
Expand All @@ -192,25 +194,41 @@ class TutorialPanel(private val parent: DartsGameScreen) :
dartsThrown.clear()

lblScored.text = "0"
lblScored.foreground = Color.BLACK

btnReset.isEnabled = false
btnConfirm.isEnabled = false

dartboard.ensureListening()
if (scoreRemaining > 0) {
dartboard.ensureListening()
}
}

override fun dartThrown(dart: Dart) {
dartsThrown.add(dart)

lblScored.text = sumScore(dartsThrown).toString()
lblScored.text = getScoredDesc()

btnReset.isEnabled = true
btnConfirm.isEnabled = true

if (dartsThrown.size == 3 || sumScore(dartsThrown) >= scoreRemaining) {
dartboard.stopListening()
}

if (isBust()) {
lblScored.foreground = DartsColour.DARK_RED
} else if (sumScore(dartsThrown) == scoreRemaining) {
lblScored.foreground = DartsColour.DARK_GREEN
}
}

private fun getScoredDesc() =
if (dartsThrown.size > 1) {
"${dartsThrown.joinToString(" + ")} = ${sumScore(dartsThrown)}"
} else {
sumScore(dartsThrown).toString()
}

private fun isBust(): Boolean = (scoreRemaining - sumScore(dartsThrown)) < 0
}
2 changes: 2 additions & 0 deletions src/main/kotlin/dartzee/utils/DartsColour.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ object DartsColour {
Color.getHSBColor(242.toFloat() / 360, 0.48.toFloat(), 0.8.toFloat())
val PURPLE = Color(138, 43, 226)
val ORANGE = Color(255, 140, 0)
val DARK_GREEN = Color(1, 75, 32)
val DARK_RED = Color(139, 0, 0)

val FIRST_COLOURS = Pair(Color.YELLOW, COLOUR_GOLD_TEXT)
val SECOND_COLOURS = Pair(Color.GRAY, COLOUR_SILVER_TEXT)
Expand Down

0 comments on commit cb4df1a

Please sign in to comment.