You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

184 lines
4.3 KiB

  1. import click
  2. from flask.cli import AppGroup
  3. from ..models import db
  4. npc_cli = AppGroup('npc')
  5. @npc_cli.command('create classes')
  6. def create_classes():
  7. from .models import CharacterClass
  8. classes = []
  9. classes.append(CharacterClass(
  10. name = 'Elven Nightblade',
  11. bucket = 'Demi-Human',
  12. prime_requisite = 'D+I',
  13. hit_die_size = 6,
  14. maximum_level = 11,
  15. armour_modifier = -4,
  16. melee_light = 1,
  17. melee_medium = 2,
  18. melee_heavy = 0,
  19. ranged_light = 0,
  20. ranged_heavy = 0
  21. ))
  22. classes.append(CharacterClass(
  23. name = 'Elven Spellsword',
  24. bucket = 'Demi-Human',
  25. prime_requisite = 'S+I',
  26. hit_die_size = 6,
  27. maximum_level = 10,
  28. armour_modifier = -4,
  29. melee_light = 0,
  30. melee_medium = 1,
  31. melee_heavy = 0,
  32. ranged_light = 0,
  33. ranged_heavy = 0
  34. ))
  35. classes.append(CharacterClass(
  36. name = 'Explorer',
  37. bucket = 'Campaign',
  38. prime_requisite = 'S+D',
  39. hit_die_size = 6,
  40. maximum_level = 14,
  41. armour_modifier = -3,
  42. melee_light = 1,
  43. melee_medium = 1,
  44. melee_heavy = 0,
  45. ranged_light = 0,
  46. ranged_heavy = 1
  47. ))
  48. classes.append(CharacterClass(
  49. name = 'Bladedancer',
  50. bucket = 'Campaign',
  51. prime_requisite = 'W+D',
  52. hit_die_size = 6,
  53. maximum_level = 14,
  54. armour_modifier = -2,
  55. melee_light = 0,
  56. melee_medium = 1,
  57. melee_heavy = 0,
  58. ranged_light = 0,
  59. ranged_heavy = 0
  60. ))
  61. classes.append(CharacterClass(
  62. name = 'Cleric',
  63. bucket = 'Core',
  64. prime_requisite = 'WIS',
  65. hit_die_size = 6,
  66. maximum_level = 14,
  67. armour_modifier = 0,
  68. melee_light = 1,
  69. melee_medium = 3,
  70. melee_heavy = 1,
  71. ranged_light = 1,
  72. ranged_heavy = 3
  73. ))
  74. classes.append(CharacterClass(
  75. name = 'Fighter',
  76. bucket = 'Core',
  77. prime_requisite = 'STR',
  78. hit_die_size = 8,
  79. maximum_level = 14,
  80. armour_modifier = 1,
  81. melee_light = 1,
  82. melee_medium = 4,
  83. melee_heavy = 1,
  84. ranged_light = 1,
  85. ranged_heavy = 1
  86. ))
  87. classes.append(CharacterClass(
  88. name = 'Thief',
  89. bucket = 'Core',
  90. prime_requisite = 'DEX',
  91. hit_die_size = 4,
  92. maximum_level = 14,
  93. armour_modifier = -6,
  94. melee_light = 1,
  95. melee_medium = 1,
  96. melee_heavy = 0,
  97. ranged_light = 1,
  98. ranged_heavy = 0
  99. ))
  100. classes.append(CharacterClass(
  101. name = 'Mage',
  102. bucket = 'Core',
  103. prime_requisite = 'INT',
  104. hit_die_size = 4,
  105. maximum_level = 14,
  106. armour_modifier = -8,
  107. melee_light = 1,
  108. melee_medium = 0,
  109. melee_heavy = 0,
  110. ranged_light = 0,
  111. ranged_heavy = 0
  112. ))
  113. classes.append(CharacterClass(
  114. name = 'Assassin',
  115. bucket = 'Campaign',
  116. prime_requisite = 'S+D',
  117. hit_die_size = 6,
  118. maximum_level = 14,
  119. armour_modifier = -6,
  120. melee_light = 1,
  121. melee_medium = 2,
  122. melee_heavy = 0,
  123. ranged_light = 1,
  124. ranged_heavy = 0
  125. ))
  126. classes.append(CharacterClass(
  127. name = 'Bard',
  128. bucket = 'Campaign',
  129. prime_requisite = 'D+H',
  130. hit_die_size = 6,
  131. maximum_level = 14,
  132. armour_modifier = -3,
  133. melee_light = 1,
  134. melee_medium = 2,
  135. melee_heavy = 0,
  136. ranged_light = 1,
  137. ranged_heavy = 0
  138. ))
  139. classes.append(CharacterClass(
  140. name = 'Dwarven Vaultguard',
  141. bucket = 'Demi-Human',
  142. prime_requisite = 'STR',
  143. hit_die_size = 8,
  144. maximum_level = 13,
  145. armour_modifier = -1,
  146. melee_light = 0,
  147. melee_medium = 3,
  148. melee_heavy = 1,
  149. ranged_light = 1,
  150. ranged_heavy = 1
  151. ))
  152. classes.append(CharacterClass(
  153. name = 'Dwarven Craftpriest',
  154. bucket = 'Demi-Human',
  155. prime_requisite = 'WIS',
  156. hit_die_size = 6,
  157. maximum_level = 10,
  158. armour_modifier = -2,
  159. melee_light = 0,
  160. melee_medium = 1,
  161. melee_heavy = 0,
  162. ranged_light = 1,
  163. ranged_heavy = 0
  164. ))
  165. db.session.bulk_save_objects(classes)
  166. db.session.commit()