Example #1
0
 /// <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);
 }
Example #2
0
 /// <summary>
 /// 移除物品 用于编辑器窗口
 /// </summary>
 /// <param name="id">目标id</param>
 public void RemoveGoods(int id)
 {
     if (PrototypeGoodsMenu.ContainsKey(id))
     {
         PrototypeGoodsMenu.Remove(id);
         Save2JSON();
     }
 }
Example #3
0
    /// <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);
    }
Example #4
0
 public bool ContainsGoodsKey(int id)
 {
     return(PrototypeGoodsMenu.ContainsKey(id));
 }