예제 #1
0
    public void setBookType(Type bookType, RuneBookData bookData)
    {
        type = bookType;

        useButton = true;

        lbInforceLevel.pivot = UIWidget.Pivot.BottomRight;

        if (bookData.nowCount > 0)
        {
            check = true;
            lbInforceLevel.text = bookData.nowCount.ToString();
        }
        else if (bookData.hasCount > 0)
        {
            check = false;
        }
        else
        {
            spSlotBlackLock.enabled = true;
            check = false;
        }

        lbInforceLevel.text = "l20";
    }
    public static int equipSort(RuneBookData x, RuneBookData y)
    {
        int i = HeroPartsData.sortValueByPartsType(GameManager.info.heroBasePartsData[x.baseId].type).CompareTo(HeroPartsData.sortValueByPartsType(GameManager.info.heroBasePartsData[y.baseId].type));

        if (i == 0)
        {
            GameManager.info.heroBasePartsData[x.baseId].id.CompareTo(GameManager.info.heroBasePartsData[y.baseId].id);
        }

        return(i);
    }
    void addItemSlot(RuneBookData slotData)       //  string itemId, int rare, bool isSkill)
    {
        UIChallengeItemSlot s;

        if (_slotPool.Count > 0)
        {
            s = _slotPool.Pop();
        }
        else
        {
            s = Instantiate(itemInfoSlot) as UIChallengeItemSlot;
        }

        _slots.Add(s);

        s.gameObject.SetActive(true);

        if (_type == Type.SkillBook)
        {
            s.setData(slotData.baseId + "_20_0");
        }
        else
        {
            s.setData(slotData.baseId + "02001_0");
        }

        if (_type == Type.SkillBook)
        {
            s.setBookType(UIChallengeItemSlot.Type.BookSkillType, slotData);
        }
        else
        {
            s.setBookType(UIChallengeItemSlot.Type.BookUnitType, slotData);
        }



        s.transform.parent = tfRankTitle[slotData.rare];
#if UNITY_EDITOR
        s.name = slotData.rare + "_" + rareSlotNum[slotData.rare];
#endif

        _v.x = 74 + ((rareSlotNum[slotData.rare]) % 8) * 126;
        _v.y = -128 - ((rareSlotNum[slotData.rare]) / 8) * 128;
        _v.z = 0;

        s.transform.localPosition = _v;

        ++rareSlotNum[slotData.rare];
    }
    void addItemSlot(RuneBookData slotData)       //  string itemId, int rare, bool isSkill)
    {
        UIChallengeItemSlot s;

        if (_slotPool.Count > 0)
        {
            s = _slotPool.Pop();
        }
        else
        {
            s = Instantiate(itemInfoSlot) as UIChallengeItemSlot;
        }

        _slots.Add(s);

        s.gameObject.SetActive(true);

        string id = slotData.baseId;

        s.setData(id.Substring(0, id.LastIndexOf("_")) + id.Substring(id.Length - 2, 1) + "_" + id.Substring(id.Length - 1) + "1_20");

        s.setBookType(UIChallengeItemSlot.Type.BookEquipType, slotData);

        s.transform.parent = tfRankTitle[slotData.rare];
#if UNITY_EDITOR
        s.name = slotData.rare + "_" + rareSlotNum[slotData.rare];
#endif

        _v.x = 74 + ((rareSlotNum[slotData.rare]) % 8) * 126;
        _v.y = -128 - ((rareSlotNum[slotData.rare]) / 8) * 128;
        _v.z = 0;

        s.transform.localPosition = _v;

        ++rareSlotNum[slotData.rare];
    }
    public static int skillSort(RuneBookData x, RuneBookData y)
    {
        int i = GameManager.info.heroSkillData[x.baseId].name.CompareTo(GameManager.info.heroSkillData[y.baseId].name);

        return(i);
    }
    public static int unitSort(RuneBookData x, RuneBookData y)
    {
        int i = GameManager.info.baseUnitData[x.baseId].name.CompareTo(GameManager.info.baseUnitData[y.baseId].name);

        return(i);
    }
    public void refreshSkill()
    {
        _hasCount   = 0;
        _totalCount = 0;

        for (int i = 0; i < RareType.RUNE_BOOK_SLOT_NUM; ++i)
        {
            if (_book[i] == null)
            {
                _book[i] = new Dictionary <string, RuneBookData>();
            }
            else
            {
                _book[i].Clear();
            }
        }

        foreach (KeyValuePair <string, HeroSkillData> kv in GameManager.info.heroBaseSkillData)
        {
            if (kv.Value.isBook == false)
            {
                continue;
            }
            if (kv.Value.isMonsterSkill)
            {
                continue;
            }

            RuneBookData bs = new RuneBookData(kv.Key);
            bs.baseLevel = kv.Value.baseLevel;

            bs.rare = kv.Value.grade - 1;
            _book[bs.rare].Add(kv.Key, bs);
            ++_totalCount;
        }

        RuneBookData tempRb;

        foreach (KeyValuePair <string, GameIDData> kv in GameDataManager.instance.skillInventory)
        {
            if (_book[kv.Value.rare].ContainsKey(kv.Value.baseId) == false)
            {
                continue;
            }
            tempRb = _book[kv.Value.rare][kv.Value.baseId];
            ++tempRb.nowCount;
            _book[kv.Value.rare][kv.Value.baseId] = tempRb;
        }

        if (GameDataManager.instance.playerSkillSlots != null)
        {
            foreach (KeyValuePair <string, PlayerSkillSlot[]> kv in GameDataManager.instance.playerSkillSlots)
            {
                if (GameDataManager.instance.serverHeroData.ContainsKey(kv.Key))
                {
                    foreach (PlayerSkillSlot ps in kv.Value)
                    {
                        if (ps.isOpen == false || ps.infoData == null)
                        {
                            continue;
                        }
                        if (_book[ps.infoData.rare].ContainsKey(ps.infoData.baseId) == false)
                        {
                            continue;
                        }
                        tempRb = _book[ps.infoData.rare][ps.infoData.baseId];
                        ++tempRb.nowCount;
                        _book[ps.infoData.rare][ps.infoData.baseId] = tempRb;
                    }
                }
            }
        }


        string[] s = new string[2];

        if (GameDataManager.instance.historySkillRunes != null)
        {
            foreach (KeyValuePair <string, int> kv in GameDataManager.instance.historySkillRunes)
            {
                for (int i = 0; i < RareType.RUNE_BOOK_SLOT_NUM; ++i)
                {
                    if (_book[i].ContainsKey(kv.Key))
                    {
                        tempRb = _book[i][kv.Key];
                        ++tempRb.hasCount;
                        _book[i][kv.Key] = tempRb;
                        continue;
                    }
                }
            }
        }

        refreshProcess2();
    }
    public void refresh(Dictionary <string, int> historyEquipments)
    {
        _hasCount   = 0;
        _totalCount = 0;

        clearSlots();


        for (int i = 0; i < RareType.RUNE_BOOK_SLOT_NUM; ++i)
        {
            rareSlotNum[i] = 0;
        }

        scrollView.transform.localPosition = Vector3.zero;
        scrollView.panel.clipOffset        = Vector2.zero;
        scrollView.ResetPosition();



        for (int i = 0; i < RareType.RUNE_BOOK_SLOT_NUM; ++i)
        {
            if (_book[i] == null)
            {
                _book[i] = new Dictionary <string, RuneBookData>();
            }
            else
            {
                _book[i].Clear();
            }
        }

        foreach (KeyValuePair <string, BaseHeroPartsData> kv in GameManager.info.heroBasePartsData)
        {
            if (kv.Value.isBook == false)
            {
                continue;
            }
            if (kv.Value.character != _nowCharacter)
            {
                continue;
            }

            RuneBookData bs = new RuneBookData(kv.Key);
            bs.baseLevel = 20;

            switch (kv.Key.Substring(kv.Key.Length - 2, 1))
            {
            case "1":
                if (_nowCharacter == Character.CHLOE)
                {
                    continue;
                }
                bs.rare = RareType.D;
                break;

            case "2":
                if (_nowCharacter == Character.CHLOE)
                {
                    continue;
                }
                bs.rare = RareType.C;
                break;

            case "3":
                bs.rare = RareType.B;
                break;

            case "4":
                bs.rare = RareType.A;
                break;

            case "5":
                bs.rare = RareType.S;
                break;

            case "6":
                bs.rare = RareType.SS;
                break;
            }

            _book[bs.rare].Add(kv.Key, bs);
            ++_totalCount;
        }

        RuneBookData tempRb;

        foreach (KeyValuePair <string, GameIDData> kv in GameDataManager.instance.partsInventory)
        {
            if (_book[kv.Value.rare].ContainsKey(kv.Value.baseId) == false)
            {
                continue;
            }
            if (kv.Value.partsData.character != _nowCharacter)
            {
                continue;
            }

            tempRb = _book[kv.Value.rare][kv.Value.baseId];
            ++tempRb.nowCount;
            _book[kv.Value.rare][kv.Value.baseId] = tempRb;
        }

        GameIDData gd;

        if (GameDataManager.instance.heroes.ContainsKey(_nowCharacter))
        {
            gd = GameDataManager.instance.heroes[_nowCharacter].partsHead.itemInfo;

            if (_book[gd.rare].ContainsKey(gd.baseId))
            {
                tempRb = _book[gd.rare][gd.baseId];
                ++tempRb.nowCount;
                _book[gd.rare][gd.baseId] = tempRb;
            }

            gd = GameDataManager.instance.heroes[_nowCharacter].partsWeapon.itemInfo;

            if (_book[gd.rare].ContainsKey(gd.baseId))
            {
                tempRb = _book[gd.rare][gd.baseId];
                ++tempRb.nowCount;
                _book[gd.rare][gd.baseId] = tempRb;
            }

            gd = GameDataManager.instance.heroes[_nowCharacter].partsBody.itemInfo;

            if (_book[gd.rare].ContainsKey(gd.baseId))
            {
                tempRb = _book[gd.rare][gd.baseId];
                ++tempRb.nowCount;
                _book[gd.rare][gd.baseId] = tempRb;
            }

            gd = GameDataManager.instance.heroes[_nowCharacter].partsVehicle.itemInfo;

            if (_book[gd.rare].ContainsKey(gd.baseId))
            {
                tempRb = _book[gd.rare][gd.baseId];
                ++tempRb.nowCount;
                _book[gd.rare][gd.baseId] = tempRb;
            }
        }


        string[] s = new string[2];

        if (historyEquipments != null)
        {
            foreach (KeyValuePair <string, int> kv in historyEquipments)
            {
                for (int i = 0; i < RareType.RUNE_BOOK_SLOT_NUM; ++i)
                {
                    if (_book[i].ContainsKey(kv.Key))
                    {
                        tempRb = _book[i][kv.Key];
                        ++tempRb.hasCount;
                        _book[i][kv.Key] = tempRb;
                        continue;
                    }
                }
            }
        }

        refreshProcess2();

        changeTab(RareType.S);
    }