Beispiel #1
0
    private void SetScrollRect(List <MaterialGem> materialGems)
    {
        this.ClearScrollRect();
        this.gemList.Clear();
        int num  = 6;
        int num2 = Mathf.CeilToInt((float)materialGems.get_Count() / (float)num);

        for (int i = 0; i < num2; i++)
        {
            GameObject instantiate2Prefab = ResourceManager.GetInstantiate2Prefab("GemSelectCell");
            instantiate2Prefab.get_transform().SetParent(this.gridLayoutGroup, false);
            instantiate2Prefab.get_gameObject().SetActive(true);
            instantiate2Prefab.set_name("GemSelectCell_" + i);
            for (int j = 0; j < num; j++)
            {
                int num3 = num * i + j;
                if (num3 >= materialGems.get_Count())
                {
                    break;
                }
                MaterialGem materialGem         = materialGems.get_Item(num3);
                GameObject  instantiate2Prefab2 = ResourceManager.GetInstantiate2Prefab(WidgetName.PetChooseItem);
                instantiate2Prefab2.set_name("GemItem_" + num3);
                PetID component = instantiate2Prefab2.GetComponent <PetID>();
                instantiate2Prefab2.SetActive(true);
                instantiate2Prefab2.get_transform().SetParent(instantiate2Prefab.get_transform());
                instantiate2Prefab2.GetComponent <RectTransform>().set_localScale(new Vector3(1f, 1f, 1f));
                instantiate2Prefab2.GetComponent <ButtonCustom>().onClickCustom = new ButtonCustom.VoidDelegateObj(this.OnClickOneGem);
                component.SetGemIcon(materialGem.typeId, materialGem.count);
                this.gemList.Add(instantiate2Prefab2.get_transform());
            }
        }
        if (this.gemList.get_Count() > 0)
        {
            int num4 = this.gemList.FindIndex((Transform a) => a.GetComponent <PetID>().ItemID == this.currTypeId);
            if (num4 == -1)
            {
                num4 = Mathf.Clamp(0, this.currGemIndex - 1, this.gemList.get_Count() - 1);
                this.OnClickOneGem(this.gemList.get_Item(num4).get_gameObject());
            }
            else
            {
                this.OnClickOneGem(this.gemList.get_Item(num4).get_gameObject());
            }
        }
    }
Beispiel #2
0
    private void OnClickBtnOneKeyCompose(GameObject go)
    {
        if (!GemGlobal.IsGemEnoughLv(this.rootTypeId))
        {
            string text = string.Format(GameDataUtils.GetChineseContent(621005, false), new object[0]);
            UIManagerControl.Instance.ShowToastText(text, 2f, 2f);
            return;
        }
        List <MaterialGem> oneKeyComposeGems = GemGlobal.GetOneKeyComposeGems(GemUI.instance.equipCurr, GemUI.instance.slotCurr, this.rootTypeId);

        if (oneKeyComposeGems == null)
        {
            string text2 = string.Format(GameDataUtils.GetChineseContent(621010, false), new object[0]);
            UIManagerControl.Instance.ShowToastText(text2, 2f, 2f);
            return;
        }
        List <CostGem> list = new List <CostGem>();

        using (List <MaterialGem> .Enumerator enumerator = oneKeyComposeGems.GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                MaterialGem current = enumerator.get_Current();
                list.Add(new CostGem
                {
                    gemId  = current.gemId,
                    gemNum = (uint)current.count
                });
            }
        }
        GemManager.Instance.SendGemSysCompositeReq(this.rootTypeId, 2);
        if (this.IsComposeGemtoSlot(this.rootTypeId))
        {
            this.CloseUI();
        }
    }
Beispiel #3
0
    private void OnClickOneGem(GameObject sender)
    {
        this.SetButtonSelected(sender);
        int num = int.Parse(sender.get_name().Split(new char[]
        {
            '_'
        })[1]);
        MaterialGem materialGem = this.materialGems.get_Item(num);

        this.currGemIndex = num;
        this.currTypeId   = materialGem.typeId;
        this.currGemId    = materialGem.gemId;
        this.currCount    = materialGem.count;
        Debug.Log(string.Concat(new object[]
        {
            "gemIndex=",
            num,
            " currTypeId=",
            this.currTypeId,
            " currGemId=",
            this.currGemId
        }));
        this.SetOneGem(this.currTypeId);
    }
Beispiel #4
0
    public static int GetOneKeyComposeCost(List <MaterialGem> gems, int typeId)
    {
        gems.Reverse();
        List <MaterialGem> list = new List <MaterialGem>();

        using (List <MaterialGem> .Enumerator enumerator = gems.GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                MaterialGem current = enumerator.get_Current();
                for (int i = 0; i < current.count; i++)
                {
                    MaterialGem materialGem = new MaterialGem
                    {
                        typeId = current.typeId,
                        gemId  = current.gemId,
                        count  = current.count
                    };
                    list.Add(materialGem);
                }
            }
        }
        int num  = 0;
        int num2 = 0;

        while (num < list.get_Count() && list.get_Count() > 1)
        {
            int typeId2       = list.get_Item(num).typeId;
            int afterId       = GemGlobal.GetAfterId(typeId2);
            int composeAmount = GemGlobal.GetComposeAmount(afterId);
            int num3          = 0;
            while (num < list.get_Count() && typeId2 == list.get_Item(num++).typeId)
            {
                num3++;
            }
            list.RemoveRange(0, num3);
            int num4 = num3 / composeAmount;
            for (int j = 0; j < num4; j++)
            {
                MaterialGem materialGem2 = new MaterialGem
                {
                    typeId = afterId,
                    gemId  = -1L,
                    count  = 1
                };
                list.Insert(0, materialGem2);
                num2 += GemGlobal.GetAmount(afterId);
            }
            string text = string.Empty;
            using (List <MaterialGem> .Enumerator enumerator2 = list.GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    MaterialGem current2 = enumerator2.get_Current();
                    text = text + current2.typeId + " ";
                }
            }
            if (list.get_Count() == 1)
            {
                break;
            }
            num = 0;
        }
        return(num2);
    }