Advertisement
Kovitikus

Baseline Rank Bonus Calculation

Aug 8th, 2019
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.77 KB | None | 0 0
  1. easy_rb = []
  2. average_rb = []
  3. difficult_rb = []
  4. impossible_rb = []
  5.  
  6. for i in 1000:
  7.     easy_rb.append(rank_bonus.skill_level(i, 'easy'))
  8.     average_rb.append(rank_bonus.skill_level(i, 'average'))
  9.     difficult_rb.append(rank_bonus.skill_level(i, 'difficult'))
  10.     impossible_rb.append(rank_bonus.skill_level(i, 'impossible'))
  11.  
  12.  
  13. class rank_bonus():
  14.     def rb_calc(self):
  15.         '''
  16.        Order of rank bonus calculation.
  17.            Skill Level
  18.            Stance
  19.        '''
  20.         pass
  21.    
  22.     def skill_level(self, rank, difficulty):
  23.         '''
  24.        RANK += RANK BONUS PER RANK
  25.        --------------------------
  26.        1 to 10 += 3
  27.        11 to 30 += 2
  28.        31 to 50 += 1
  29.        51 to 100 += 0.5
  30.        101 to 150 += 0.25
  31.        151 to 200 += 0.125
  32.        201 to 500 += 0.0625
  33.        501 to 1,000 += 0.025
  34.        1,001 to infinity += 0.01
  35.        '''
  36.         #Temp Values
  37.         rb = 0
  38.         rank = 100
  39.  
  40.         #Formula
  41.         if rank:
  42.             r = rank if rank < 10 else 10
  43.             rb += (3 * r)
  44.             if rank >= 11:
  45.                 r = rank - 10 if rank < 30 else 10
  46.                 rb += (2 * r)
  47.                 if rank >= 31:
  48.                     r = rank - 30 if rank < 50 else 20
  49.                     rb += (1 * r)
  50.                     if rank >= 51:
  51.                         r = rank - 50 if rank < 100 else 50
  52.                         rb += (0.5 * r)
  53.                         if rank >= 101:
  54.                             r = rank - 100 if rank < 150 else 50
  55.                             rb += (0.25 * r)
  56.                             if rank >= 151:
  57.                                 r = rank - 150 if rank < 200 else 50
  58.                                 rb += (0.125 * r)
  59.                                 if rank >= 201:
  60.                                     r = rank - 200 if rank < 500 else 300
  61.                                     rb += (0.0625 * r)
  62.                                     if rank >= 501:
  63.                                         r = rank - 500 if rank < 1000 else 500
  64.                                         rb += (0.025 * r)
  65.                                         if rank >= 1001:
  66.                                             r = rank - 1000
  67.                                             rb += (0.01 * r)
  68.             #15% RB loss per difficulty. At rank 100: Easy(100%) 115 RB, Average(85%) 97.75 RB, Difficult(70%) 80.5 RB, Impossible(55%) 63.25 RB.
  69.             if difficulty == 'easy':
  70.                 rb *= 1
  71.             elif difficulty == 'average':
  72.                 rb *= 0.85
  73.             elif difficulty == 'difficult':
  74.                 rb *= 0.7
  75.             elif difficulty == 'impossible':
  76.                 rb *= 0.55
  77.             return rb # Return if any rank.
  78.         return None # Return if no rank.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement