Exemplo n.º 1
0
def getGWMFighter():
  # Changes by level:
  # 01: AC 14, Archery, proficiency 2
  # 04: AC 15, ASI
  # 05: AC 16, proficiency 3, Extra Attack
  # 06: ASI
  # 08: AC 17, ASI
  # 09: AC 18, proficiency 4
  # 11: Extra Attack
  # 13: AC 19, proficiency 5
  # 17: AC 20, proficiency 6, Extra Attack

  f01 = 1 * calculageAverage(14, 5, [(2, 6)], 3)
  f03 = 1 * (calculageAverage(14, 5, [(2, 6)], 3) + 0.05 * d(2, 6))
  f04 = 1 * (calculageAverage(15, 0, [(2, 6)], 13) + 0.05 * d(2, 6))
  f05 = 2 * (calculageAverage(16, 1, [(2, 6)], 13) + 0.05 * d(2, 6))
  f06 = 2 * (calculageAverage(16, 2, [(2, 6)], 14) + 0.05 * d(2, 6))
  f08 = 2 * (calculageAverage(17, 3, [(2, 6)], 15) + 0.05 * d(2, 6))
  f09 = 2 * (calculageAverage(18, 4, [(2, 6)], 15) + 0.05 * d(2, 6))
  f11 = 3 * (calculageAverage(18, 4, [(2, 6)], 15) + 0.05 * d(2, 6))
  f13 = 3 * (calculageAverage(19, 5, [(2, 6)], 15) + 0.05 * d(2, 6))
  f15 = 3 * (calculageAverage(19, 5, [(2, 6)], 15) + 0.1 * d(2, 6))
  f17 = 4 * (calculageAverage(20, 6, [(2, 6)], 15) + 0.1 * d(2, 6))

  return [f01, f01, f03, f04, f05, f06, f06, f08, f09, f09, f11, f11, f13, f13, f15, f15, f17, f17, f17, f17]
Exemplo n.º 2
0
def getCrossbowFighter():
  # Changes by level:
  # 01: AC 14, Archery, proficiency 2
  # 04: AC 15, ASI
  # 05: AC 16, proficiency 3, Extra Attack
  # 06: ASI
  # 08: AC 17, ASI
  # 09: AC 18, proficiency 4
  # 11: Extra Attack
  # 13: AC 19, proficiency 5
  # 17: AC 20, proficiency 6, Extra Attack

  f01 = 2 * calculageAverage(14, 7, [(1, 6)], 3)
  f03 = 2 * (calculageAverage(14, 7, [(1, 6)], 3) + 0.05 * d(1, 6))
  f04 = 2 * (calculageAverage(15, 2, [(1, 6)], 13) + 0.05 * d(1, 6))
  f05 = 3 * (calculageAverage(16, 3, [(1, 6)], 13) + 0.05 * d(1, 6))
  f06 = 3 * (calculageAverage(16, 4, [(1, 6)], 14) + 0.05 * d(1, 6))
  f08 = 3 * (calculageAverage(17, 5, [(1, 6)], 15) + 0.05 * d(1, 6))
  f09 = 3 * (calculageAverage(18, 6, [(1, 6)], 15) + 0.05 * d(1, 6))
  f11 = 4 * (calculageAverage(18, 6, [(1, 6)], 15) + 0.05 * d(1, 6))
  f13 = 4 * (calculageAverage(19, 7, [(1, 6)], 15) + 0.05 * d(1, 6))
  f15 = 4 * (calculageAverage(19, 7, [(1, 6)], 15) + 0.1 * d(1, 6))
  f17 = 5 * (calculageAverage(20, 8, [(1, 6)], 15) + 0.1 * d(1, 6))

  return [f01, f01, f03, f04, f05, f06, f06, f08, f09, f09, f11, f11, f13, f13, f15, f15, f17, f17, f17, f17]
Exemplo n.º 3
0
def getSwordBarb():
  # Changes by level:
  # 01: AC 14, proficiency 2, rage 2
  # 02: reckless
  # 04: AC 15, ASI
  # 05: AC 16, proficiency 3, Extra Attack
  # 08: AC 17, ASI
  # 09: AC 18, proficiency 4, rage 3, brutal1
  # 13: AC 19, proficiency 5, brutal2
  # 16: rage 4
  # 17: AC 20, proficiency 6, brutal3
  # 20: primal rage 24

  b01 = calculageAverage(14, 5, [(1, 8)], 5)
  b02 = calculageAverage(14, 5, [(1, 8)], 5)
  b04 = calculageAverageAdvantage(15, 6, [(1, 8)], 6)
  b05 = 2 * calculageAverageAdvantage(16, 7, [(1, 8)], 6)
  b08 = 2 * calculageAverageAdvantage(17, 8, [(1, 8)], 7)
  b09 = 2 * (calculageAverageAdvantage(18, 9, [(1, 8)], 8) + 0.098 * d(1, 8))
  b13 = 2 * (calculageAverageAdvantage(19, 10, [(1, 8)], 8) + 0.098 * d(2, 8))
  b16 = 2 * (calculageAverageAdvantage(19, 10, [(1, 8)], 9) + 0.098 * d(2, 8))
  b17 = 2 * (calculageAverageAdvantage(20, 11, [(1, 8)], 9) + 0.098 * d(3, 8))
  b20 = 2 * (calculageAverageAdvantage(20, 15, [(1, 8)], 13) + 0.098 * d(3, 8))

  return [b01, b02, b02, b04, b05, b05, b05, b08, b09, b09, b09, b09, b13, b13, b13, b16, b17, b17, b17, b20]
Exemplo n.º 4
0
def calculateSneakAttackTWF(ac, prof, mod, sa):
  return calculageAverage(ac, prof, [(1, 6)], mod) + calculageAverage(ac, prof, [(1, 6)], 0) + hitChanceAdvantage(ac, prof) * d(sa, 6) + 0.098 * d(sa, 6)