示例#1
0
        private void OnSelectUseItemCallBack(ItemlistModel model)
        {
            bool activeState = this.CurrentState == UIItemListManager.State.ItemSelect || this.CurrentState == UIItemListManager.State.UseCheck;

            if (activeState)
            {
                if (this.CurrentState == UIItemListManager.State.ItemSelect)
                {
                    this.mItemList.SetKeyController(null);
                    this.PushState(UIItemListManager.State.UseCheck);
                }
                this.mItemListChildDetai.SetKeyController(null);
                bool flag = this.IsExchangeItemlistModel(model);
                if (flag)
                {
                    int mstId = model.MstId;
                    if (mstId == 57)
                    {
                        this.mItemExchangeMedalConfirm.Initialize(model, this.mItemListManager);
                        this.mItemExchangeMedalConfirm.SetKeyController(this.mKeyController);
                        this.mItemExchangeMedalConfirm.SetOnExchangeItemSelectedCallBack(delegate(ItemExchangeKinds selectedItemExchangeKind)
                        {
                            this.mItemExchangeMedalConfirm.SetKeyController(null);
                            ItemlistManager.Result result = this.mItemListManager.UseItem(model.MstId, false, selectedItemExchangeKind);
                            if (result.IsLimitOver())
                            {
                                this.mItemExchangeMedalConfirm.Close(null);
                                this.mItemUseLimitOverConfirm.SetOnNegativeCallBack(delegate
                                {
                                    bool flag2 = this.CurrentState == UIItemListManager.State.ExchangeSelect;
                                    if (flag2)
                                    {
                                        this.PopState();
                                        this.mItemUseLimitOverConfirm.Close(null);
                                        this.mItemUseLimitOverConfirm.SetKeyController(null);
                                        this.ResumeState();
                                    }
                                });
                                this.mItemUseLimitOverConfirm.SetOnPositiveCallBack(delegate
                                {
                                    bool flag2 = this.CurrentState == UIItemListManager.State.ExchangeSelect;
                                    if (flag2)
                                    {
                                        this.PopState();
                                        this.mItemUseLimitOverConfirm.Close(null);
                                        this.mItemUseLimitOverConfirm.SetKeyController(null);
                                        ItemlistManager.Result result2 = this.mItemListManager.UseItem(model.MstId, true, selectedItemExchangeKind);
                                        this.StartCoroutine(this.OnGetRewards(model, result2.Rewards, delegate
                                        {
                                            this.mItemList.Refresh(this.mItemListManager.HaveItems.ToArray());
                                            this.ResumeState();
                                        }));
                                    }
                                });
                                this.mItemUseLimitOverConfirm.Initialize();
                                this.mItemUseLimitOverConfirm.SetKeyController(this.mKeyController);
                                this.mItemUseLimitOverConfirm.Show(null);
                                this.ReplaceState(UIItemListManager.State.ExchangeSelect);
                            }
                            else
                            {
                                this.mItemExchangeMedalConfirm.Close(null);
                                this.ReplaceState(UIItemListManager.State.GetReward);
                                this.StartCoroutine(this.OnGetRewards(model, result.Rewards, delegate
                                {
                                    this.mItemList.Refresh(this.mItemListManager.HaveItems.ToArray());
                                    this.PopState();
                                    this.ResumeState();
                                }));
                            }
                        });
                        this.mItemExchangeMedalConfirm.SetOnCancelCallBack(delegate
                        {
                            this.mItemExchangeMedalConfirm.Close(null);
                            this.mItemExchangeMedalConfirm.SetKeyController(null);
                            this.PopState();
                            this.ResumeState();
                        });
                        this.mItemExchangeMedalConfirm.Show(null);
                        this.ReplaceState(UIItemListManager.State.ExchangeSelect);
                    }
                }
                else
                {
                    this.mItemUseConfirm.SetOnNegativeCallBack(delegate
                    {
                        bool flag2 = this.CurrentState == UIItemListManager.State.ExchangeSelect;
                        if (activeState)
                        {
                            this.PopState();
                            this.mItemUseConfirm.SetKeyController(null);
                            this.mItemUseConfirm.Close(null);
                            this.ResumeState();
                        }
                    });
                    this.mItemUseConfirm.SetOnPositiveCallBack(delegate
                    {
                        bool flag2 = this.CurrentState == UIItemListManager.State.ExchangeSelect;
                        if (activeState)
                        {
                            this.mItemUseConfirm.SetKeyController(null);
                            this.mItemUseConfirm.Close(null);
                            ItemlistManager.Result result = this.mItemListManager.UseItem(model.MstId, false, ItemExchangeKinds.NONE);
                            if (result == null)
                            {
                                if (model.MstId == 53)
                                {
                                    CommonPopupDialog.Instance.StartPopup("これ以上拡張できません");
                                }
                                this.PopState();
                                this.ResumeState();
                            }
                            else if (result.IsLimitOver())
                            {
                                this.ReplaceState(UIItemListManager.State.ExchangeSelect);
                                this.mItemUseLimitOverConfirm.SetOnNegativeCallBack(delegate
                                {
                                    this.PopState();
                                    this.mItemUseLimitOverConfirm.SetKeyController(null);
                                    this.mItemUseLimitOverConfirm.Close(null);
                                    this.ResumeState();
                                });
                                this.mItemUseLimitOverConfirm.SetOnPositiveCallBack(delegate
                                {
                                    this.mItemUseLimitOverConfirm.SetKeyController(null);
                                    this.mItemUseLimitOverConfirm.Close(null);
                                    ItemlistManager.Result result2 = this.mItemListManager.UseItem(model.MstId, true, ItemExchangeKinds.NONE);
                                    this.StartCoroutine(this.OnGetRewards(model, result2.Rewards, delegate
                                    {
                                        this.mItemList.Refresh(this.mItemListManager.HaveItems.ToArray());
                                        this.PopState();
                                        this.ResumeState();
                                    }));
                                });
                                this.mItemUseLimitOverConfirm.Initialize();
                                this.mItemUseLimitOverConfirm.SetKeyController(this.mKeyController);
                                this.mItemUseLimitOverConfirm.Show(null);
                            }
                            else
                            {
                                this.ReplaceState(UIItemListManager.State.GetReward);
                                IReward[] rewards = result.Rewards;
                                this.StartCoroutine(this.OnGetRewards(model, rewards, delegate
                                {
                                    this.mItemList.Refresh(this.mItemListManager.HaveItems.ToArray());
                                    this.PopState();
                                    this.ResumeState();
                                }));
                            }
                        }
                    });
                    this.mItemListChildDetai.SetKeyController(null);
                    this.ReplaceState(UIItemListManager.State.ExchangeSelect);
                    this.mItemUseConfirm.Initialize();
                    this.mItemUseConfirm.Show(null);
                    this.mItemUseConfirm.SetKeyController(this.mKeyController);
                }
            }
        }
        private void OnSelectUseItemCallBack(ItemlistModel model)
        {
            bool activeState = CurrentState == State.ItemSelect || CurrentState == State.UseCheck;

            if (!activeState)
            {
                return;
            }
            if (CurrentState == State.ItemSelect)
            {
                mItemList.SetKeyController(null);
                PushState(State.UseCheck);
            }
            mItemListChildDetai.SetKeyController(null);
            if (IsExchangeItemlistModel(model))
            {
                int mstId = model.MstId;
                if (mstId == 57)
                {
                    mItemExchangeMedalConfirm.Initialize(model, mItemListManager);
                    mItemExchangeMedalConfirm.SetKeyController(mKeyController);
                    mItemExchangeMedalConfirm.SetOnExchangeItemSelectedCallBack(delegate(ItemExchangeKinds selectedItemExchangeKind)
                    {
                        mItemExchangeMedalConfirm.SetKeyController(null);
                        ItemlistManager.Result result3 = mItemListManager.UseItem(model.MstId, is_force: false, selectedItemExchangeKind);
                        if (result3.IsLimitOver())
                        {
                            mItemExchangeMedalConfirm.Close(null);
                            mItemUseLimitOverConfirm.SetOnNegativeCallBack(delegate
                            {
                                if (CurrentState == State.ExchangeSelect)
                                {
                                    PopState();
                                    mItemUseLimitOverConfirm.Close(null);
                                    mItemUseLimitOverConfirm.SetKeyController(null);
                                    ResumeState();
                                }
                            });
                            mItemUseLimitOverConfirm.SetOnPositiveCallBack(delegate
                            {
                                if (CurrentState == State.ExchangeSelect)
                                {
                                    PopState();
                                    mItemUseLimitOverConfirm.Close(null);
                                    mItemUseLimitOverConfirm.SetKeyController(null);
                                    ItemlistManager.Result result4 = mItemListManager.UseItem(model.MstId, is_force: true, selectedItemExchangeKind);
                                    StartCoroutine(OnGetRewards(model, result4.Rewards, delegate
                                    {
                                        mItemList.Refresh(mItemListManager.HaveItems.ToArray());
                                        ResumeState();
                                    }));
                                }
                            });
                            mItemUseLimitOverConfirm.Initialize();
                            mItemUseLimitOverConfirm.SetKeyController(mKeyController);
                            mItemUseLimitOverConfirm.Show(null);
                            ReplaceState(State.ExchangeSelect);
                        }
                        else
                        {
                            mItemExchangeMedalConfirm.Close(null);
                            ReplaceState(State.GetReward);
                            StartCoroutine(OnGetRewards(model, result3.Rewards, delegate
                            {
                                mItemList.Refresh(mItemListManager.HaveItems.ToArray());
                                PopState();
                                ResumeState();
                            }));
                        }
                    });
                    mItemExchangeMedalConfirm.SetOnCancelCallBack(delegate
                    {
                        mItemExchangeMedalConfirm.Close(null);
                        mItemExchangeMedalConfirm.SetKeyController(null);
                        PopState();
                        ResumeState();
                    });
                    mItemExchangeMedalConfirm.Show(null);
                    ReplaceState(State.ExchangeSelect);
                }
            }
            else
            {
                mItemUseConfirm.SetOnNegativeCallBack(delegate
                {
                    bool flag = CurrentState == State.ExchangeSelect;
                    if (activeState)
                    {
                        PopState();
                        mItemUseConfirm.SetKeyController(null);
                        mItemUseConfirm.Close(null);
                        ResumeState();
                    }
                });
                mItemUseConfirm.SetOnPositiveCallBack(delegate
                {
                    bool flag2 = CurrentState == State.ExchangeSelect;
                    if (activeState)
                    {
                        mItemUseConfirm.SetKeyController(null);
                        mItemUseConfirm.Close(null);
                        ItemlistManager.Result result = mItemListManager.UseItem(model.MstId, is_force: false, ItemExchangeKinds.NONE);
                        if (result == null)
                        {
                            if (model.MstId == 53)
                            {
                                CommonPopupDialog.Instance.StartPopup("これ以上拡張できません");
                            }
                            PopState();
                            ResumeState();
                        }
                        else if (result.IsLimitOver())
                        {
                            ReplaceState(State.ExchangeSelect);
                            mItemUseLimitOverConfirm.SetOnNegativeCallBack(delegate
                            {
                                PopState();
                                mItemUseLimitOverConfirm.SetKeyController(null);
                                mItemUseLimitOverConfirm.Close(null);
                                ResumeState();
                            });
                            mItemUseLimitOverConfirm.SetOnPositiveCallBack(delegate
                            {
                                mItemUseLimitOverConfirm.SetKeyController(null);
                                mItemUseLimitOverConfirm.Close(null);
                                ItemlistManager.Result result2 = mItemListManager.UseItem(model.MstId, is_force: true, ItemExchangeKinds.NONE);
                                StartCoroutine(OnGetRewards(model, result2.Rewards, delegate
                                {
                                    mItemList.Refresh(mItemListManager.HaveItems.ToArray());
                                    PopState();
                                    ResumeState();
                                }));
                            });
                            mItemUseLimitOverConfirm.Initialize();
                            mItemUseLimitOverConfirm.SetKeyController(mKeyController);
                            mItemUseLimitOverConfirm.Show(null);
                        }
                        else
                        {
                            ReplaceState(State.GetReward);
                            IReward[] rewards = result.Rewards;
                            StartCoroutine(OnGetRewards(model, rewards, delegate
                            {
                                mItemList.Refresh(mItemListManager.HaveItems.ToArray());
                                PopState();
                                ResumeState();
                            }));
                        }
                    }
                });
                mItemListChildDetai.SetKeyController(null);
                ReplaceState(State.ExchangeSelect);
                mItemUseConfirm.Initialize();
                mItemUseConfirm.Show(null);
                mItemUseConfirm.SetKeyController(mKeyController);
            }
        }