예제 #1
0
    public void RefreshGemItem(GemDataItem gemItem)
    {
        _Name.text = StrDictionary.GetFormatStr(gemItem.GemRecord.NameDict);
        ResourceManager.Instance.SetImage(_Icon, gemItem.GemRecord.Icon);
        if (gemItem.GemExAttrRecord != null)
        {
            _SkillPanel.gameObject.SetActive(true);
            ResourceManager.Instance.SetImage(_SkillIcon, gemItem.GemExAttrRecord.Icon);
            _SkillDesc.text = StrDictionary.GetFormatStr(gemItem.GemExAttrRecord.NameDict);
        }
        else
        {
            _SkillPanel.gameObject.SetActive(false);
        }

        for (int i = 0; i < _AttrText.Count; ++i)
        {
            _AttrText[i].text = GameDataValue.ConfigIntToPersent(gemItem.GemRecord.Attrs[i]) + "%";
        }

        if (gemItem == GemDataPack.Instance.SelectedGemItem)
        {
            _BtnEquip.gameObject.SetActive(false);
            _BtnEquiped.gameObject.SetActive(true);
        }
        else
        {
            _BtnEquip.gameObject.SetActive(true);
            _BtnEquiped.gameObject.SetActive(false);
        }
    }
예제 #2
0
    public override void Show(Hashtable hash)
    {
        base.Show(hash);

        var gemItem = (GemDataItem)hash["InitObj"];

        _ShowGem = gemItem;
        RefreshGemItem(gemItem);
    }
예제 #3
0
 public void RefreshGemItem(GemDataItem gemItem)
 {
     if (gemItem == null)
     {
         _Name.text = "";
         _Icon.gameObject.SetActive(false);
     }
     else
     {
         _Name.text = StrDictionary.GetFormatStr(gemItem.GemRecord.NameDict);
         _Icon.gameObject.SetActive(true);
         ResourceManager.Instance.SetImage(_Icon, gemItem.GemRecord.Icon);
     }
 }
예제 #4
0
    public static void SetSelectGem(GemDataItem chooseItem)
    {
        var instance = GameCore.Instance.UIManager.GetUIInstance <UIGemPack>(UIConfig.UIGemPack);

        if (instance == null)
        {
            return;
        }

        if (!instance.isActiveAndEnabled)
        {
            return;
        }

        instance.OnChooseGem(chooseItem);
    }
예제 #5
0
    public GemDataItem GetRandomGemItem(int level)
    {
        List <GemRecord> levelGems = new List <GemRecord>();

        foreach (var gemRecord in TableReader.Gem.Records.Values)
        {
            if (gemRecord.Level == level)
            {
                levelGems.Add(gemRecord);
            }
        }

        List <GemExAttrRecord> levelGemAttrs = new List <GemExAttrRecord>();

        foreach (var gemAttr in TableReader.GemExAttr.Records.Values)
        {
            if (gemAttr.Level <= level)
            {
                levelGemAttrs.Add(gemAttr);
            }
        }

        if (levelGems.Count == 0)
        {
            return(null);
        }

        int randomIdx = Random.Range(0, levelGems.Count);

        GemDataItem gemDataItem = new GemDataItem();

        gemDataItem.ItemDataID = levelGems[randomIdx].Id;

        if (levelGemAttrs.Count > 0)
        {
            int randomAttrIdx = Random.Range(0, levelGemAttrs.Count);
            gemDataItem.ExAttrID = levelGemAttrs[randomAttrIdx].Id;
        }

        return(gemDataItem);
    }
예제 #6
0
    public void InitGemInfo()
    {
        _SelectedGemItem = null;

        _GemItems = new ItemPackBase <GemDataItem>();
        _GemItems._SaveFileName = "GemDataItems";
        _GemItems.LoadClass(true);

        if (_GemItems._PackItems == null || _GemItems._PackItems.Count == 0)
        {
            _GemItems._PackItems = new List <GemDataItem>();
            GemDataItem defaultGem = new GemDataItem();
            defaultGem.ItemDataID = "1";
            _GemItems.AddItem(defaultGem);
            _SelectedGemItem = defaultGem;
            //_GemItems.SaveClass(true);
        }
        if (_GemItems._PackItems.Count > _SelectedGemIdx && _SelectedGemIdx >= 0)
        {
            _SelectedGemItem = _GemItems._PackItems[_SelectedGemIdx];
        }
    }
예제 #7
0
    private void AutoSelectGems(int level)
    {
        _SelectedItems.Clear();
        int checkIdx = 0;
        for (int i = 0; i < _MatGemSlots.Count; ++i)
        {
            GemDataItem gemItem = null;
            for (int j = checkIdx; j < GemDataPack.Instance._GemItems._PackItems.Count; ++j)
            {
                if (GemDataPack.Instance._GemItems._PackItems[j] == GemDataPack.Instance.SelectedGemItem)
                    continue;

                if (GemDataPack.Instance._GemItems._PackItems[j].GemRecord.Level == level)
                {
                    gemItem = GemDataPack.Instance._GemItems._PackItems[j];
                    checkIdx = j + 1;
                    break;
                }
            }
            _SelectedItems.Add(gemItem);
            _MatGemSlots[i].ShowGem(gemItem);
        }
    }
예제 #8
0
 private void OnChooseGem(GemDataItem chooseGem)
 {
     GemDataPack.Instance.SelectGem(chooseGem);
     _GemContainer.RefreshItems();
 }
예제 #9
0
 public void ShowGem(GemDataItem gemItem)
 {
     _ShowGem = gemItem;
     RefreshGemItem(gemItem);
 }
예제 #10
0
 public void SelectGem(GemDataItem selectGem)
 {
     _SelectedGemItem = selectGem;
     SaveClass(false);
 }