Ejemplo n.º 1
0
    //初始化显示
    public void show(MartialType type)
    {
        //更新三个按钮状态

        //更新武学列表
        OnShowMartialTypeButtonClick(MartialType.XINFA);
        CurrentShowType = MartialType.XINFA;
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 武学类型按钮点击回调
    /// </summary>
    /// <param name="arg">Argument.</param>
    void OnShowMartialTypeButtonClick(object arg)
    {
        //SoundManager.Instance.PlaySoundEffect("Sound_Button_PlayerMartialArts_Change");
        MartialType btnType = (MartialType)arg;

        if (CurrentShowType == btnType)         //重复点击同一个类型按钮,不刷新
        {
            return;
        }

        Background.GetComponent <SpriteSwith>().ChangeSprite((int)btnType);
        XinfaButton.spriteSwithList.ApplyAllItem(P => P.ChangeSprite(btnType == MartialType.XINFA?2:1));
        NeigongButton.spriteSwithList.ApplyAllItem(P => P.ChangeSprite(btnType == MartialType.NEIGONG?2:1));
        DanYaoButton.spriteSwithList.ApplyAllItem(P => P.ChangeSprite(btnType == MartialType.DANYAO?2:1));
        ShowMartialList(btnType);
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 根据武学类型获取相应列表
    /// </summary>
    /// <returns>The martial list by type.</returns>
    /// <param name="martialType">Martial type.</param>
    public List <SSendWuXueData> GetMartialListByType(MartialType martialType)
    {
        List <SSendWuXueData> tempWuXueData = new List <SSendWuXueData>();

        MartialDataList.ApplyAllItem(p => {
            MartialIndex martialIndex = new MartialIndex()
            {
                MartialArtsID = p.dwWuXueID, MartialArtsLevel = (int)p.byWuXueLevel
            };
            PlayerMartialArtsData martialArtsData = PlayerDataManager.Instance.GetPlayerMartialArtConfigData(martialIndex);
            if (martialArtsData.MartialArtsType == (byte)martialType)
            {
                tempWuXueData.Add(p);
            }
        });
        return(tempWuXueData);
    }
Ejemplo n.º 4
0
    /// <summary>
    /// 根据武学类型显示武学列表.
    /// </summary>
    /// <param name="martialType">Martial type.</param>
    void ShowMartialList(MartialType martialType)
    {
        //初始化列表里的每个元素
        //在Grid里生成所有的武学prefab(MartialItem),并给每个prefab添加点击事件回调
        CurrentShowType = martialType;
        //获取当前要显示的所有武学信息
        MyMartialDataList = PlayerMartialDataManager.Instance.GetMartialListByType(martialType);

        //武学排序
        MyMartialDataList.Sort((left, right) =>
        {
            if (left.dwWuXueID < right.dwWuXueID)
            {
                return(-1);
            }
            else if (left.dwWuXueID == right.dwWuXueID)
            {
                return(0);
            }
            else
            {
                return(1);
            }
        });

        MartialItemAreaList.ApplyAllItem(p => Destroy(p.gameObject));
        MartialItemAreaList.Clear();

        int lineCount = Mathf.CeilToInt(MyMartialDataList.Count / 4); //行数

        lineCount     = lineCount <= 1 ? 2 : lineCount;               //至少两行
        PrevLineCount = lineCount;
        for (int i = 0; i < lineCount; i++)
        {
            GameObject itemLine = NGUITools.AddChild(Grid.gameObject, MartialItemAreaPrefab);
            QinglongMartialItemArea itemArea = itemLine.GetComponent <QinglongMartialItemArea>();
            int perLineCount;                   //每行显示多少个图标
            int remainCount;                    //剩余的武学图标

            if (MyMartialDataList.Count <= 4)
            {
                perLineCount = (lineCount - 1 - i) * MyMartialDataList.Count;
            }
            else
            {
                remainCount = MyMartialDataList.Count - (i * 4);
                if (remainCount >= 4)
                {
                    perLineCount = 4;
                }
                else
                {
                    perLineCount = remainCount % 4;
                }
            }
            MartialItemAreaList.Add(itemArea);
            itemArea.Init(i, perLineCount, this);
            itemLine.transform.localPosition = Vector3.zero;
        }
        Grid.repositionNow = true;
    }