public void Initialize() { GameManager.Instance.gameState.items = new List <Item>(); for (int i = 0; i < marketItems.Count; i++) { ItemCreationData creationData = marketItems[i]; Item item = new Item(i, creationData, creationData.DEBUG_initialOwned); GameManager.Instance.gameState.items.Add(item); } }
public Item(int itemIndex, ItemCreationData creationData, int owned = 0) { this.index = itemIndex; this.CreationData = creationData; this.baseCost = Currency.GetBaseCost(itemIndex); this.baseRate = Currency.GetBaseRate(itemIndex); this.owned = owned; this.cost = Currency.GetCostToUpgrade(baseCost, owned); this.multiplier = 1; }
/// <summary> /// Добавить тики указанному предмету /// </summary> /// <param name="type">Тип предмета, которому нужно добавить тики</param> public void AddTickToItem(ItemTypes type) { //Создать словарь если еще не существует if (m_ProcessedItems == null) { m_ProcessedItems = new Dictionary <ItemTypes, ItemCreationData>(); } //Если предмета еще нет в списке обрабатываемых - добавить if (!m_ProcessedItems.ContainsKey(type)) { ItemCreationData itemCreateData = new ItemCreationData(type, DataTableItems.GetItemDataByType(type).TicksToCreate); m_ProcessedItems.Add(type, itemCreateData); } //Добавить тики к предмету ItemCreationData curItemCreationData = m_ProcessedItems[type]; var resultData = curItemCreationData.AddTickToItem(m_TICK_STEP); //Если предмет был создан if (resultData.isCreated) { //Обнулить текущее количество тиков (даже есть текущий шаг тиков превышает количество тиков для создания - за раз можно создать только один предмет) curItemCreationData.ResetTicks(); //Вызов события добавления предмета OnItemCrafted?.Invoke(type); } else { //Вызов события добавления тиков OnTickToItemAdded?.Invoke(type, resultData.progress); } //Debug.Log(m_ProcessedItems[type].ToString()); }