public override void RefreshHero(Hero hero)
    {
        _viewedHero = hero;

        SetGeneralInfo();

        RemoveCharacterSlotItems();

        var list = _viewedHero.GetAppliedItems();

        if (list == null)
        {
            return;
        }

        //TODO: Rework Brute Force enable Default Slot image
        foreach (var slot in _slotsByType.Values)
        {
            slot.GetChild(0).GetComponent <Image>().enabled = true;
        }
        foreach (var item in list)
        {
            var i = Instantiate(prefab_Item, _slotsByType[item.Key]);
            _slotsByType[item.Key].GetChild(0).GetComponent <Image>().enabled = false;
            i.SetData(item.Value, delegate { itemInfo.SetData(_viewedHero, item.Value, true); });
        }
    }
Ejemplo n.º 2
0
    void RefreshSlots()
    {
        foreach (Transform trans in container)
        {
            if (trans.name.Equals("Header"))
            {
                continue;
            }
            Destroy(trans.gameObject);
        }

        Slot[] slots = new Slot[_slotCount];

        for (int i = 0; i < _slotCount; i++)
        {
            var slot = Instantiate(prefab_Slot, container);
            slots[i] = slot;
        }

        if (_items == null)
        {
            return;
        }

        List <GameObject> itemControllers = new List <GameObject>();
        var orderedList = _items;

        switch (_filter)
        {
        case FilterMode.None:
            break;

        case FilterMode.Cost:
            orderedList = _orderDesc ? _items.OrderByDescending(e => e.price).ToList() : _items.OrderBy(e => e.price).ToList();
            break;

        case FilterMode.Rarity:
            orderedList = _orderDesc ? _items.OrderByDescending(e => e.rarity).ToList() : _items.OrderBy(e => e.rarity).ToList();
            break;

        case FilterMode.Type:
            orderedList = _orderDesc ? _items.OrderByDescending(e => e.type).ToList() : _items.OrderBy(e => e.type).ToList();
            break;
        }

        foreach (var item in orderedList)
        {
            var i = Instantiate(prefab_Item);
            i.SetData(item, () => { _itemInfo.SetData(_currentHero, item, false); });
            itemControllers.Add(i.gameObject);
        }

        for (int i = 0; i < itemControllers.Count; i++)
        {
            slots[i].item = itemControllers[i];
        }
    }
Ejemplo n.º 3
0
    void Init()
    {
        var length = _items.Count;

        var columnCount = length / RowsPerColumn;

        if (length % RowsPerColumn != 0)
        {
            columnCount++;
        }

        Slot[] slots = new Slot[columnCount * RowsPerColumn];

        for (int i = 0; i < columnCount * RowsPerColumn; i++)
        {
            var slot = Instantiate(prefab_Slot, container);
            slots[i] = slot;
        }

        List <GameObject> itemControllers = new List <GameObject>();
        var orderedList = _items;

        switch (_filter)
        {
        case FilterMode.None:
            break;

        case FilterMode.Cost:
            orderedList = _orderDesc ? _items.OrderByDescending(e => e.price).ToList() : _items.OrderBy(e => e.price).ToList();
            break;

        case FilterMode.Rarity:
            orderedList = _orderDesc ? _items.OrderByDescending(e => e.rarity).ToList() : _items.OrderBy(e => e.rarity).ToList();
            break;

        case FilterMode.Type:
            orderedList = _orderDesc ? _items.OrderByDescending(e => e.type).ToList() : _items.OrderBy(e => e.type).ToList();
            break;
        }

        foreach (var item in orderedList)
        {
            var itemController = Instantiate(prefab_Item);
            itemController.SetData(item, () => itemInfo.SetData(_currentHero, item, false));
            itemControllers.Add(itemController.gameObject);
        }

        for (int i = 0; i < itemControllers.Count; i++)
        {
            slots[i].item = itemControllers[i];
        }
    }