Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using System;
- public class Inventory : MonoBehaviour {
- public static Inventory Instance;
- public int maxItems;
- public List<BaseItem> items;
- public List<Item> itemsToAddOnStart;
- public int ItemsCount
- {
- get
- {
- return items.Count;
- }
- }
- private void Start()
- {
- Instance = this;
- for (int i = 0; i < itemsToAddOnStart.Count; i++)
- {
- itemsToAddOnStart[i].AddOnStart();
- }
- }
- public void AddItem(BaseItem item)
- {
- if (IsContains(item))
- {
- AddToItem(item);
- }
- else if(items.Count < maxItems)
- {
- items.Add(item);
- }
- if(InventoryWindow.Instance != null)
- InventoryWindow.Instance.Init();
- }
- public bool IsContains(BaseItem item)
- {
- foreach (BaseItem i in items)
- {
- if (i.type == item.type && i.itemName == item.itemName)
- {
- return true;
- }
- }
- return false;
- }
- public void RemoveItem(BaseItem item)
- {
- int ind = items.IndexOf(item);
- if (items[ind].count > 1)
- {
- items[ind].count -= 1;
- }
- else
- {
- items.Remove(item);
- }
- if(InventoryWindow.Instance != null)
- InventoryWindow.Instance.Init();
- }
- public void RemoveItem(BaseItem item, int count)
- {
- int ind = items.IndexOf(item);
- if (items[ind].count > count)
- {
- items[ind].count -= count;
- }
- else if (items[ind].count == count)
- {
- items.Remove(item);
- }
- if(InventoryWindow.Instance != null)
- InventoryWindow.Instance.Init();
- }
- public BaseItem GetItemAtIndex(int index)
- {
- return items[index];
- }
- private void AddToItem(BaseItem item)
- {
- foreach (BaseItem i in items)
- {
- if (i.type == item.type && i.itemName == item.itemName)
- {
- i.count += item.count;
- }
- }
- if (InventoryWindow.Instance != null)
- InventoryWindow.Instance.Init();
- }
- public BaseItem GetItemWithName(string itemName)
- {
- BaseItem item = items.Find(i => i.itemName == itemName);
- return item;
- }
- public void UseItemWithName(string itemName, int count, Action<bool,int> onSuccess)
- {
- BaseItem item = GetItemWithName(itemName);
- if (item != null)
- {
- if (item.count >= count)
- {
- RemoveItem(item, count);
- onSuccess(true, count);
- }
- else
- {
- RemoveItem(item, item.count);
- onSuccess(true, item.count);
- }
- }
- onSuccess(false,0);
- }
- }
- public enum ItemType
- {
- keys,
- weapons,
- medics,
- books,
- ammo,
- others
- }
Add Comment
Please, Sign In to add comment