Skip to content

Commit

Permalink
move party mode switch to utils screen
Browse files Browse the repository at this point in the history
  • Loading branch information
alyssaruth committed Mar 6, 2024
1 parent 0dd12e3 commit da87fa5
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 37 deletions.
11 changes: 11 additions & 0 deletions src/main/kotlin/dartzee/screen/UtilitiesScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import dartzee.core.util.dumpThreadStacks
import dartzee.core.util.getAllChildComponentsForType
import dartzee.core.util.runInOtherThread
import dartzee.db.sanity.DatabaseSanityCheck
import dartzee.logging.CODE_PARTY_MODE
import dartzee.`object`.DartsClient
import dartzee.utils.DARTS_VERSION_NUMBER
import dartzee.utils.DartsDatabaseUtil
Expand All @@ -26,6 +27,7 @@ class UtilitiesScreen : EmbeddedScreen() {
private val btnViewLogs = JButton("View Logs")
private val btnThreadStacks = JButton("Thread Stacks")
private val btnAchievementConversion = JButton("Run Achievement Conversion")
private val btnPartyMode = JButton("Enter Party Mode")

init {
val panel = JPanel()
Expand All @@ -39,6 +41,7 @@ class UtilitiesScreen : EmbeddedScreen() {
panel.add(btnCheckForUpdates, "cell 0 8,alignx center")
panel.add(btnViewLogs, "cell 0 10,alignx center")
panel.add(btnAchievementConversion, "cell 0 11,alignx center")
panel.add(btnPartyMode, "cell 0 12,alignx center")

val buttons = panel.getAllChildComponentsForType<AbstractButton>()
for (button in buttons) {
Expand Down Expand Up @@ -66,10 +69,18 @@ class UtilitiesScreen : EmbeddedScreen() {
}
btnThreadStacks -> dumpThreadStacks()
btnAchievementConversion -> runAchievementConversion()
btnPartyMode -> enterPartyMode()
else -> super.actionPerformed(arg0)
}
}

private fun enterPartyMode() {
InjectedThings.logger.info(CODE_PARTY_MODE, "Entering party mode!")
InjectedThings.partyMode = true

ScreenCache.switch<MenuScreen>()
}

private fun runAchievementConversion() {
val dlg = AchievementConversionDialog()
dlg.setLocationRelativeTo(ScreenCache.mainScreen)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@ package dartzee.screen.preference
import dartzee.bean.SliderAiSpeed
import dartzee.core.bean.NumberField
import dartzee.core.util.setFontSize
import dartzee.logging.CODE_PARTY_MODE
import dartzee.screen.MenuScreen
import dartzee.screen.ScreenCache
import dartzee.utils.InjectedThings
import dartzee.utils.InjectedThings.logger
import dartzee.utils.PREFERENCES_BOOLEAN_AI_AUTO_CONTINUE
import dartzee.utils.PREFERENCES_BOOLEAN_CHECK_FOR_UPDATES
import dartzee.utils.PREFERENCES_BOOLEAN_SHOW_ANIMATIONS
Expand All @@ -19,7 +14,6 @@ import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.beans.PropertyChangeEvent
import java.beans.PropertyChangeListener
import javax.swing.JButton
import javax.swing.JCheckBox
import javax.swing.JLabel
import javax.swing.JPanel
Expand All @@ -39,7 +33,6 @@ class PreferencesPanelMisc :
private val lblRowsToShow = JLabel("Rows to show on Leaderboards")
val nfLeaderboardSize = NumberField(10, 200)
val chckbxShowAnimations = JCheckBox("Play sounds/animations")
private val btnPartyMode = JButton("Enter Party Mode")

init {
add(panelCenter, BorderLayout.CENTER)
Expand All @@ -60,14 +53,12 @@ class PreferencesPanelMisc :
panelCenter.add(chckbxAiAutomaticallyFinish, "flowx,cell 0 2")
panelCenter.add(chckbxCheckForUpdates, "flowx,cell 0 3")
panelCenter.add(chckbxShowAnimations, "cell 0 4")
panelCenter.add(btnPartyMode, "cell 0 5")

slider.addChangeListener(this)
nfLeaderboardSize.addPropertyChangeListener(this)
chckbxAiAutomaticallyFinish.addActionListener(this)
chckbxCheckForUpdates.addActionListener(this)
chckbxShowAnimations.addActionListener(this)
btnPartyMode.addActionListener(this)
}

override fun refreshImpl(useDefaults: Boolean) {
Expand Down Expand Up @@ -99,13 +90,6 @@ class PreferencesPanelMisc :
PreferenceUtil.saveBoolean(PREFERENCES_BOOLEAN_SHOW_ANIMATIONS, showAnimations)
}

private fun enterPartyMode() {
logger.info(CODE_PARTY_MODE, "Entering party mode!")
InjectedThings.partyMode = true

ScreenCache.switch<MenuScreen>()
}

override fun hasOutstandingChanges() =
slider.value != PreferenceUtil.getIntValue(PREFERENCES_INT_AI_SPEED) ||
nfLeaderboardSize.value !=
Expand All @@ -122,10 +106,6 @@ class PreferencesPanelMisc :
override fun propertyChange(evt: PropertyChangeEvent?) = stateChanged()

override fun actionPerformed(e: ActionEvent?) {
if (e?.source == btnPartyMode) {
enterPartyMode()
} else {
stateChanged()
}
stateChanged()
}
}
21 changes: 21 additions & 0 deletions src/test/kotlin/dartzee/screen/TestUtilitiesScreen.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package dartzee.screen

import com.github.alyssaburlton.swingtest.clickChild
import dartzee.helper.AbstractTest
import dartzee.utils.InjectedThings
import io.kotest.matchers.shouldBe
import javax.swing.JButton
import org.junit.jupiter.api.Test

class TestUtilitiesScreen : AbstractTest() {
@Test
fun `Should enter party mode`() {
ScreenCache.switch<UtilitiesScreen>()

val utilitiesScreen = ScreenCache.currentScreen()
utilitiesScreen.clickChild<JButton>(text = "Enter Party Mode")

InjectedThings.partyMode shouldBe true
ScreenCache.currentScreen() shouldBe ScreenCache.get<MenuScreen>()
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
package dartzee.screen.preference

import com.github.alyssaburlton.swingtest.clickChild
import com.github.alyssaburlton.swingtest.uncheck
import dartzee.screen.MenuScreen
import dartzee.screen.ScreenCache
import dartzee.utils.InjectedThings
import dartzee.utils.PREFERENCES_BOOLEAN_AI_AUTO_CONTINUE
import dartzee.utils.PREFERENCES_BOOLEAN_CHECK_FOR_UPDATES
import dartzee.utils.PREFERENCES_BOOLEAN_SHOW_ANIMATIONS
import dartzee.utils.PREFERENCES_INT_AI_SPEED
import dartzee.utils.PREFERENCES_INT_LEADERBOARD_SIZE
import dartzee.utils.PreferenceUtil
import io.kotest.matchers.shouldBe
import javax.swing.JButton
import org.junit.jupiter.api.Test

class TestPreferencesPanelMisc : AbstractPreferencePanelTest<PreferencesPanelMisc>() {
override fun getPreferencesAffected(): MutableList<String> {
Expand Down Expand Up @@ -60,14 +54,4 @@ class TestPreferencesPanelMisc : AbstractPreferencePanelTest<PreferencesPanelMis
panel.chckbxCheckForUpdates.isSelected shouldBe true
panel.chckbxShowAnimations.isSelected shouldBe true
}

@Test
fun `Should enter party mode`() {
ScreenCache.switch<PreferencesScreen>()
val panel = factory()
panel.clickChild<JButton>(text = "Enter Party Mode")

InjectedThings.partyMode shouldBe true
ScreenCache.currentScreen() shouldBe ScreenCache.get<MenuScreen>()
}
}

0 comments on commit da87fa5

Please sign in to comment.