1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- 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, roundedDollars - 0.01f);
- }
- }
- }
|