public override void Initialize() { gameName = GameName.WordComposing; var selector = FindObjectOfType <WordComposingSelector>(); cardSelector = selector; wordComposingSelector = selector; reseter = FindObjectOfType <WordComposingReseter>(); panelSizeControl = FindObjectOfType <WordComposingPanelSizeControl>(); base.Initialize(); CategoriesPanels.ObserveEveryValueChanged((temp) => temp) .Subscribe(_ => reseter.UpdatePanelList(CategoriesPanels)) .AddTo(this); Signals.LastWordSelected.AddListener(() => ClauseComplete = true); Signals.RemoveFirstWord.AddListener(() => GameMode = ClauseType.TwoWord); Signals.ReturnAllWordInClause.AddListener(() => GameMode = ClauseType.ThreeWord); Signals.RemoveSecondRankWord.AddListener(() => { if (GetVisibleSecondRankCardCount() == 0) { GameMode = ClauseType.OneWord; } }); Signals.ReturnSecondRankCard.AddListener(() => GameMode = ClauseType.TwoWord); reseter.Initialize(GameMode); mainMenu.AddEditableElement(this); BinBtn(); }
protected override void AddNewCategory(string _categoryKey) { if (!IsCategoryForThisGame(_categoryKey)) { return; } CategoryData data = new CategoryData(); if (!categoryStorage.HasCategory(gameName, _categoryKey)) { return; } data = categoryStorage.GetData(gameName, _categoryKey); var obj = Instantiate(categoryCardPref, categoryParent.transform); var categoryPanel = Instantiate(categoryPanelPref, panelParent); CategoriesPanels.Add(categoryPanel); categoryPanel.SetActive(false); var initializer = obj.GetComponent <CategoryInitializer>(); initializer.Initialize(gameName, _categoryKey, data); CategoryCards.Add(initializer); InitializeEditableElement(obj, data.visible); BindCategoryBtn(CategoryCards.Count - 1); CalculateCategoryPanelRect(); ConfigurateCards(data, categoryPanel, _categoryKey); var closeBtn = categoryPanel.transform.Find("CloseButton").GetComponent <Button>(); closeBtn.onClick.AddListener(() => { categoryPanel.SetActive(false); categorySelectorPanel.SetActive(true); if (ClauseComplete) { ClauseComplete = false; Signals.RemoveWordFromClause.Invoke(); } }); }