Example #1
0
    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();
    }
Example #2
0
    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();
            }
        });
    }