P_Package[] sortPackage(P_Package[] srcPackages)
    {
        P_Package[] resultPackage = new P_Package[srcPackages.Length];

        for (int k = 0; k < resultPackage.Length; k++)
        {
            int maxValue = 0;
            int maxIndex = 0;
            for (int i = 0; i < srcPackages.Length; i++)
            {
                if (srcPackages[i] != null)
                {
                    if (srcPackages[i].showWeight >= maxValue)
                    {
                        maxValue = srcPackages[i].showWeight;
                        maxIndex = i;
                    }
                }
            }

            resultPackage[k]      = srcPackages[maxIndex];
            srcPackages[maxIndex] = null;
        }

        return(resultPackage);
    }
    public void setData(P_Package data1)
    {
        string[] txts  = data1.desc.Split('/');
        string[] txts2 = null;
        string[] temp  = null;


        switch (data1.category)
        {
        case SpecialPackage.RUNE:

            //0 역전! 패자부활 소환룬 특별강화 패키지!/
            //1 용사님의 재도전을 응원하며!/
            //2 소환팩/

            //3 프리미엄/
            //4 소환룬 5개/

            //5 +/
            //6 루비 150개/
            //7 30,000 골드/
            //8 BONUS!!/
            //9 해당 팝업을 통해서 월 1회 구매가 가능한 상품입니다.

            lbRibonTitle.text = txts[0];
            lbTitle.text      = txts[1];

            lbBottomLine.text = txts[txts.Length - 1];

            slot1.setData(data1, hide);

            slot1.lbItemTitle.text = txts[2];

            if (slot1.isImageType == false)
            {
                slot1.lbRubyCount.text   = txts[3] + "\n" + txts[4];
                slot1.lbDescription.text = Util.stringJoin("\n", txts, 5, txts.Length - 3);

                _v   = slot1.lbDescription.transform.localPosition;
                _v.y = slot1.lbRubyCount.transform.localPosition.y - slot1.lbRubyCount.printedSize.y * slot1.lbRubyCount.transform.localScale.y;
                slot1.lbDescription.transform.localPosition = _v;
            }

            slot1.spItemPriceIcon.enabled = (txts[txts.Length - 2].Contains("BONUS"));

            if (slot1.spItemPriceIcon.enabled)
            {
                _v   = slot1.spItemPriceIcon.transform.localPosition;
                _v.y = slot1.lbDescription.transform.localPosition.y - slot1.lbDescription.printedSize.y - 5f;
                slot1.spItemPriceIcon.transform.localPosition = _v;
            }

            break;
        }

        show();

        if (slot1 != null)
        {
            slot1.loadImage();
        }
    }
    public bool check()
    {
        if (GameDataManager.instance.packages == null)
        {
            return(false);
        }

        if (GameManager.me.introStep != Scene.IntroStep.PlayGame)
        {
            return(false);
        }

        if (GameDataManager.instance.serviceMode == GameDataManager.ServiceMode.IOS_SUMMIT || GameManager.me.isGuest)
        {
            return(false);
        }

        starterPack1 = null;
        starterPack2 = null;
        specialPack1 = null;
        specialPack2 = null;
        specialPacks = null;

        int numOfSpecialPack = 0;

        foreach (KeyValuePair <string, P_Package> kv in GameDataManager.instance.packages)
        {
            if (kv.Value.category == SpecialPackage.SPECIAL)
            {
                numOfSpecialPack++;
            }
        }

        // for test
        //numOfSpecialPack = 3;
        //

        specialPacks = new P_Package[numOfSpecialPack];

        runePack = null;

        int specialPackCnt = 0;

        //Debug.Log("  num of packages ="+GameDataManager.instance.packages.Count);

        foreach (KeyValuePair <string, P_Package> kv in GameDataManager.instance.packages)
        {
            switch (kv.Value.category)
            {
            case SpecialPackage.STARTER:
                if (starterPack1 == null)
                {
                    starterPack1 = kv.Value;
                }
                else
                {
                    starterPack2 = kv.Value;
                }
                break;

            case SpecialPackage.SPECIAL:
                if (numOfSpecialPack == 2)
                {
                    if (specialPack1 == null)
                    {
                        specialPack1 = kv.Value;
                    }
                    else
                    {
                        specialPack2 = kv.Value;
                    }
                }
                else
                {
                    specialPacks[specialPackCnt] = kv.Value;
                    specialPackCnt++;
                    // for test
                    //specialPacks[2] = kv.Value;
                    //specialPacks[3] = kv.Value;
                }

                break;

            case SpecialPackage.RUNE:
                runePack = kv.Value;
                break;
            }
        }

        if (numOfSpecialPack == 4 && canOpen(specialPacks))
        {
            return(true);
        }
        else if (canOpen(runePack, null))
        {
            return(true);
        }

        return(false);
    }
    public bool canOpen(P_Package[] data)
    {
        if (TutorialManager.instance.isTutorialMode || TutorialManager.instance.isReadyTutorialMode)
        {
            return(false);
        }

        if (data == null)
        {
            return(false);
        }
        if (data[0] == null)
        {
            return(false);
        }

        P_Package data1 = data[0];

        setMode();

        bool stop = true;

        for (int i = data1.showViews.Length - 1; i >= 0; --i)
        {
            switch (data1.showViews[i])
            {
            case "WORLD":
                if (_mode == Mode.World)
                {
                    stop = false;
                }
                break;

            case "LOBBY":
                if (_mode == Mode.Lobby)
                {
                    stop = false;
                }
                break;

            case "SHOP":
                if (_mode == Mode.Shop)
                {
                    stop = false;
                }
                break;
            }
        }

        if (stop)
        {
            return(false);
        }

        int day = System.DateTime.Now.Day;

        string id = data1.category;

        bool checkDate = true;


        switch (data1.category)
        {
        //case SpecialPackage.STARTER:
        case SpecialPackage.SPECIAL:

            if (data[1] == null)
            {
                return(false);
            }

            id += _mode.ToString();

                        #if UNITY_EDITOR
            // for test
            //checkDate = false;
                        #endif
            if (checkDate && PlayerPrefs.GetInt(id, -1) == day)
            {
                return(false);
            }

            data = sortPackage(data);
            GameManager.me.uiManager.popupSpecialPack.setData(data);
            break;

            /*
             * case SpecialPackage.RUNE:
             *
             #if UNITY_EDITOR
             * //			checkDate = false;
             #endif
             * id += data.subcategory;
             *
             * if(checkDate && PlayerPrefs.GetInt(id, -1) == day) return false;
             *
             * if(canCheckRunePack == false) return false;
             *
             * canCheckRunePack = false;
             *
             * GameManager.me.uiManager.popupSpecialSinglePack.setData(data);
             * break;
             */
        }

        PlayerPrefs.SetInt(id, day);

        return(true);
    }
