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); }); } }
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]; } }
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]; } }