public void StartGame(LevelInfo levelInfo) { PageNavigationManager.GetInstance().ChangePage("game"); onInitLevel.Invoke(); //init tileManager and wordChecker wordChecker.showHints = levelInfo.showHints; List <string> wordList = new List <string>(levelInfo.words); wordChecker.SetWordList(wordList); if (levelInfo.weights.Length == 0) { tileManager.AutoAdjustCharacterWeight(wordList); } else { tileManager.characterWeights = (new List <TileManager.CharacterWeight>(levelInfo.weights)); } tileManager.rowCount = levelInfo.rowCount; tileManager.colCount = levelInfo.colCount; tileManager.GenerateTiles(levelInfo.tileSetup); //level required words requiredWords.Clear(); if (levelInfo.requiredWords.Length == 0) { hasWordTarget = false; } else { hasWordTarget = true; for (int i = 0; i < levelInfo.requiredWords.Length; i++) { RequiredWord rw = levelInfo.requiredWords[i]; requiredWords[rw.word.ToUpper()] = rw.count; } } //Filtered words for quiz level Dictionary <string, string> filteredWords = new Dictionary <string, string>(); for (int i = 0; i < levelInfo.filteredWords.Length; i++) { filteredWords[levelInfo.filteredWords[i].originalWord.ToUpper()] = levelInfo.filteredWords[i].filteredWord; } //UI related if (topText != null) { remainingWordlist.ClearList(); topText.text = levelInfo.topText; if (levelInfo.topText == "") { remainingWordlist.SetWordList(levelInfo.requiredWords, filteredWords); } } retryButton.SetActive(levelInfo.canRetry); detailButton.SetActive(levelInfo.detailPanel.visible); if (levelInfo.detailPanel.visible) { detailPanel.Show(true); detailPanel.title = levelInfo.detailPanel.title; detailPanel.duration = levelInfo.duration; detailPanel.image = Resources.Load <Sprite>(levelInfo.detailPanel.imagePath); if (detailPanel.image == null) { detailPanel.SetWordList(new List <RequiredWord>(levelInfo.requiredWords), filteredWords); } else { detailPanel.ClearWordList(); } } else { detailPanel.Hide(false); } //Timer related timer.StopTimer(); timer.paused = false; timer.duration = levelInfo.duration; pauseButton.SetActive(levelInfo.duration >= 0); //abilities AbilityBehaviour.ResetAllAbilities(); for (int i = 0; i < levelInfo.abilities.Length; i++) { AbilityBehaviour.ConfigAbility(levelInfo.abilities[i]); } //link linkController.shouldGenerateNewTile = levelInfo.shouldGenerateNewTile; }
void AddWordItem(RequiredWord requiredWord, GameObject parent) { AddWordItem(requiredWord.word, requiredWord.count, parent); }