using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; [System.Serializable] public class Shop { [NonSerialized] public string Npc; [NonSerialized] public string Map; [SerializeField] public List> Content = new List>(); public Shop(string _map) { Map = _map; } public Shop(string _map, string _npc) { Map = _map; Npc = _npc; } public Shop(string _map, string _npc, List> _content) { Map = _map; Npc = _npc; Content = _content; } public void SetContent(List> _content) { Content = _content; } public List> GetContent() { return Content; } #region item public void AddItemToShop(Item _item) { int firstEmptyPosition = FindFirstEmptyPosition(); Content.Add(new IndexValuePair(firstEmptyPosition, (EquippableItem)_item)); } public void AddItemToShopOnPosition(int _position, Item _item) { Content.Add(new IndexValuePair(_position, (EquippableItem)_item)); } #endregion #region equippable item public void AddItemToShop(EquippableItem _item) { int firstEmptyPosition = FindFirstEmptyPosition(); Content.Add(new IndexValuePair(firstEmptyPosition, _item)); } public void AddItemToShopOnPosition(int _position, EquippableItem _item) { Content.Add(new IndexValuePair(_position, _item)); } #endregion public int FindFirstEmptyPosition() { if (Content.Any()) { for (int i = 0; i < Content.Count(); i++) { if (Content.Count(el => el.Key == i && el.Value != null) != 0) continue; return i; } } return 0; } }