public void OnDiff(BaseModelDiff.DiffEquipCollection diff)
    {
        bool flag = false;

        if (Utility.IsExist(diff.add))
        {
            equipItemCollectionList.AddRange(diff.add);
            flag = true;
        }
        if (Utility.IsExist(diff.update))
        {
            diff.update.ForEach(delegate(EquipItemCollection collection)
            {
                EquipItemCollection equipItemCollection = _GetEquipItemCollection(collection.category);
                if (equipItemCollection != null)
                {
                    equipItemCollection.bit = collection.bit;
                }
            });
            flag = true;
        }
        if (flag && MonoBehaviourSingleton <GameSceneManager> .I.GetCurrentSceneName() != "InGameScene" && MonoBehaviourSingleton <SmithManager> .IsValid())
        {
            int badgeTotalNum = MonoBehaviourSingleton <SmithManager> .I.GetBadgeTotalNum();

            MonoBehaviourSingleton <SmithManager> .I.CreateBadgeData(true);

            if (MonoBehaviourSingleton <SmithManager> .I.GetBadgeTotalNum() != badgeTotalNum)
            {
                MonoBehaviourSingleton <GameSceneManager> .I.SetNotify(GameSection.NOTIFY_FLAG.UPDATE_SMITH_BADGE);
            }
        }
    }
    private void _InitEquipItemCollection(EquipItemCollectionList list)
    {
        equipItemCollectionList.Clear();
        int i = 0;

        for (int count = list.categories.Count; i < count; i++)
        {
            EquipItemCollection equipItemCollection = new EquipItemCollection();
            equipItemCollection.category = list.categories[i];
            equipItemCollection.bit      = list.bits[i];
            equipItemCollectionList.Add(equipItemCollection);
        }
    }