/// <summary> /// 将物品添加于管理器 用于编辑器窗口 /// </summary> /// <param name="data">物品</param> public void Add2GoodMenu(RookiesGoods_GoodsBase data) { if (PrototypeGoodsMenu.ContainsKey(data.Id)) { throw new ArgumentException(string.Format("id {0}重复添加", data.Id)); } PrototypeGoodsMenu.Add(data.Id, data); }
/// <summary> /// 移除物品 用于编辑器窗口 /// </summary> /// <param name="id">目标id</param> public void RemoveGoods(int id) { if (PrototypeGoodsMenu.ContainsKey(id)) { PrototypeGoodsMenu.Remove(id); Save2JSON(); } }
/// <summary> /// 获得物品的引用,或者是深拷贝 /// 当物品不需要被特殊识别的时候,返回引用,例如食物,在游戏中一种食物的效果都一样,只是每个角色存储了多少而已 /// 否则返回深拷贝,例如耐久度的武器,每个武器的耐久度都不同,需要保证武器的独一无二 /// </summary> /// <param name="id">物品id</param> /// <param name="fromEditor">是否从编辑器窗口调用</param> /// <returns>返回引用、深拷贝</returns> public RookiesGoods_GoodsBase GetGoods(int id, bool fromEditor = false) { RookiesGoods_GoodsBase goods; PrototypeGoodsMenu.TryGetValue(id, out goods); if (goods != null && goods.Type.Equals("RookiesGoods_SuitBase") && (!fromEditor)) { if (((RookiesGoods_SuitBase)goods).Durability != 0) { return(DeepCopy(goods)); } } return(goods); }
public bool ContainsGoodsKey(int id) { return(PrototypeGoodsMenu.ContainsKey(id)); }