예제 #5
0
    public void setData(P_Package pData, Callback.Default closeCallback)
    {
        _data = pData;

        _closeCallback = closeCallback;

        if (lbPrice != null)
        {
                #if UNITY_ANDROID
            lbPrice.text = Util.GetCommaScore(Mathf.RoundToInt(_data.price));
                #else
            lbPrice.text = string.Format("{0:F2}", _data.price);
                #endif
        }

        if (string.IsNullOrEmpty(_data.imageUrl) == false)
        {
            uiContainer.gameObject.SetActive(false);
            photo.gameObject.SetActive(true);
            return;
        }

        photo.gameObject.SetActive(false);
        uiContainer.gameObject.SetActive(true);

        switch (_data.category)
        {
        case SpecialPackage.RUNE:

            if (_data.subcategory != null)
            {
                switch (_data.subcategory)
                {
                case SpecialPackage.UNIT:
                    spItemIcon.spriteName = "img_package_animal";
                    break;

                case SpecialPackage.SKILL:
                    spItemIcon.spriteName = "img_package_skill";
                    break;

                case SpecialPackage.EQUIP:
                    spItemIcon.spriteName = "img_package_hero";
                    break;
                }
            }

            break;

        case SpecialPackage.SPECIAL:

            if (spItemIcon != null)
            {
                switch (_data.showWeight)
                {
                case 0:
                    spItemIcon.spriteName = "img_package_special2";
                    break;

                case 1:
                    spItemIcon.spriteName = "img_package_special1";
                    break;
                }
            }

            break;

        case SpecialPackage.STARTER:

            switch (_data.showWeight)
            {
            case 0:
                spItemIcon.spriteName = "img_package_start2";
                break;

            case 1:
                spItemIcon.spriteName = "img_package_start1";
                break;
            }

            break;
        }
    }