コード例 #1
0
ファイル: HeroRune.cs プロジェクト: tapenjoyGame/cry
    void OnClickRune(RuneItem rune)
    {
        if (is_sellmode == true)
        {
            int selected_node = m_selected_runes.FindIndex(r => r.Rune.RuneIdx == rune.Rune.RuneIdx);
            if (selected_node < 0)
            {
                rune.SetSelected(true);
                m_LabelTotalSellPrice.text = (int.Parse(m_LabelTotalSellPrice.text) + rune.Rune.Info.GradeInfo.SalePrice).ToString();
                m_selected_runes.Add(rune);
            }
            else
            {
                m_selected_runes[selected_node].SetSelected(false);
                m_LabelTotalSellPrice.text = (int.Parse(m_LabelTotalSellPrice.text) - rune.Rune.Info.GradeInfo.SalePrice).ToString();
                m_selected_runes.RemoveAt(selected_node);
            }
        }
        else
        {
            if (m_ToggleUpgrade.value == true)
            {
                if (rune.Rune.Info.Grade >= 6)
                {
                    Tooltip.Instance.ShowMessageKey("RuneMaxGrade");
                    return;
                }
                int selected_node = m_selected_runes.FindIndex(r => r.Rune.RuneIdx == rune.Rune.RuneIdx);
                if (selected_node < 0)
                {
                    if (rune.m_SpriteBlock.gameObject.activeSelf == true)
                    {
                        Tooltip.Instance.ShowMessageKey("RuneUpgradeTip");
                        return;
                    }

                    if (m_UpgradeRune.Rune == null)
                    {
                        m_UpgradeRune.RefreshUpgradeRune(rune.Rune, true);
                        int upgrade_cost = rune.Rune.Info.GradeInfo.UpgradeCost;
                        var event_info   = EventHottimeManager.Instance.GetInfoByID("rune_upgrade_discount");
                        if (event_info != null)
                        {
                            upgrade_cost = (int)(upgrade_cost * event_info.Percent);
                        }

                        m_UpgradePriceLabel.text = upgrade_cost.ToString();

                        m_Runes.ForEach(item => item.SetBlockSprite(item.Rune.Info.Grade != rune.Rune.Info.Grade));
                    }

                    foreach (RuneItem item in m_UpgradeMaterials)
                    {
                        if (item.Rune == null)
                        {
                            item.Init(rune.Rune, false, OnDeselectMaterial);
                            rune.SetSelected(true);
                            m_selected_runes.Add(rune);
                            return;
                        }
                    }
                    Tooltip.Instance.ShowMessageKey("RuneUpgradeFull");
                }
                else
                {
                    OnDeselectMaterial(rune);
                }
            }
            else
            {
                InitPopupRune(rune.Rune);
            }

            ReloadBlockCheckRunes();
        }
    }