Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
    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;
    }
Exemplo n.º 3
0
        /// <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());
        }