/// <summary> /// Add item by it's config id. /// </summary> /// <param name="id">the config id of item.</param> /// <returns></returns> private bool AddItem(InteractItemType kind, int id, int count) { int index = GetAvailableIndex(id, count); if (index == InvalidIndex) { return(false); } AddItemAtIndex(kind, id, index, count); return(true); }
/// <summary> /// Add item to index, check the item must be the same type /// if there are already an item exist there. /// </summary> /// <param name="id"></param> /// <param name="index"></param> /// <param name="count"></param> /// <returns></returns> public int AddItemAtIndex(InteractItemType kind, int id, int index, int count) { if (!IsValidAtIndex(id, index)) { return(0); } int countLeft = 0; InteractItem bbi = GetItemByIndex(index); if (!System.Object.ReferenceEquals(null, bbi)) { bbi.Count += count; if (bbi.Count > bbi.MaxCount) { countLeft = bbi.Count - bbi.MaxCount; bbi.Count = bbi.MaxCount; } } else { bbi = new InteractItem(); bbi.CfgID = id; bbi.Index = index; ItemConfig ic = ConfigDataMgr.Instance.ItemCfgLoader.GetDataByID(id); bbi.IconID = ic.IconID; bbi.Count += count; bbi.Kind = InteractItemType.Item; Items.Add(bbi); } IndexRecorder[index] = 1; if (!System.Object.ReferenceEquals(null, OnAddItem)) { OnAddItem(index); } return(countLeft); }
/// <summary> /// /// </summary> /// <param name="id">now it's the config id of the item.</param> public bool Add(InteractItemType kind, int id, int count) { return(AddItem(kind, id, count)); }
public int AddItemAtIndex(InteractItemType kind, int id, int index, int count) { if (!IsValidAtIndex(id, index, count)) { return(0); } InteractItem bbi = GetItemByIndex(index); int left = 0; if (kind == InteractItemType.Item) // item { if (!System.Object.ReferenceEquals(null, bbi)) { bbi.Count += count; if (bbi.Count > bbi.MaxCount) { left = bbi.Count - bbi.MaxCount; bbi.Count = bbi.MaxCount; } } else { bbi = new InteractItem(); bbi.CfgID = id; bbi.Index = index; bbi.Kind = kind; ItemConfig ic = ConfigDataMgr.Instance.ItemCfgLoader.GetDataByID(id); bbi.IconID = ic.IconID; bbi.Count += count; Items.Add(bbi); } } else if (kind == InteractItemType.Skill) // skill { if (!System.Object.ReferenceEquals(null, bbi)) { // handle cool down. bbi.Count = 1; } else { bbi = new InteractItem(); bbi.CfgID = id; bbi.Index = index; bbi.Kind = kind; //ItemConfig ic = // ConfigDataMgr.Instance.ItemCfgLoader.GetDataByID(id); SkillConfig sc = ConfigDataMgr.Instance.SkillCfgLoader.GetDataByID(id); bbi.IconID = sc.IconID; bbi.Count = 1; Items.Add(bbi); } } IndexRecorder[index] = 1; if (!System.Object.ReferenceEquals(null, OnAddItem)) { OnAddItem(index); } return(left); }
public List <InteractItem_Base> GetItemList(InteractItemType type) { return(AllInteractItems[(int)type]); }
public Mission_GetResource(InteractItemType resourceType, InteractItemType storage) { ResourceType = resourceType; Storage = storage; AchivementCounts = 2; }
public Mission_UseItem(InteractItemType itemType) { ItemType = itemType; }
/// <summary> /// /// </summary> /// <param name="id">now it's the config id of the item.</param> public void Add(InteractItemType kind, int id, int count) { AddItem(kind, id, count); }