1
1

DH_Classes.qsrc 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. # DH_Classes
  2. if $ARGS[0] = 'Init':
  3. KILLVAR 'dhCl_StatOld'
  4. KILLVAR 'dhCl_StatDif'
  5. KILLVAR '$dhCl_StatDifTxT'
  6. end
  7. if $ARGS[0] = 'ChangeClass':
  8. $.character = $ARGS[1]
  9. $.newClass = $ARGS[2]
  10. !! Needs a RESULT
  11. if $.newClass = '' or $.character = '': exit & end
  12. !! Check class requirements
  13. gs 'DH_Classes', $.newClass
  14. _canUseClass = True
  15. IF FUNC('DH_Races', 'CanUseClass', $dhCh_RaceFull[$.character], $.newClass) = False: _canUseClass = False
  16. !! More requirements...
  17. IF _canUseClass = False: exit
  18. !!~~ Get old stats
  19. gs 'DH_Classes', $dhCh_Class[$.character]
  20. !! Reset stats
  21. dhCh_HealthMax[$.character] -= dhCl_HealthMax
  22. dhCh_StaminaMax[$.character] -= dhCl_StaminaMax
  23. dhCh_ManaMax[$.character] -= dhCl_ManaMax
  24. dhCh_RageMax[$.character] -= dhCl_RageMax
  25. dhCh_EnergyMax[$.character] -= dhCl_EnergyMax
  26. dhCh_Agi[$.character] -= dhCl_Agi
  27. dhCh_Cha[$.character] -= dhCl_Cha
  28. dhCh_Int[$.character] -= dhCl_Int
  29. dhCh_Lor[$.character] -= dhCl_Lor
  30. dhCh_Luc[$.character] -= dhCl_Luc
  31. dhCh_Per[$.character] -= dhCl_Per
  32. dhCh_Str[$.character] -= dhCl_Str
  33. !!~~#
  34. !!~~ Store old stats
  35. dhCl_StatOld['HealthMax'] = dhCl_HealthMax
  36. dhCl_StatOld['StaminaMax'] = dhCl_StaminaMax
  37. dhCl_StatOld['ManaMax'] = dhCl_ManaMax
  38. dhCl_StatOld['RageMax'] = dhCl_RageMax
  39. dhCl_StatOld['EnergyMax'] = dhCl_EnergyMax
  40. dhCl_StatOld['Agi'] = dhCl_Agi
  41. dhCl_StatOld['Cha'] = dhCl_Cha
  42. dhCl_StatOld['Int'] = dhCl_Int
  43. dhCl_StatOld['Lor'] = dhCl_Lor
  44. dhCl_StatOld['Luc'] = dhCl_Luc
  45. dhCl_StatOld['Per'] = dhCl_Per
  46. dhCl_StatOld['Str'] = dhCl_Str
  47. !!~~#
  48. !!~~ Get new stats
  49. gs 'DH_Classes', $.newClass
  50. $dhCh_Class[$.character] = $dhCl_Class
  51. dhCh_HealthMax[$.character] += dhCl_HealthMax
  52. dhCh_StaminaMax[$.character] += dhCl_StaminaMax
  53. dhCh_ManaMax[$.character] += dhCl_ManaMax
  54. dhCh_RageMax[$.character] += dhCl_RageMax
  55. dhCh_EnergyMax[$.character] += dhCl_EnergyMax
  56. dhCh_Agi[$.character] += dhCl_Agi
  57. dhCh_Cha[$.character] += dhCl_Cha
  58. dhCh_Int[$.character] += dhCl_Int
  59. dhCh_Lor[$.character] += dhCl_Lor
  60. dhCh_Luc[$.character] += dhCl_Luc
  61. dhCh_Per[$.character] += dhCl_Per
  62. dhCh_Str[$.character] += dhCl_Str
  63. !!~~#
  64. !!~~ Store stat changes
  65. dhCl_StatDif['HealthMax'] = dhCl_HealthMax - dhCl_StatOld['HealthMax']
  66. dhCl_StatDif['StaminaMax'] = dhCl_StaminaMax - dhCl_StatOld['StaminaMax']
  67. dhCl_StatDif['ManaMax'] = dhCl_ManaMax - dhCl_StatOld['ManaMax']
  68. dhCl_StatDif['RageMax'] = dhCl_RageMax - dhCl_StatOld['RageMax']
  69. dhCl_StatDif['EnergyMax'] = dhCl_EnergyMax - dhCl_StatOld['EnergyMax']
  70. dhCl_StatDif['Agi'] = dhCl_Agi - dhCl_StatOld['Agi']
  71. dhCl_StatDif['Cha'] = dhCl_Cha - dhCl_StatOld['Cha']
  72. dhCl_StatDif['Int'] = dhCl_Int - dhCl_StatOld['Int']
  73. dhCl_StatDif['Lor'] = dhCl_Lor - dhCl_StatOld['Lor']
  74. dhCl_StatDif['Luc'] = dhCl_Luc - dhCl_StatOld['Luc']
  75. dhCl_StatDif['Per'] = dhCl_Per - dhCl_StatOld['Per']
  76. dhCl_StatDif['Str'] = dhCl_Str - dhCl_StatOld['Str']
  77. $dhCl_StatDifTxT['HealthMax'] = iif(dhCl_StatDif['HealthMax'] >= 0, '+' + str(dhCl_StatDif['HealthMax']), str(dhCl_StatDif['HealthMax']))
  78. $dhCl_StatDifTxT['StaminaMax'] = iif(dhCl_StatDif['StaminaMax'] >= 0, '+' + str(dhCl_StatDif['StaminaMax']), str(dhCl_StatDif['StaminaMax']))
  79. $dhCl_StatDifTxT['ManaMax'] = iif(dhCl_StatDif['ManaMax'] >= 0, '+' + str(dhCl_StatDif['ManaMax']), str(dhCl_StatDif['ManaMax']))
  80. $dhCl_StatDifTxT['RageMax'] = iif(dhCl_StatDif['RageMax'] >= 0, '+' + str(dhCl_StatDif['RageMax']), str(dhCl_StatDif['RageMax']))
  81. $dhCl_StatDifTxT['EnergyMax'] = iif(dhCl_StatDif['EnergyMax'] >= 0, '+' + str(dhCl_StatDif['EnergyMax']), str(dhCl_StatDif['EnergyMax']))
  82. $dhCl_StatDifTxT['Agi'] = iif(dhCl_StatDif['Agi'] >= 0, '+' + str(dhCl_StatDif['Agi']), str(dhCl_StatDif['Agi']))
  83. $dhCl_StatDifTxT['Cha'] = iif(dhCl_StatDif['Cha'] >= 0, '+' + str(dhCl_StatDif['Cha']), str(dhCl_StatDif['Cha']))
  84. $dhCl_StatDifTxT['Int'] = iif(dhCl_StatDif['Int'] >= 0, '+' + str(dhCl_StatDif['Int']), str(dhCl_StatDif['Int']))
  85. $dhCl_StatDifTxT['Lor'] = iif(dhCl_StatDif['Lor'] >= 0, '+' + str(dhCl_StatDif['Lor']), str(dhCl_StatDif['Lor']))
  86. $dhCl_StatDifTxT['Luc'] = iif(dhCl_StatDif['Luc'] >= 0, '+' + str(dhCl_StatDif['Luc']), str(dhCl_StatDif['Luc']))
  87. $dhCl_StatDifTxT['Per'] = iif(dhCl_StatDif['Per'] >= 0, '+' + str(dhCl_StatDif['Per']), str(dhCl_StatDif['Per']))
  88. $dhCl_StatDifTxT['Str'] = iif(dhCl_StatDif['Str'] >= 0, '+' + str(dhCl_StatDif['Str']), str(dhCl_StatDif['Str']))
  89. !!~~#
  90. end
  91. if $ARGS[0] = 'PrintStatChanges':
  92. $.elementId = $ARGS[1]
  93. !!~~ Gained
  94. IF (dhCl_StatDif['HealthMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'HealthMax', 'Max Health', 'health')
  95. IF (dhCl_StatDif['StaminaMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'StaminaMax', 'Max Stamina', 'stamina')
  96. IF (dhCl_StatDif['ManaMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'ManaMax', 'Max Mana', 'mana')
  97. IF (dhCl_StatDif['RageMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'RageMax', 'Max Rage', 'rage')
  98. IF (dhCl_StatDif['EnergyMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'EnergyMax', 'Max Energy', 'energy')
  99. IF (dhCl_StatDif['Agi'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Agi', 'Agility', 'agi')
  100. IF (dhCl_StatDif['Cha'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Cha', 'Charisma', 'cha')
  101. IF (dhCl_StatDif['Int'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Int', 'Intellect', 'int')
  102. IF (dhCl_StatDif['Lor'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Lor', 'Lore', 'lor')
  103. IF (dhCl_StatDif['Luc'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Luc', 'Luck', 'luc')
  104. IF (dhCl_StatDif['Per'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Per', 'Perception', 'per')
  105. IF (dhCl_StatDif['Str'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Str', 'Strength', 'str')
  106. !!~~#
  107. !!~~ Lost
  108. IF (dhCl_StatDif['HealthMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'HealthMax', 'Max Health', 'health')
  109. IF (dhCl_StatDif['StaminaMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'StaminaMax', 'Max Stamina', 'stamina')
  110. IF (dhCl_StatDif['ManaMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'ManaMax', 'Max Mana', 'mana')
  111. IF (dhCl_StatDif['RageMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'RageMax', 'Max Rage', 'rage')
  112. IF (dhCl_StatDif['EnergyMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'EnergyMax', 'Max Energy', 'energy')
  113. IF (dhCl_StatDif['Agi'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Agi', 'Agility', 'agi')
  114. IF (dhCl_StatDif['Cha'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Cha', 'Charisma', 'cha')
  115. IF (dhCl_StatDif['Int'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Int', 'Intellect', 'int')
  116. IF (dhCl_StatDif['Lor'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Lor', 'Lore', 'lor')
  117. IF (dhCl_StatDif['Luc'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Luc', 'Luck', 'luc')
  118. IF (dhCl_StatDif['Per'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Per', 'Perception', 'per')
  119. IF (dhCl_StatDif['Str'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Str', 'Strength', 'str')
  120. !!~~#
  121. end
  122. if $ARGS[0] = 'PrintStatGain':
  123. $.elementId = $ARGS[1]
  124. $.stat = $ARGS[2]
  125. $.statText = $ARGS[3]
  126. $.statColor = $ARGS[4]
  127. func('writeN', $.elementId)
  128. func('DH_Screen', 'tooltip', $.elementId, 'From changing class.')
  129. func('write', $.elementId, 'Gained', 'c:' + $Wf_Colors['gain'])
  130. func('writes', $.elementId, $dhCl_StatDifTxt['<<$.stat>>'], 'c:' + $Wf_Colors['num'])
  131. func('writes', $.elementId, $.statText, 'c:' + $Wf_Colors['<<$.statColor>>'])
  132. func('DH_Screen', 'tooltipend', $.elementId)
  133. end
  134. if $ARGS[0] = 'PrintStatLoss':
  135. $.elementId = $ARGS[1]
  136. $.stat = $ARGS[2]
  137. $.statText = $ARGS[3]
  138. $.statColor = $ARGS[4]
  139. func('writeN', $.elementId)
  140. func('DH_Screen', 'tooltip', $.elementId, 'From changing class.')
  141. func('write', $.elementId, 'Lost', 'c:' + $Wf_Colors['loss'])
  142. func('writes', $.elementId, $dhCl_StatDifTxt['<<$.stat>>'], 'c:' + $Wf_Colors['num'])
  143. func('writes', $.elementId, $.statText, 'c:' + $Wf_Colors['<<$.statColor>>'])
  144. func('DH_Screen', 'tooltipend', $.elementId)
  145. end
  146. if $ARGS[0] = 'None':
  147. $dhCl_Class = 'None'
  148. dhCl_HealthMax = 5
  149. dhCl_StaminaMax = 5
  150. dhCl_ManaMax = 0
  151. dhCl_RageMax = 0
  152. dhCl_EnergyMax = 0
  153. dhCl_Agi = 1
  154. dhCl_Cha = 1
  155. dhCl_Int = 1
  156. dhCl_Lor = 1
  157. dhCl_Luc = 1
  158. dhCl_Per = 1
  159. dhCl_Str = 1
  160. end
  161. if $ARGS[0] = 'Beater':
  162. $dhCl_Class = 'Beater'
  163. dhCl_HealthMax = 999
  164. dhCl_StaminaMax = 999
  165. dhCl_ManaMax = 999
  166. dhCl_RageMax = 999
  167. dhCl_EnergyMax = 999
  168. dhCl_Agi = 99
  169. dhCl_Cha = 99
  170. dhCl_Int = 99
  171. dhCl_Lor = 99
  172. dhCl_Luc = 99
  173. dhCl_Per = 99
  174. dhCl_Str = 99
  175. end
  176. if $ARGS[0] = 'Brute':
  177. $dhCl_Class = 'Brute'
  178. dhCl_HealthMax = 15
  179. dhCl_StaminaMax = 5
  180. dhCl_ManaMax = 0
  181. dhCl_RageMax = 10
  182. dhCl_EnergyMax = 0
  183. dhCl_Agi = 1
  184. dhCl_Cha = 1
  185. dhCl_Int = 1
  186. dhCl_Lor = 2
  187. dhCl_Luc = 1
  188. dhCl_Per = 1
  189. dhCl_Str = 4
  190. end
  191. if $ARGS[0] = 'Trickster':
  192. $dhCl_Class = 'Trickster'
  193. dhCl_HealthMax = 5
  194. dhCl_StaminaMax = 5
  195. dhCl_ManaMax = 20
  196. dhCl_RageMax = 0
  197. dhCl_EnergyMax = 0
  198. dhCl_Agi = 1
  199. dhCl_Cha = 1
  200. dhCl_Int = 4
  201. dhCl_Lor = 2
  202. dhCl_Luc = 1
  203. dhCl_Per = 1
  204. dhCl_Str = 1
  205. end
  206. if $ARGS[0] = 'Pickpocket':
  207. $dhCl_Class = 'Pickpocket'
  208. dhCl_HealthMax = 8
  209. dhCl_StaminaMax = 10
  210. dhCl_ManaMax = 0
  211. dhCl_RageMax = 0
  212. dhCl_EnergyMax = 12
  213. dhCl_Agi = 2
  214. dhCl_Cha = 1
  215. dhCl_Int = 1
  216. dhCl_Lor = 2
  217. dhCl_Luc = 2
  218. dhCl_Per = 2
  219. dhCl_Str = 1
  220. end
  221. --- DH_Classes ---------------------------------