123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- # DH_Classes
- if $ARGS[0] = 'Init':
- KILLVAR 'dhCl_StatOld'
- KILLVAR 'dhCl_StatDif'
- KILLVAR '$dhCl_StatDifTxT'
- end
- if $ARGS[0] = 'ChangeClass':
- $.character = $ARGS[1]
- $.newClass = $ARGS[2]
-
- !! Needs a RESULT
- if $.newClass = '' or $.character = '': exit & end
-
- !! Check class requirements
- gs 'DH_Classes', $.newClass
- _canUseClass = True
- IF FUNC('DH_Races', 'CanUseClass', $dhCh_RaceFull[$.character], $.newClass) = False: _canUseClass = False
- !! More requirements...
- IF _canUseClass = False: exit
-
- !!~~ Get old stats
- gs 'DH_Classes', $dhCh_Class[$.character]
-
- !! Reset stats
- dhCh_HealthMax[$.character] -= dhCl_HealthMax
- dhCh_StaminaMax[$.character] -= dhCl_StaminaMax
- dhCh_ManaMax[$.character] -= dhCl_ManaMax
- dhCh_RageMax[$.character] -= dhCl_RageMax
- dhCh_EnergyMax[$.character] -= dhCl_EnergyMax
-
- dhCh_Agi[$.character] -= dhCl_Agi
- dhCh_Cha[$.character] -= dhCl_Cha
- dhCh_Int[$.character] -= dhCl_Int
- dhCh_Lor[$.character] -= dhCl_Lor
- dhCh_Luc[$.character] -= dhCl_Luc
- dhCh_Per[$.character] -= dhCl_Per
- dhCh_Str[$.character] -= dhCl_Str
- !!~~#
-
- !!~~ Store old stats
- dhCl_StatOld['HealthMax'] = dhCl_HealthMax
- dhCl_StatOld['StaminaMax'] = dhCl_StaminaMax
- dhCl_StatOld['ManaMax'] = dhCl_ManaMax
- dhCl_StatOld['RageMax'] = dhCl_RageMax
- dhCl_StatOld['EnergyMax'] = dhCl_EnergyMax
-
- dhCl_StatOld['Agi'] = dhCl_Agi
- dhCl_StatOld['Cha'] = dhCl_Cha
- dhCl_StatOld['Int'] = dhCl_Int
- dhCl_StatOld['Lor'] = dhCl_Lor
- dhCl_StatOld['Luc'] = dhCl_Luc
- dhCl_StatOld['Per'] = dhCl_Per
- dhCl_StatOld['Str'] = dhCl_Str
- !!~~#
-
- !!~~ Get new stats
- gs 'DH_Classes', $.newClass
-
- $dhCh_Class[$.character] = $dhCl_Class
-
- dhCh_HealthMax[$.character] += dhCl_HealthMax
- dhCh_StaminaMax[$.character] += dhCl_StaminaMax
- dhCh_ManaMax[$.character] += dhCl_ManaMax
- dhCh_RageMax[$.character] += dhCl_RageMax
- dhCh_EnergyMax[$.character] += dhCl_EnergyMax
-
- dhCh_Agi[$.character] += dhCl_Agi
- dhCh_Cha[$.character] += dhCl_Cha
- dhCh_Int[$.character] += dhCl_Int
- dhCh_Lor[$.character] += dhCl_Lor
- dhCh_Luc[$.character] += dhCl_Luc
- dhCh_Per[$.character] += dhCl_Per
- dhCh_Str[$.character] += dhCl_Str
- !!~~#
-
- !!~~ Store stat changes
- dhCl_StatDif['HealthMax'] = dhCl_HealthMax - dhCl_StatOld['HealthMax']
- dhCl_StatDif['StaminaMax'] = dhCl_StaminaMax - dhCl_StatOld['StaminaMax']
- dhCl_StatDif['ManaMax'] = dhCl_ManaMax - dhCl_StatOld['ManaMax']
- dhCl_StatDif['RageMax'] = dhCl_RageMax - dhCl_StatOld['RageMax']
- dhCl_StatDif['EnergyMax'] = dhCl_EnergyMax - dhCl_StatOld['EnergyMax']
-
- dhCl_StatDif['Agi'] = dhCl_Agi - dhCl_StatOld['Agi']
- dhCl_StatDif['Cha'] = dhCl_Cha - dhCl_StatOld['Cha']
- dhCl_StatDif['Int'] = dhCl_Int - dhCl_StatOld['Int']
- dhCl_StatDif['Lor'] = dhCl_Lor - dhCl_StatOld['Lor']
- dhCl_StatDif['Luc'] = dhCl_Luc - dhCl_StatOld['Luc']
- dhCl_StatDif['Per'] = dhCl_Per - dhCl_StatOld['Per']
- dhCl_StatDif['Str'] = dhCl_Str - dhCl_StatOld['Str']
-
- $dhCl_StatDifTxT['HealthMax'] = iif(dhCl_StatDif['HealthMax'] >= 0, '+' + str(dhCl_StatDif['HealthMax']), str(dhCl_StatDif['HealthMax']))
- $dhCl_StatDifTxT['StaminaMax'] = iif(dhCl_StatDif['StaminaMax'] >= 0, '+' + str(dhCl_StatDif['StaminaMax']), str(dhCl_StatDif['StaminaMax']))
- $dhCl_StatDifTxT['ManaMax'] = iif(dhCl_StatDif['ManaMax'] >= 0, '+' + str(dhCl_StatDif['ManaMax']), str(dhCl_StatDif['ManaMax']))
- $dhCl_StatDifTxT['RageMax'] = iif(dhCl_StatDif['RageMax'] >= 0, '+' + str(dhCl_StatDif['RageMax']), str(dhCl_StatDif['RageMax']))
- $dhCl_StatDifTxT['EnergyMax'] = iif(dhCl_StatDif['EnergyMax'] >= 0, '+' + str(dhCl_StatDif['EnergyMax']), str(dhCl_StatDif['EnergyMax']))
-
- $dhCl_StatDifTxT['Agi'] = iif(dhCl_StatDif['Agi'] >= 0, '+' + str(dhCl_StatDif['Agi']), str(dhCl_StatDif['Agi']))
- $dhCl_StatDifTxT['Cha'] = iif(dhCl_StatDif['Cha'] >= 0, '+' + str(dhCl_StatDif['Cha']), str(dhCl_StatDif['Cha']))
- $dhCl_StatDifTxT['Int'] = iif(dhCl_StatDif['Int'] >= 0, '+' + str(dhCl_StatDif['Int']), str(dhCl_StatDif['Int']))
- $dhCl_StatDifTxT['Lor'] = iif(dhCl_StatDif['Lor'] >= 0, '+' + str(dhCl_StatDif['Lor']), str(dhCl_StatDif['Lor']))
- $dhCl_StatDifTxT['Luc'] = iif(dhCl_StatDif['Luc'] >= 0, '+' + str(dhCl_StatDif['Luc']), str(dhCl_StatDif['Luc']))
- $dhCl_StatDifTxT['Per'] = iif(dhCl_StatDif['Per'] >= 0, '+' + str(dhCl_StatDif['Per']), str(dhCl_StatDif['Per']))
- $dhCl_StatDifTxT['Str'] = iif(dhCl_StatDif['Str'] >= 0, '+' + str(dhCl_StatDif['Str']), str(dhCl_StatDif['Str']))
- !!~~#
- end
- if $ARGS[0] = 'PrintStatChanges':
- $.elementId = $ARGS[1]
-
- !!~~ Gained
- IF (dhCl_StatDif['HealthMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'HealthMax', 'Max Health', 'health')
- IF (dhCl_StatDif['StaminaMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'StaminaMax', 'Max Stamina', 'stamina')
- IF (dhCl_StatDif['ManaMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'ManaMax', 'Max Mana', 'mana')
- IF (dhCl_StatDif['RageMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'RageMax', 'Max Rage', 'rage')
- IF (dhCl_StatDif['EnergyMax'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'EnergyMax', 'Max Energy', 'energy')
- IF (dhCl_StatDif['Agi'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Agi', 'Agility', 'agi')
- IF (dhCl_StatDif['Cha'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Cha', 'Charisma', 'cha')
- IF (dhCl_StatDif['Int'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Int', 'Intellect', 'int')
- IF (dhCl_StatDif['Lor'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Lor', 'Lore', 'lor')
- IF (dhCl_StatDif['Luc'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Luc', 'Luck', 'luc')
- IF (dhCl_StatDif['Per'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Per', 'Perception', 'per')
- IF (dhCl_StatDif['Str'] > 0): func('DH_Classes', 'PrintStatGain', $.elementId, 'Str', 'Strength', 'str')
- !!~~#
-
- !!~~ Lost
- IF (dhCl_StatDif['HealthMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'HealthMax', 'Max Health', 'health')
- IF (dhCl_StatDif['StaminaMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'StaminaMax', 'Max Stamina', 'stamina')
- IF (dhCl_StatDif['ManaMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'ManaMax', 'Max Mana', 'mana')
- IF (dhCl_StatDif['RageMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'RageMax', 'Max Rage', 'rage')
- IF (dhCl_StatDif['EnergyMax'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'EnergyMax', 'Max Energy', 'energy')
- IF (dhCl_StatDif['Agi'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Agi', 'Agility', 'agi')
- IF (dhCl_StatDif['Cha'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Cha', 'Charisma', 'cha')
- IF (dhCl_StatDif['Int'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Int', 'Intellect', 'int')
- IF (dhCl_StatDif['Lor'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Lor', 'Lore', 'lor')
- IF (dhCl_StatDif['Luc'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Luc', 'Luck', 'luc')
- IF (dhCl_StatDif['Per'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Per', 'Perception', 'per')
- IF (dhCl_StatDif['Str'] < 0): func('DH_Classes', 'PrintStatLoss', $.elementId, 'Str', 'Strength', 'str')
- !!~~#
- end
- if $ARGS[0] = 'PrintStatGain':
- $.elementId = $ARGS[1]
- $.stat = $ARGS[2]
- $.statText = $ARGS[3]
- $.statColor = $ARGS[4]
-
- func('writeN', $.elementId)
- func('DH_Screen', 'tooltip', $.elementId, 'From changing class.')
-
- func('write', $.elementId, 'Gained', 'c:' + $Wf_Colors['gain'])
- func('writes', $.elementId, $dhCl_StatDifTxt['<<$.stat>>'], 'c:' + $Wf_Colors['num'])
- func('writes', $.elementId, $.statText, 'c:' + $Wf_Colors['<<$.statColor>>'])
- func('DH_Screen', 'tooltipend', $.elementId)
- end
- if $ARGS[0] = 'PrintStatLoss':
- $.elementId = $ARGS[1]
- $.stat = $ARGS[2]
- $.statText = $ARGS[3]
- $.statColor = $ARGS[4]
-
- func('writeN', $.elementId)
- func('DH_Screen', 'tooltip', $.elementId, 'From changing class.')
-
- func('write', $.elementId, 'Lost', 'c:' + $Wf_Colors['loss'])
- func('writes', $.elementId, $dhCl_StatDifTxt['<<$.stat>>'], 'c:' + $Wf_Colors['num'])
- func('writes', $.elementId, $.statText, 'c:' + $Wf_Colors['<<$.statColor>>'])
- func('DH_Screen', 'tooltipend', $.elementId)
- end
- if $ARGS[0] = 'None':
- $dhCl_Class = 'None'
-
- dhCl_HealthMax = 5
- dhCl_StaminaMax = 5
- dhCl_ManaMax = 0
- dhCl_RageMax = 0
- dhCl_EnergyMax = 0
-
- dhCl_Agi = 1
- dhCl_Cha = 1
- dhCl_Int = 1
- dhCl_Lor = 1
- dhCl_Luc = 1
- dhCl_Per = 1
- dhCl_Str = 1
- end
- if $ARGS[0] = 'Beater':
- $dhCl_Class = 'Beater'
-
- dhCl_HealthMax = 999
- dhCl_StaminaMax = 999
- dhCl_ManaMax = 999
- dhCl_RageMax = 999
- dhCl_EnergyMax = 999
-
- dhCl_Agi = 99
- dhCl_Cha = 99
- dhCl_Int = 99
- dhCl_Lor = 99
- dhCl_Luc = 99
- dhCl_Per = 99
- dhCl_Str = 99
- end
- if $ARGS[0] = 'Brute':
- $dhCl_Class = 'Brute'
-
- dhCl_HealthMax = 15
- dhCl_StaminaMax = 5
- dhCl_ManaMax = 0
- dhCl_RageMax = 10
- dhCl_EnergyMax = 0
-
- dhCl_Agi = 1
- dhCl_Cha = 1
- dhCl_Int = 1
- dhCl_Lor = 2
- dhCl_Luc = 1
- dhCl_Per = 1
- dhCl_Str = 4
- end
- if $ARGS[0] = 'Trickster':
- $dhCl_Class = 'Trickster'
-
- dhCl_HealthMax = 5
- dhCl_StaminaMax = 5
- dhCl_ManaMax = 20
- dhCl_RageMax = 0
- dhCl_EnergyMax = 0
-
- dhCl_Agi = 1
- dhCl_Cha = 1
- dhCl_Int = 4
- dhCl_Lor = 2
- dhCl_Luc = 1
- dhCl_Per = 1
- dhCl_Str = 1
- end
- if $ARGS[0] = 'Pickpocket':
- $dhCl_Class = 'Pickpocket'
-
- dhCl_HealthMax = 8
- dhCl_StaminaMax = 10
- dhCl_ManaMax = 0
- dhCl_RageMax = 0
- dhCl_EnergyMax = 12
-
- dhCl_Agi = 2
- dhCl_Cha = 1
- dhCl_Int = 1
- dhCl_Lor = 2
- dhCl_Luc = 2
- dhCl_Per = 2
- dhCl_Str = 1
- end
- --- DH_Classes ---------------------------------
|