예제 #1
0
 public void ReflashPetIconSelectUI()
 {
     foreach (DictionaryEntry info in petIconList)
     {
         sdUIPetLevelSelectCard icon = info.Value as sdUIPetLevelSelectCard;
         if (icon.m_uuDBID != UInt64.MaxValue &&
             (icon.m_uuDBID == m_uuSelectDBID0 ||
              icon.m_uuDBID == m_uuSelectDBID1 ||
              icon.m_uuDBID == m_uuSelectDBID2 ||
              icon.m_uuDBID == m_uuSelectDBID3 ||
              icon.m_uuDBID == m_uuSelectDBID4 ||
              icon.m_uuDBID == m_uuSelectDBID5 ||
              icon.m_uuDBID == m_uuSelectDBID6 ||
              icon.m_uuDBID == m_uuSelectDBID7))
         {
             icon.SetPetSelect(true);
         }
         else
         {
             icon.SetPetSelect(false);
         }
     }
 }
예제 #2
0
    public void UpdatePetLevelSelectList()
    {
        if (m_spet == null)
        {
            return;
        }

        Hashtable listPet = null;

        listPet = sdNewPetMgr.Instance.GetPetList();

        Hashtable list = new Hashtable();

        foreach (DictionaryEntry info in listPet)
        {
            string         key1     = info.Key.ToString();
            SClientPetInfo petvalue = info.Value as SClientPetInfo;
            if (sdNewPetMgr.Instance.GetIsInBattleTeam(UInt64.Parse(key1)) == 0 && key1 != m_uuSelfDBID.ToString() && petvalue.m_Lock != 1)
            {
                list.Add(key1, petvalue);
            }
        }

        //将宠物数据填充到List中,用来排序..
        List <SClientPetInfo> listOther = new List <SClientPetInfo>();
        List <SClientPetInfo> listExp   = new List <SClientPetInfo>();

        foreach (DictionaryEntry info in list)
        {
            SClientPetInfo info1 = info.Value as SClientPetInfo;
            if (sdNewPetMgr.Instance.IsExpPet(info1.m_uiTemplateID))
            {
                listExp.Add(info1);
            }
            else
            {
                listOther.Add(info1);
            }
        }
        listExp.Sort(SClientPetInfo.PetSortByAbilityBeginBig);
        listOther.Sort(SClientPetInfo.PetSortByAbilityBeginBig);

        int num   = listExp.Count + listOther.Count;
        int iZero = 0;

        if (num < 8)
        {
            iZero = 8 - num;
        }
        else
        {
            int iLast = num % 4;
            if (iLast > 0)
            {
                iZero = 4 - iLast;
            }
        }

        num = num + iZero;
        int count = petIconList.Count;

        if (num > count)
        {
            num = num - count;
            for (int i = 0; i < num; ++i)
            {
                GameObject tempItem = GameObject.Instantiate(m_spet) as GameObject;
                tempItem.GetComponent <sdUIPetLevelSelectCard>().index = count;
                tempItem.transform.parent        = m_spet.transform.parent;
                tempItem.transform.localPosition = m_spet.transform.localPosition;
                tempItem.transform.localScale    = m_spet.transform.localScale;
                Vector3 pos = tempItem.transform.localPosition;
                pos.y = pos.y - (276 * (count / 4));
                int iX = (count % 4) * 221;
                pos.x += iX;
                tempItem.transform.localPosition = pos;
                petIconList.Add(petIconList.Count, tempItem.GetComponent <sdUIPetLevelSelectCard>());
                ++count;
            }
        }

        IDictionaryEnumerator iter = petIconList.GetEnumerator();

        foreach (SClientPetInfo infoEntry in listExp)
        {
            if (iter.MoveNext())
            {
                sdUIPetLevelSelectCard icon = iter.Value as sdUIPetLevelSelectCard;
                icon.ReflashPetIconUI(infoEntry.m_uuDBID);
                icon.ReflashGrayUI(false);

                if (icon.m_uuDBID != UInt64.MaxValue &&
                    (icon.m_uuDBID == m_uuSelectDBID0 ||
                     icon.m_uuDBID == m_uuSelectDBID1 ||
                     icon.m_uuDBID == m_uuSelectDBID2 ||
                     icon.m_uuDBID == m_uuSelectDBID3 ||
                     icon.m_uuDBID == m_uuSelectDBID4 ||
                     icon.m_uuDBID == m_uuSelectDBID5 ||
                     icon.m_uuDBID == m_uuSelectDBID6 ||
                     icon.m_uuDBID == m_uuSelectDBID7))
                {
                    icon.SetPetSelect(true);
                }
            }
        }

        foreach (SClientPetInfo infoEntry in listOther)
        {
            if (iter.MoveNext())
            {
                sdUIPetLevelSelectCard icon = iter.Value as sdUIPetLevelSelectCard;
                icon.ReflashPetIconUI(infoEntry.m_uuDBID);
                icon.ReflashGrayUI(false);

                if (icon.m_uuDBID != UInt64.MaxValue &&
                    (icon.m_uuDBID == m_uuSelectDBID0 ||
                     icon.m_uuDBID == m_uuSelectDBID1 ||
                     icon.m_uuDBID == m_uuSelectDBID2 ||
                     icon.m_uuDBID == m_uuSelectDBID3 ||
                     icon.m_uuDBID == m_uuSelectDBID4 ||
                     icon.m_uuDBID == m_uuSelectDBID5 ||
                     icon.m_uuDBID == m_uuSelectDBID6 ||
                     icon.m_uuDBID == m_uuSelectDBID7))
                {
                    icon.SetPetSelect(true);
                }
            }
        }

        //只显示底板的卡片..
        for (int i = 0; i < iZero; i++)
        {
            if (iter.MoveNext())
            {
                sdUIPetLevelSelectCard icon = iter.Value as sdUIPetLevelSelectCard;
                icon.ReflashPetIconUI(0);
                icon.ReflashGrayUI(false);
            }
        }

        while (iter.MoveNext())
        {
            sdUIPetLevelSelectCard icon = iter.Value as sdUIPetLevelSelectCard;
            icon.ReflashPetIconUI(UInt64.MaxValue);
            icon.ReflashGrayUI(false);
        }

        if (m_spet != null)
        {
            m_spet.transform.parent.GetComponent <UIDraggablePanel>().ResetPosition();
        }
    }