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); }
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; } }