123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- namespace UnityEditor.Purchasing
- {
- internal static class ApplePriceTiers
- {
- internal const int kNumTiers = 88;
- // Cache
- private static string[] s_Strings;
- private static int[] s_Dollars;
- internal static string[] Strings
- {
- get
- {
- GenerateAppleTierData();
- return s_Strings;
- }
- }
- internal static int[] RoundedDollars
- {
- get
- {
- GenerateAppleTierData();
- return s_Dollars;
- }
- }
- internal static double ActualDollarsForAppleTier(int tier)
- {
- if (RoundedDollars[tier] == 0)
- return 0;
- return RoundedDollars[tier] - 0.01;
- }
- private static void GenerateAppleTierData()
- {
- if (s_Strings == null || s_Dollars == null)
- {
- s_Strings = new string[kNumTiers];
- s_Dollars = new int[kNumTiers];
- var i = 0;
- s_Dollars[i] = 0;
- s_Strings[i++] = "Free";
- var dollars = 1;
- for (; i < kNumTiers; ++i)
- {
- if (i == 63)
- {
- s_Strings[i] = CreateApplePriceTierString(i, 125);
- s_Dollars[i] = 125;
- }
- else if (i == 69)
- {
- s_Strings[i] = CreateApplePriceTierString(i, 175);
- s_Dollars[i] = 175;
- }
- else
- {
- s_Strings[i] = CreateApplePriceTierString(i, dollars);
- s_Dollars[i] = dollars;
- if (i >= 82)
- { // 82 - 87 USD $100 increments to $1000
- dollars += 100;
- }
- else if (i >= 77)
- { // 77 - 82 USD $50 increments to $500
- dollars += 50;
- }
- else if (i >= 60)
- { // 60 - 77 $10 increments to $250, except 63 = $125 and 69 = $175
- dollars += 10;
- }
- else if (i >= 50)
- { // 50 - 59 USD $5 increments
- dollars += 5;
- }
- else
- { // 1 - 49 USD $1 increments
- dollars++;
- }
- }
- }
- }
- }
- private static string CreateApplePriceTierString(int tier, int roundedDollars)
- {
- return string.Format("Tier {0} - USD {1:0.00}", tier, (float)roundedDollars - 0.01f);
- }
- }
- }
|