예제 #1
0
        private void Awake()
        {
            SharedModel = new Model.ShopItems();
            SharedModel.State
            .Subscribe(_ => UpdateView())
            .AddTo(gameObject);
            SharedModel.AgentProducts
            .Subscribe(_ => UpdateView())
            .AddTo(gameObject);
            SharedModel.ItemSubTypeProducts
            .Subscribe(_ => UpdateView())
            .AddTo(gameObject);

            itemSubTypeFilter.AddOptions(new[]
            {
                ItemSubTypeFilter.All,
                ItemSubTypeFilter.Weapon,
                ItemSubTypeFilter.Armor,
                ItemSubTypeFilter.Belt,
                ItemSubTypeFilter.Necklace,
                ItemSubTypeFilter.Ring,
                ItemSubTypeFilter.Food,
                ItemSubTypeFilter.FullCostume,
                ItemSubTypeFilter.HairCostume,
                ItemSubTypeFilter.EarCostume,
                ItemSubTypeFilter.EyeCostume,
                ItemSubTypeFilter.TailCostume,
                ItemSubTypeFilter.Title,
            }
                                         .Select(type => type == ItemSubTypeFilter.All
                    ? L10nManager.Localize("ALL")
                    : ((ItemSubType)Enum.Parse(typeof(ItemSubType), type.ToString()))
                                                 .GetLocalizedString())
                                         .ToList());
            itemSubTypeFilter.onValueChanged.AsObservable()
            .Select(index =>
            {
                try
                {
                    return((ItemSubTypeFilter)index);
                }
                catch
                {
                    return(ItemSubTypeFilter.All);
                }
            })
            .Subscribe(filter =>
            {
                SharedModel.itemSubTypeFilter = filter;
                OnItemSubTypeFilterChanged(SharedModel.itemSubTypeFilter);
            })
            .AddTo(gameObject);

            sortFilter.AddOptions(new[]
            {
                SortFilter.Class,
                SortFilter.CP,
                SortFilter.Price,
            }
                                  .Select(type => L10nManager.Localize($"UI_{type.ToString().ToUpper()}"))
                                  .ToList());
            sortFilter.onValueChanged.AsObservable()
            .Select(index =>
            {
                try
                {
                    return((SortFilter)index);
                }
                catch
                {
                    return(SortFilter.Class);
                }
            })
            .Subscribe(filter =>
            {
                SharedModel.sortFilter = filter;
                OnSortFilterChanged(SharedModel.sortFilter);
            })
            .AddTo(gameObject);

            previousPageButton.OnClickAsObservable()
            .Subscribe(OnPreviousPageButtonClick)
            .AddTo(gameObject);
            nextPageButton.OnClickAsObservable()
            .Subscribe(OnNextPageButtonClick)
            .AddTo(gameObject);

            refreshButtonTouchHandler.OnClick.Subscribe(_ =>
            {
                AudioController.PlayClick();
                // NOTE: 아래 코드를 실행해도 아무런 변화가 없습니다.
                // 새로고침을 새로 정의한 후에 수정합니다.
                // SharedModel.ResetItemSubTypeProducts();
            }).AddTo(gameObject);
        }
예제 #2
0
 private void OnDestroy()
 {
     SharedModel.Dispose();
     SharedModel = null;
 }