package com.pixelmintdrop import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel class MainActivityViewModel : ViewModel() { // Private MutableLiveData for internal updates private val _currentScore = MutableLiveData(0L) private val _currentLevel = MutableLiveData(1) // Public LiveData for observation by the Activity val currentScore: LiveData = _currentScore val currentLevel: LiveData = _currentLevel // --- Sound & Music State --- private val _isSoundEnabled = MutableLiveData(true) // Default to true val isSoundEnabled: LiveData = _isSoundEnabled private val _isMusicEnabled = MutableLiveData(true) // Default to true val isMusicEnabled: LiveData = _isMusicEnabled // --------------------------- // Example function to update the score (logic would be moved here) fun incrementScore(points: Long) { _currentScore.value = (_currentScore.value ?: 0L) + points // Potentially add logic here to check for level up based on score } // Function to set the score directly fun setScore(score: Long) { _currentScore.value = score } // Example function to update the level fun setLevel(level: Int) { _currentLevel.value = level } fun resetGame() { _currentScore.value = 0L _currentLevel.value = 1 // Reset other game state within the ViewModel as needed } // --- Sound & Music Logic --- fun toggleSound() { _isSoundEnabled.value = !(_isSoundEnabled.value ?: true) } fun setMusicEnabled(enabled: Boolean) { _isMusicEnabled.value = enabled } fun toggleMusic() { setMusicEnabled(!(_isMusicEnabled.value ?: true)) } // -------------------------- // Add other state variables and logic related to game state here }