예제 #1
0
    /// <summary> 인벤토리 영웅 정렬 함수 </summary>
    public void SortHeroList(HeroSortingType sortingType = HeroSortingType.Auto, HeroSlotState state = HeroSlotState.Inventory, string _placeId = null)
    {
        if (coroutineSort != null)
        {
            return;
        }

        UIHeroInventory.Instance.currentSortType = sortingType;
        currentState  = state;
        placeID       = UIDeployHeroInfo.Instance.currentPlaceID;
        coroutineSort = StartCoroutine(SortHeroListA(sortingType, state));
    }
예제 #2
0
    IEnumerator SortHeroListA(HeroSortingType sortingType = HeroSortingType.Auto, HeroSlotState state = HeroSlotState.Inventory)
    {
        heroSortType = sortingType;

        switch (heroSortType)
        {
        case HeroSortingType.AcquiredTime:
            UIHeroInventory.heroSlotContainerList.Sort(SortDelegateAcquiredTime);
            break;

        case HeroSortingType.AcquiredTimeDesc:
            UIHeroInventory.heroSlotContainerList.Sort(SortDelegatAcquiredTimeDesc);
            break;

        case HeroSortingType.Name:
            UIHeroInventory.heroSlotContainerList.Sort(SortDelegateName);
            break;

        case HeroSortingType.NameDesc:
            UIHeroInventory.heroSlotContainerList.Sort(SortDelegateNameDesc);
            break;

        case HeroSortingType.Grade:
            UIHeroInventory.heroSlotContainerList.Sort(SortDelegateGrade);
            break;

        case HeroSortingType.GradeDesc:
            UIHeroInventory.heroSlotContainerList.Sort(SortDelegateGradeDesc);
            break;

        default:
            UIHeroInventory.heroSlotContainerList.Sort(SortDelegateAuto);
            break;
        }


        for (int i = 0; i < heroContainerList.Count; i++)
        {
            heroContainerList[i].transform.SetSiblingIndex(i);
        }

        //오브젝트 정렬 위해 한 프레임 기다려야 함
        yield return(null);

        if (onSort != null)
        {
            onSort();
        }

        coroutineSort = null;
    }
예제 #3
0
파일: UIHeroSlot.cs 프로젝트: TimonYoon/Dev
    public void SlotDataInit(string _id, HeroSlotState _state)
    {
        id = _id;

        state = _state;

        //heroData.onChangedValue += OnChangedHeroParam;

        InitUI();

        if (newChecker != null)
        {
            newChecker.SetActive(!heroData.isChecked);
        }
    }
예제 #4
0
    IEnumerator ShowA(InventoryTabType tab, HeroSlotState state)
    {
        //인벤토리 열릴시 NewCheck해제
        onCheckNewHeroEarned();

        SizeControl();

        //canvas.enabled = false;
        canvas.gameObject.SetActive(true);

        if (state == HeroSlotState.Battle)
        {
            objTitle.SetActive(false);

            //.isOn = true;
            scrollBattleHero.GetComponent <CanvasRenderer>().SetAlpha(0f);
            heroTypeButtonPanel.SetActive(false);
        }
        else if (state == HeroSlotState.Territory)
        {
            objTitle.SetActive(false);

            //toggleTown.Select();
            heroTypeButtonPanel.SetActive(false);
            objListRoot.GetComponent <RectTransform>().sizeDelta = originalListSize;
        }
        else if (state == HeroSlotState.Training)
        {
            objTitle.SetActive(false);
            heroTypeButtonPanel.SetActive(true);
        }
        else
        {
            objTitle.SetActive(true);
            heroTypeButtonPanel.SetActive(true);
            objListRoot.GetComponent <RectTransform>().sizeDelta = originalListSize;
        }

        //if(state != HeroSlotState.Internal)
        //    OnValueChangedToggleListType("Battle");
        //else
        //    OnValueChangedToggleListType("Town");


        for (int i = 0; i < heroSlotContainerList.Count; i++)
        {
            heroSlotContainerList[i].state = state;
        }

        scrollBattleHero.gameObject.SetActive(tab == InventoryTabType.Battle);
        scrollTownHero.gameObject.SetActive(tab == InventoryTabType.Territory);

        if (onOpened != null)
        {
            onOpened();
        }

        yield return(null);


        if (tab == InventoryTabType.Battle)
        {
            scrollBattleHero.normalizedPosition = new Vector2(scrollBattleHero.normalizedPosition.x, 1f);
        }
        else if (tab == InventoryTabType.Territory)
        {
            scrollTownHero.normalizedPosition = new Vector2(scrollTownHero.normalizedPosition.x, 1f);
        }


        if (isRegisteredSorting)
        {
            sortBehavior.SortHeroList(sortBehavior.heroSortType);
            isRegisteredSorting = false;
        }



        scrollBattleHero.GetComponent <CanvasRenderer>().SetAlpha(1f);
        scrollTownHero.GetComponent <CanvasRenderer>().SetAlpha(1f);

        canvas.enabled = true;



        coroutineShow = null;

        yield break;
    }
예제 #5
0
    void Show(InventoryTabType tab = InventoryTabType.Battle, HeroSlotState state = HeroSlotState.Inventory)
    {
        currentHeroSlotState = state;
        sortToggle.isOn      = false;
        SortingTypeButtonPanel.SetActive(sortToggle.isOn);

        //slotBG.offsetMin = new Vector2(slotBG.offsetMin.x, -0.25f);
        //slotBG.offsetMax = new Vector2(slotBG.offsetMax.x, 0);

        if (!sortToggle.gameObject.activeSelf)
        {
            sortToggle.gameObject.SetActive(true);
        }

        if (coroutineShow != null)
        {
            return;
        }

        if (state == HeroSlotState.Territory || state == HeroSlotState.Training)
        {
            sortBehavior.SortHeroList(HeroSortingType.Auto, state);
        }
        else
        {
            sortBehavior.SortHeroList(currentSortType, HeroSlotState.Inventory);
        }

        if (tab == InventoryTabType.Battle)
        {
            toggleTown.isOn   = false;
            toggleBattle.isOn = true;// Select();
            heroInventoryScrollViewContent.gameObject.SetActive(true);
            territoryheroInventoryScrollViewContent.gameObject.SetActive(false);
            UIHeroSlotContainer[] temp = heroInventoryScrollViewContent.GetComponentsInChildren <UIHeroSlotContainer>();

            if (temp.Length > 0)
            {
                notHeroText.gameObject.SetActive(false);
            }
            else
            {
                notHeroText.gameObject.SetActive(true);
            }
        }
        else
        {
            toggleTown.isOn   = true;//Select();
            toggleBattle.isOn = false;
            heroInventoryScrollViewContent.gameObject.SetActive(false);
            territoryheroInventoryScrollViewContent.gameObject.SetActive(true);
            UIHeroSlotContainer[] temp = territoryheroInventoryScrollViewContent.GetComponentsInChildren <UIHeroSlotContainer>();

            if (temp.Length > 0)
            {
                notHeroText.gameObject.SetActive(false);
            }
            else
            {
                notHeroText.gameObject.SetActive(true);
            }
        }

        coroutineShow = StartCoroutine(ShowA(tab, state));
    }
예제 #6
0
파일: UIHeroSlot.cs 프로젝트: TimonYoon/Dev
 public void ChangeState(HeroSlotState _state, IHeroSlotClickable _clickBehavior = null)
 {
     state         = _state;
     clickBehavior = _clickBehavior;
 }