/// <summary> /// This callback fires when a wildcard tile receives input. /// </summary> /// <remarks> /// This method is assigned in the Wildcard Tile Manager's inspector. /// Callbacks like these can also be assigned dynamically at runtime, /// and anonymous delegates are supported as well. /// </remarks> public void OnWildcardTileSelect() { // Get the currently selected letter tile. var wildcardManagerTile = WGBEvent.currentLetterTile; // If the letter is blank, // show the wildcard tile selection panel. if (!(wildcardManagerTile.defaultLetter.hasValue || wildcardManagerTile.wildcardLetter.hasValue)) { // Show the panel and initialize UI variables. m_ViewModel.wildcardPanelSelection = -1; m_ViewModel.wildcardPanelScrollPosition = Vector2.zero; m_ViewModel.showWildcardPanel = true; // Cache manager information. m_WildcardManagerLanguage = WGBEvent.currentLanguage; m_WildcardManagerTile = wildcardManagerTile; } // If the letter is not blank, reset the wildcard value. else { wildcardManagerTile.RemoveWildcard(); // Deselect the tile. m_PlayerCached.DeselectTile(wildcardManagerTile); } }
// This method is called by the ViewModel, // when the user presses a button to change a wildcard letter. void OnWildcardLetterSelect(string letter) { // Hide the wildcard tile selection panel. m_ViewModel.showWildcardPanel = false; // Set the letter to the currently cached tile, if the language has not changed. if (!string.IsNullOrEmpty(letter) && m_WildcardManagerTile != null && m_WildcardManagerLanguage == WordGameLanguage.current) { // Get a letter struct from a letter string. var selectedLetter = m_WildcardManagerLanguage.GetLetter(letter); // Set the wildcard letter. A value of 0 points is given, as well. m_WildcardManagerTile.SetWildcard(selectedLetter, 0); // Select the tile. m_PlayerCached.SelectTile(m_WildcardManagerTile); } m_WildcardManagerTile = null; m_WildcardManagerLanguage = null; }