public void Increment(IItemObservable item) { inventory[item]++; Text itemProgressNumber = GameObject.Find("ItemAmountText").GetComponent <Text>(); itemProgressNumber.text = inventory[item].ToString(); MissionObserver.GetInstance().IsComplete(item); }
// 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(); } }
// 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(); }
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]; } }
public void AddObservable(IItemObservable observable) { observables.Add(observable); }
public void UpdateItemProgressNumber(IItemObservable item) { Text itemProgressNumber = GameObject.Find("ItemAmountText").GetComponent <Text>(); itemProgressNumber.text = inventory[item].ToString(); }
public int GetItemAmount(IItemObservable key) { return(inventory[key]); }