Esempio n. 1
0
    public void Increment(IItemObservable item)
    {
        inventory[item]++;
        Text itemProgressNumber = GameObject.Find("ItemAmountText").GetComponent <Text>();

        itemProgressNumber.text = inventory[item].ToString();
        MissionObserver.GetInstance().IsComplete(item);
    }
Esempio n. 2
0
 // Observe all working items and add them to ItemInventory when complete
 internal void IsComplete(IItemObservable item)
 {
     if (item.GetPointsToComplete() <= item.GetCurrentPoints())
     {
         SaveFile.GetInstance().CoreConfig.itemInventory.Increment(item);
         item.Reset();
     }
 }
Esempio n. 3
0
    // Observe all working items and add them to ItemInventory when complete
    internal void IsComplete(IItemObservable item)
    {
        if (MissionController.Instance == null)
        {
            return;
        }
        Mission activeMission = MissionController.Instance.GetActiveMission();

        if (activeMission == null)
        {
            if (!MissionController.Instance.waitingForNextMission)
            {
                MissionController.Instance.BeginCountdownForNextMission();
            }
            return;
        }
        for (int i = 0; i < activeMission.itemRequests.Count; i++)
        {
            if (activeMission.itemRequests[i].itemName == item.GetName())
            {
                if (SaveFile.GetInstance().CoreConfig.itemInventory.GetItemAmount(item) >= activeMission.itemRequests[i].amount)
                {
                    if (SaveFile.GetInstance().CoreConfig.missions.ContainsKey(activeMission.id))
                    {
                        activeMission.itemRequests[i].isComplete = true;
                    }
                }
                else
                {
                    activeMission.itemRequests[i].isComplete = false;
                }
            }
        }
        foreach (ItemRequest request in activeMission.itemRequests)
        {
            if (!request.isComplete)
            {
                return;
            }
        }

        // Mission Completed
        SaveFile.GetInstance().CoreConfig.missions[activeMission.id] = MissionStatusEnum.Completed;
        foreach (ItemRequest itemRequest in activeMission.itemRequests)
        {
            SaveFile.GetInstance().CoreConfig.itemInventory.Decrement(itemRequest.itemName, itemRequest.amount);
        }
        SaveFile.GetInstance().CoreConfig.player.RewardPlayer(activeMission.reward);
        Debug.Log("User rewarded: " + activeMission.reward + " gold");
        Debug.Log($"Mission ID: {activeMission.id} has been completed");
        activeMission = null;
        GameObject.Find("ItemAmountText").GetComponent <Text>().text = SaveFile.GetInstance().CoreConfig.itemInventory.GetItemAmount(SaveFile.GetInstance().CoreConfig.currentItem).ToString();
        MissionController.Instance.WriteTheLetter("Thanks grandma! \n I knew I could count on you! \n I'll be back soon with more <3");
        MissionController.Instance.BeginCountdownForNextMission();
    }
Esempio n. 4
0
    private void InstantiateGameItems(List <IItemObservable> items)
    {
        Debug.Log("Amount of items: " + items.Count + " Before load");
        foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()
                 .Where(mytype => mytype.GetInterfaces().Contains(typeof(IItemObservable))))
        {
            if (type.GetTypeInfo().IsAbstract || type.GetTypeInfo().IsInterface)
            {
                continue;
            }

            bool isGameItemAlreadyCreated = false;

            // Check if game item is already created
            foreach (KeyValuePair <IItemObservable, int> pair in SaveFile.LoadInstance().CoreConfig.itemInventory.GetInventory())
            {
                if (pair.Key.GetName() == type.Name)
                {
                    isGameItemAlreadyCreated = true;
                }
            }
            if (!isGameItemAlreadyCreated)
            {
                Debug.Log("Creating object: " + type.Name);
                IItemObservable item = Activator.CreateInstance(type) as IItemObservable;
                items.Add(item);
                SaveFile.LoadInstance().CoreConfig.itemInventory.GetInventory().Add(item, 0);
            }
        }
        SaveFile.LoadInstance().CoreConfig.items = items;

        if (SaveFile.LoadInstance().CoreConfig.currentItem == null)
        {
            SaveFile.LoadInstance().CoreConfig.currentItem = SaveFile.LoadInstance().CoreConfig.items[0];
        }
    }
Esempio n. 5
0
 public void AddObservable(IItemObservable observable)
 {
     observables.Add(observable);
 }
Esempio n. 6
0
    public void UpdateItemProgressNumber(IItemObservable item)
    {
        Text itemProgressNumber = GameObject.Find("ItemAmountText").GetComponent <Text>();

        itemProgressNumber.text = inventory[item].ToString();
    }
Esempio n. 7
0
 public int GetItemAmount(IItemObservable key)
 {
     return(inventory[key]);
 }