Advertisement
Kovitikus

Defensive Layering RB Calculation

Aug 23rd, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.26 KB | None | 0 0
  1. """
  2. def_skills = {'weapon': {'high': {'staves': {'whirling block': 35.699999999999996}}, 'mid':
  3. {'staves': {'cross block': 10.2}}, 'low': {'staves': {'cross block': 10.2}}}, 'dodge': {'high': {},
  4. 'mid': {}, 'low': {}}, 'shield': {'high': {}, 'mid': {}, 'low': {}}}
  5.  
  6. def_rb = {'high': 0, 'mid': 0, 'low': 0}
  7. """
  8.  
  9.  
  10.  
  11. def defense_rb(self, skillset):
  12.         """
  13.        High, Mid, and Low always refer to the area
  14.        of the body that the attack targets and not the numerical value.
  15.        """
  16.         owner = self.owner
  17.  
  18.         """Weapon Rank Bonus"""
  19.         weap_dic = owner.db.def_skills.get('weapon')
  20.         weap_high_def = weap_dic.get('high')
  21.         weap_mid_def = weap_dic.get('mid')
  22.         weap_low_def = weap_dic.get('low')
  23.         weap_high_rb = 0.0
  24.         weap_mid_rb = 0.0
  25.         weap_low_rb = 0.0
  26.  
  27.         if weap_high_def.get(skillset):
  28.             weap_high_dic = weap_high_def.get(skillset)
  29.             weap_high_dic_values = weap_high_dic.values()
  30.             for rb in weap_high_dic_values:
  31.                 if rb > weap_high_rb:
  32.                     weap_high_rb = rb
  33.  
  34.         if weap_mid_def.get(skillset):
  35.             weap_mid_dic = weap_mid_def.get(skillset)
  36.             weap_mid_dic_values = weap_mid_dic.values()
  37.             for rb in weap_mid_dic_values:
  38.                 if rb > weap_mid_rb:
  39.                     weap_mid_rb = rb
  40.  
  41.         if weap_low_def.get(skillset):
  42.             weap_low_dic = weap_low_def.get(skillset)
  43.             weap_low_dic_values = weap_low_dic.values()
  44.             for rb in weap_low_dic_values:
  45.                 if rb > weap_low_rb:
  46.                     weap_low_rb = rb
  47.        
  48.  
  49.         """Dodge Rank Bonus"""
  50.         dodge_dic = owner.db.def_skills.get('dodge')
  51.         dodge_high_def = dodge_dic.get('high')
  52.         dodge_mid_def = dodge_dic.get('mid')
  53.         dodge_low_def = dodge_dic.get('low')
  54.         dodge_high_rb = 0.0
  55.         dodge_mid_rb = 0.0
  56.         dodge_low_rb = 0.0
  57.  
  58.         if dodge_high_def.get('cms'):
  59.             dodge_high_dic = dodge_high_def.get('cms')
  60.             dodge_high_dic_values = dodge_high_dic.values()
  61.             for rb in dodge_high_dic_values:
  62.                 if rb > dodge_high_rb:
  63.                     dodge_high_rb = rb
  64.  
  65.         if dodge_mid_def.get('cms'):
  66.             dodge_mid_dic = dodge_mid_def.get('cms')
  67.             dodge_mid_dic_values = dodge_mid_dic.values()
  68.             for rb in dodge_mid_dic_values:
  69.                 if rb > dodge_mid_rb:
  70.                     dodge_mid_rb = rb
  71.  
  72.         if dodge_low_def.get('cms'):
  73.             dodge_low_dic = dodge_low_def.get('cms')
  74.             dodge_low_dic_values = dodge_low_dic.values()
  75.             for rb in dodge_low_dic_values:
  76.                 if rb > dodge_low_rb:
  77.                     dodge_low_rb = rb
  78.  
  79.    
  80.         """Shield Rank Bonus"""
  81.         shield_dic = owner.db.def_skills.get('shield')
  82.         shield_high_def = shield_dic.get('high')
  83.         shield_mid_def = shield_dic.get('mid')
  84.         shield_low_def = shield_dic.get('low')
  85.         shield_high_rb = 0.0
  86.         shield_mid_rb = 0.0
  87.         shield_low_rb = 0.0
  88.  
  89.         if shield_high_def.get('shield'):
  90.             shield_high_dic = shield_high_def.get('shield')
  91.             shield_high_dic_values = shield_high_dic.values()
  92.             for rb in shield_high_dic_values:
  93.                 if rb > shield_high_rb:
  94.                     shield_high_rb = rb
  95.  
  96.         if shield_mid_def.get('shield'):
  97.             shield_mid_dic = shield_mid_def.get('shield')
  98.             shield_mid_dic_values = shield_mid_dic.values()
  99.             for rb in shield_mid_dic_values:
  100.                 if rb > shield_mid_rb:
  101.                     shield_mid_rb = rb
  102.  
  103.         if shield_low_def.get('shield'):
  104.             shield_low_dic = shield_low_def.get('shield')
  105.             shield_low_dic_values = shield_low_dic.values()
  106.             for rb in shield_low_dic_values:
  107.                 if rb > shield_low_rb:
  108.                     shield_low_rb = rb
  109.  
  110.  
  111.         """
  112.        Calculate Layering
  113.        First Highest RB gets 100%
  114.        Second Highest RB gets 50%
  115.        Third Highest RB gets 33%
  116.        """
  117.  
  118.         """High Layer"""
  119.         # weap_high_rb, dodge_high_rb, shield_high_rb
  120.         h_rb = [weap_high_rb, dodge_high_rb, shield_high_rb]
  121.         h_rb.sort(reverse=True)
  122.         h_layer1 = h_rb[0] * 1
  123.         h_layer2 = h_rb[1] * 0.5
  124.         h_layer3 = h_rb[2] * 0.33
  125.         high_def_rb = (h_layer1 + h_layer2 + h_layer3)
  126.  
  127.         """Mid Layer"""
  128.         # weap_mid_rb, dodge_mid_rb, shield_mid_rb
  129.         m_rb = [weap_mid_rb, dodge_mid_rb, shield_mid_rb]
  130.         m_rb.sort(reverse=True)
  131.         m_layer1 = m_rb[0] * 1
  132.         m_layer2 = m_rb[1] * 0.5
  133.         m_layer3 = m_rb[2] * 0.33
  134.         mid_def_rb = (m_layer1 + m_layer2 + m_layer3)
  135.  
  136.         """Low Layer"""
  137.         # weap_low_rb, dodge_low_rb, shield_low_rb
  138.         l_rb = [weap_low_rb, dodge_low_rb, shield_low_rb]
  139.         l_rb.sort(reverse=True)
  140.         l_layer1 = l_rb[0] * 1
  141.         l_layer2 = l_rb[1] * 0.5
  142.         l_layer3 = l_rb[2] * 0.33
  143.         low_def_rb = (l_layer1 + l_layer2 + l_layer3)
  144.  
  145.         # Assign the values to the character.
  146.         def_rb = owner.db.def_rb
  147.         def_rb['high'] = high_def_rb
  148.         def_rb['mid'] = mid_def_rb
  149.         def_rb['low'] = low_def_rb
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement