public CollectionItemSelectionHandler(Inventory inventory, ToggleGroup toggleGroup,
                                          string equipmentSlot, Equipment equipment, CollectionPreviewer collectionPreviewer)
    {
        _inventory   = inventory;
        _toggleGroup = toggleGroup;
        _toggleGroup.allowSwitchOff = false;
        _equipment = equipment;

        _equippedItem
        .Skip(1)
        .Subscribe(item => equipment.EquipItem(equipmentSlot, item));

        collectionPreviewer.RegisterPreviewSelectionHandler(equipmentSlot, this);
    }
Пример #2
0
    public void Initialize(Equipment equipment, CollectionPreviewer collectionPreviewer)
    {
        _equipment = equipment;

        CollectionItemSelectionHandler = new CollectionItemSelectionHandler(_inventory, _toggleGroup,
                                                                            _equipmentSlot, equipment, collectionPreviewer);
        CollectionPurchaseController = new CollectionPurchaseController();

        var idx = 0;

        foreach (var collectionPage in _collectionPages)
        {
            var p = idx;
            _scrollSnap.AddChild(collectionPage.gameObject);
            _scrollSnap.OnSelectionPageChangedEvent.AddListener((page) =>
            {
                if (_equipmentSlot != "Trail")
                {
                    if (page == p)
                    {
                        collectionPage.OnFocused();
                    }
                    else
                    {
                        collectionPage.OnUnfocused();
                    }
                }
            });
            collectionPage.Initialize(CollectionItemSelectionHandler, CollectionPurchaseController);
            idx++;
        }

        var equippedItem = _equipment.GetItem(_equipmentSlot);

        //CollectionItemSelectionHandler.SelectItem(equippedItem);

        for (int i = 0; i < _paginations.Count; i++)
        {
            _paginations[i].gameObject.SetActive(i < _collectionPages.Count);
        }
    }