Пример #1
0
    public static StatTier[] GetFilledList(int tier)
    {
        tier = ClampTier(tier);

        Array tierTypes = Enum.GetValues(typeof(PlayerStatType));

        StatTier[] newTiers = new StatTierList.StatTier[tierTypes.Length];

        for (int i = 0; i < tierTypes.Length; i++)
        {
            PlayerStatType type = (PlayerStatType)tierTypes.GetValue(i);
            newTiers[i].type = type;
            newTiers[i].tier = tier;
        }
        return(newTiers);
    }
Пример #2
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        if (statTier == null)
        {
            return;
        }

        EditorGUILayout.Space();

        if (GUILayout.Button("Regenerate Tiers"))
        {
            Dictionary <PlayerStatType, int> storedTiers = new Dictionary <PlayerStatType, int>();
            if (statTier.Tiers != null && statTier.Tiers.Length > 0)
            {
                foreach (StatTierList.StatTier tier in statTier.Tiers)
                {
                    if (storedTiers.ContainsKey(tier.type))
                    {
                        Debug.LogError("Aborting regenerating stat tiers due to collision with " + tier.type);
                        break;
                    }
                    storedTiers.Add(tier.type, tier.tier);
                }
            }

            Array tierTypes = Enum.GetValues(typeof(PlayerStatType));
            StatTierList.StatTier[] newTiers = new StatTierList.StatTier[tierTypes.Length];

            for (int i = 0; i < tierTypes.Length; i++)
            {
                PlayerStatType type = (PlayerStatType)tierTypes.GetValue(i);
                newTiers[i].type = type;
                newTiers[i].tier = storedTiers.ContainsKey(type)? storedTiers[type] : 0;
            }

            statTier.Tiers = newTiers;
        }
    }