/
500_mage_psion.tpa
executable file
·379 lines (308 loc) · 16.4 KB
/
500_mage_psion.tpa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
//__________________________________________________________________________________
//__________________________________________________________________________________
//
// PSIONIC WIZARD
//__________________________________________________________________________________
//__________________________________________________________________________________
DEFINE_ACTION_FUNCTION cerebremancer_kit BEGIN
//ADD CEREBREMANCER___________________________________________________________________
//
ADD_KIT ~D5_CEREBRO~
//WEAPON PROFICIENCIES________________________________________________________________
//11 T S F Q S S
//10 L S W C L U W I
//9 A M B L S O I W A A O N
//8 R A A O H H M A I R C S R G
//7 G L M S N O A I R H L T R L H 2 D L 2 E E E E E E E E E E E
//6 E L S I T G R N K T D H A M E O O O H A E W E E E E E E E E X X X X X X X X X X X
//5 S S S B P S A S T D A A A A S L O R S N R S A N W E X X X X X X X X T T T T T T T T T T T
//4 W W P L I S R W S E T R G M C P B R M S S G T D L N D E A T T T T T T T T R R R R R R R R R R R
//3 O O B E U K A I D O W A D A W G M L E E N A T B B B A I D S A P R R R R R R R R A A A A A A A A A A A
//2 R R O A N E X L S R O X S N A E E U A R I C A O O O R N E H P O A A A A A A A A 1 1 1 1 1 1 1 1 1 1 2
//1 D D W R T D E E W D R E W A K R R B R D N E F W W W T G D I O N 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
~D5_CEREBRO 0 0 0 0 0 0 0 0~
~D5_CEREBRO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
//MINIMUM KIT STATS___________________________________________________________________
// STR DEX CON INT WIS CHR
~D5_CEREBRO 0 0 9 12 9 0~
//KIT STAT MODIFIERS__________________________________________________________________
// STR DEX CON INT WIS CHR
~D5_CEREBRO 0 0 0 0 0 0~
//REQUIREMENTS TO DUAL TO THIS KIT____________________________________________________
// STR DEX CON INT WIS CHR
~D5_CEREBRO 0 0 0 17 0 0~
//REQUIREMENTS TO DUAL FROM THIS KIT__________________________________________________
// STR DEX CON INT WIS CHR
~D5_CEREBRO 0 0 0 15 0 0~
//ALIGNMENT RESTRICTIONS______________________________________________________________
// LG LN LE NG TN NE CG CN CE
~D5_CEREBRO 1 1 1 1 1 1 0 0 0~
//DUAL CLASS OPTIONS__________________________________________________________________
// FT CL MA TH DR RA
~D5_CEREBRO 0 0 0 0 0 0~
//KIT ABILITIES 2DA FILE______________________________________________________________
~will_to_power/data/kit/d5psima.2da~
//RACIAL KIT AVAILABILITY_____________________________________________________________
~~
//UNUSABLE FLAGS AND KIT BASE CLASS___________________________________________________
//CLASSES: Mage = 1, Fighter = 2, Cleric=3, Thief = 4, Bard = 5
// Paladin 6, Druid = 11, Ranger = 12, Sorcerer = 19
// Monk = 20
~0x00000200 14~
//HIGH LEVEL ABILITIES ABBREVIATION___________________________________________________
~Ma0~
//TOB STARTING EQUIPMENT______________________________________________________________
~LEAT14 * HELM07 BAG25 RING06 RING31 CLCK02 BOOT01 AMUL19 BRAC16 BELT06 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN04,2 POTN14,5 BOW18 SW1H39 STAF08~
//CHARACTER CREATION KIT DESCRIPTION__________________________________________________
SAY @501
SAY @502
SAY @503
//____________________________________________________________________________________
//EE KIT EXTRAS_______________________________________________________________________
//
ACTION_IF GAME_IS ~bgee bg2ee eet iwdee~ THEN BEGIN
LAF fl#add_kit_ee
INT_VAR
briefdesc = RESOLVE_STR_REF (@503)
fallen = 0
STR_VAR
kit_name = D5_CEREBRO
clswpbon = ~0 0 3~
clsrcreq = ~1 1 1 1 1 1 1~
END
END
//____________________________________________________________________________________
COPY ~will_to_power/data/kit/d5psima.2da~ ~override~
ACTION_IF !(FILE_EXISTS_IN_GAME ~d5ps000.bam~) BEGIN
COPY ~will_to_power/data/d5ps000.bam~ ~override~
END
COPY ~will_to_power/data/kit/d5pzicm.spl~ ~override~
SAY NAME1 @103
SAY UNIDENTIFIED_DESC @103
LPF ALTER_SPELL_HEADER INT_VAR target = 5 location = 4 STR_VAR icon = ~d5ps000~ END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = ~d5pzicm~ END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = ~d5pswt_~ END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = ~d5pswt0~ END
COPY ~will_to_power/data/kit/d5pzicm.eff~ ~override~
COPY ~will_to_power/data/kit/d5pzicm.cre~ ~override~
COMPILE ~will_to_power/data/kit/d5pzicm.baf~
//APPEND ~d5psima.2da~ ~PSI_PTS AP_D5PSP01 AP_D5PSP4B AP_D5PSP4C AP_D5PSP4D AP_D5PSP4E AP_D5PSP4F AP_D5PSP4G AP_D5PSP4H AP_D5PSP4I AP_D5PSP4J AP_D5PSP4K AP_D5PSP4L AP_D5PSP4M AP_D5PSP4N AP_D5PSP4O AP_D5PSP4P AP_D5PSP4Q AP_D5PSP4R AP_D5PSP4S AP_D5PSP4T **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ~ UNLESS ~PSI_PTS~
COPY ~%MOD_FOLDER%/misc/mxsplps2.2da~ ~override~
ACTION_IF !(FILE_EXISTS_IN_GAME ~d5pspz2.spl~) BEGIN
LAF apply_psp_table STR_VAR psp_table = ~mxsplps2~ psp_spl = ~d5pspz2~ END
END
APPEND ~d5psima.2da~ ~PSI_PTS AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 AP_D5PSPZ2 ~ UNLESS ~PSI_PTS~
//____________________________________________________________________________________
LAF ~DEFINE_FNP_KIT_INFO~
INT_VAR
u_leather_armor = 1
u_chain_armor = 0
u_plate_armor = 0
u_club_staff = 1
u_hammers = 0
u_maces = 0
u_flails = 0
u_axes = 0
u_daggers = 1
u_short_swords = 1
u_long_swords = 1
u_scimitars = 1
u_katanas = 0
u_bastard_swords = 0
u_2hand_swords = 0
u_halberds = 0
u_spears = 0
u_darts = 1
u_slings = 1
u_bows = 1
u_crossbows = 1
STR_VAR
clab_name = ~d5psima~
class = ~cleric_mage~
END
// no need to actually apply spheres - if the sphere system already exists, we'll just side-step it
ADD_KIT ~D5_CEREBRO_MENU~
//WEAPON PROFICIENCIES________________________________________________________________
//11 T S F Q S S
//10 L S W C L U W I
//9 A M B L S O I W A A O N
//8 R A A O H H M A I R C S R G
//7 G L M S N O A I R H L T R L H 2 D L 2 E E E E E E E E E E E
//6 E L S I T G R N K T D H A M E O O O H A E W E E E E E E E E X X X X X X X X X X X
//5 S S S B P S A S T D A A A A S L O R S N R S A N W E X X X X X X X X T T T T T T T T T T T
//4 W W P L I S R W S E T R G M C P B R M S S G T D L N D E A T T T T T T T T R R R R R R R R R R R
//3 O O B E U K A I D O W A D A W G M L E E N A T B B B A I D S A P R R R R R R R R A A A A A A A A A A A
//2 R R O A N E X L S R O X S N A E E U A R I C A O O O R N E H P O A A A A A A A A 1 1 1 1 1 1 1 1 1 1 2
//1 D D W R T D E E W D R E W A K R R B R D N E F W W W T G D I O N 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
~D5_CEREBRO_MENU 0 0 0 0 0 0 0 0~
~D5_CEREBRO_MENU 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
//MINIMUM KIT STATS___________________________________________________________________
// STR DEX CON INT WIS CHR
~D5_CEREBRO_MENU 0 0 9 12 9 0~
//KIT STAT MODIFIERS__________________________________________________________________
// STR DEX CON INT WIS CHR
~D5_CEREBRO_MENU 0 0 0 0 0 0~
//REQUIREMENTS TO DUAL TO THIS KIT____________________________________________________
// STR DEX CON INT WIS CHR
~D5_CEREBRO_MENU 0 0 0 17 0 0~
//REQUIREMENTS TO DUAL FROM THIS KIT__________________________________________________
// STR DEX CON INT WIS CHR
~D5_CEREBRO_MENU 18 18 18 18 18 18~
//ALIGNMENT RESTRICTIONS______________________________________________________________
// LG LN LE NG TN NE CG CN CE
~D5_CEREBRO_MENU 1 1 1 1 1 1 0 0 0~
//DUAL CLASS OPTIONS__________________________________________________________________
// FT CL MA TH DR RA
~D5_CEREBRO_MENU 1 1 0 0 0 0~
//KIT ABILITIES 2DA FILE______________________________________________________________
~will_to_power/data/kit/d5psimam.2da~
//RACIAL KIT AVAILABILITY_____________________________________________________________
~K_M_D K_M_E K_M_G K_M_H K_M_HE K_M_HL K_M_HO~
//UNUSABLE FLAGS AND KIT BASE CLASS___________________________________________________
//CLASSES: Mage = 1, Fighter = 2, Cleric=3, Thief = 4, Bard = 5
// Paladin 6, Druid = 11, Ranger = 12, Sorcerer = 19
// Monk = 20
~0x00000200 1~
//HIGH LEVEL ABILITIES ABBREVIATION___________________________________________________
~Ma0~
//TOB STARTING EQUIPMENT______________________________________________________________
~LEAT14 * HELM07 BAG25 RING06 RING31 CLCK02 BOOT01 AMUL19 BRAC16 BELT06 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN04,2 POTN14,5 BOW18 SW1H39 STAF08~
//CHARACTER CREATION KIT DESCRIPTION__________________________________________________
SAY @501
SAY @502
SAY @503
//____________________________________________________________________________________
//EE KIT EXTRAS_______________________________________________________________________
//
ACTION_IF GAME_IS ~bgee bg2ee eet iwdee~ THEN BEGIN
LAF fl#add_kit_ee
INT_VAR
briefdesc = RESOLVE_STR_REF (@503)
fallen = 0
STR_VAR
kit_name = D5_CEREBRO_MENU
hpclass = ~HPWIZ~
clswpbon = ~0 0 3~
clsrcreq = ~1 1 1 1 1 1 1~
END
END
//____________________________________________________________________________________
COPY ~will_to_power/data/kit/d5psimam.2da~ ~override~
LAF ~DEFINE_FNP_KIT_INFO~
INT_VAR
u_leather_armor = 1
u_chain_armor = 0
u_plate_armor = 0
u_club_staff = 1
u_hammers = 0
u_maces = 0
u_flails = 0
u_axes = 0
u_daggers = 1
u_short_swords = 1
u_long_swords = 1
u_scimitars = 1
u_katanas = 0
u_bastard_swords = 0
u_2hand_swords = 0
u_halberds = 0
u_spears = 0
u_darts = 1
u_slings = 1
u_bows = 1
u_crossbows = 1
STR_VAR
clab_name = ~d5psimam~
class = ~cleric_mage~
END
//____________________________________________________________________________________
LAM ~READ_FNP_KIT_INFO~
ACTION_IF FILE_EXISTS_IN_GAME ~d5__fnp_usability.d5~ BEGIN
LAF apply_fnp_usability STR_VAR clab_name = ~d5psima~ END
LAF apply_fnp_usability STR_VAR clab_name = ~d5psimam~ END
END
//LAF no_cleric_spells STR_VAR clab_table = ~d5psima~ END
// append psi.2da, and apply qdmulti
COPY_EXISTING ~d5psima.2da~ ~override~
LPM remove_blank_lines
APPEND_FILE ~override/d5_psi.2da~
IF_EXISTS
LAF qd_multiclass
STR_VAR
kit_name = ~D5_CEREBRO~
kit_clab = ~d5psima~
base_class = ~P~
END
//KIT IDENTIFIER FOR PATCHING LATER___________________________________________________
//
OUTER_SET cerebremancer_code = (0x4000 + %D5_CEREBRO%)
//____________________________________________________________________________________
//patch for Project Mind______________________________________________________________
//
APPEND ~splprot.2da~ ~D5_KIT_IS%TAB%152%TAB%-1%TAB%1~ UNLESS ~D5_KIT_IS~
COPY_EXISTING ~splprot.2da~ ~override~
COUNT_2DA_COLS cols
READ_2DA_ENTRIES_NOW rows cols
FOR (row = 1; row < rows; ++row) BEGIN
READ_2DA_ENTRY_FORMER rows row 0 ~stat~
PATCH_IF ~%stat%~ STRING_EQUAL_CASE ~D5_KIT_IS~ BEGIN
SET kit_is_row = %row%
END
END
BUT_ONLY
ACTION_IF FILE_EXISTS_IN_GAME ~projimag.spl~ BEGIN
COPY_EXISTING ~projimag.spl~ ~override~
LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %cerebremancer_code% parameter2 = %kit_is_row% timing = 1 STR_VAR resource = ~d5ps511b~ END
BUT_ONLY
END
//____________________________________________________________________________________
//SCRIPTS ETC.________________________________________________________________________
//
EXTEND_TOP ~d5_psi.bcs~ ~will_to_power/data/kit/d5_cerebro.baf~
//____________________________________________________________________________________
//NO WILD TALENT______________________________________________________________________
//
COPY_EXISTING ~d5pswt_.spl~ ~override~
LPF ADD_SPELL_EFFECT INT_VAR insert-point = 0 opcode = 318 target = 1 parameter1 = %cerebremancer_code% parameter2 = %kit_is_row% timing = 0 duration = 0 STR_VAR resource = ~d5pswt_~ END
IF_EXISTS BUT_ONLY
//____________________________________________________________________________________
//NO CLERIC STRONGHOLD________________________________________________________________
//
COPY_EXISTING ~ar0900.bcs~ ~override~
DECOMPILE_AND_PATCH BEGIN
REPLACE_TEXTUALLY ~\(!Kit(Player1,GODHELM)[ %TAB%%LNL%%MNL%%WNL%]+!Kit(Player1,GODTALOS)\)~ ~\1 !Kit(Player1,D5_CEREBRO)~
REPLACE_TEXTUALLY ~\(!Kit(Player1,GODLATHANDER)[ %TAB%%LNL%%MNL%%WNL%]+!Kit(Player1,GODTALOS)\)~ ~\1 !Kit(Player1,D5_CEREBRO)~
REPLACE_TEXTUALLY ~\(!Kit(Player1,GODLATHANDER)[ %TAB%%LNL%%MNL%%WNL%]+!Kit(Player1,GODHELM)\)~ ~\1 !Kit(Player1,D5_CEREBRO)~
END
IF_EXISTS BUT_ONLY
//____________________________________________________________________________________
/*
//PSIONIC HLA TABLES__________________________________________________________________
//
LAF action_remove_hla STR_VAR kit_name = ~D5_SOULBLADE~ remove_ability = ~GA_SPCL902~ END
LAF action_remove_hla STR_VAR kit_name = ~D5_SOULBLADE~ remove_ability = ~GA_SPCL903~ END
LAF action_remove_hla STR_VAR kit_name = ~D5_SOULBLADE~ remove_ability = ~GA_SPCL908~ END
LAF action_add_hla STR_VAR kit_name = ~D5_SOULBLADE~ ability = ~AP_D5PSIFZ~ num_allowed = ~6~ END
LAF action_add_hla STR_VAR kit_name = ~D5_SOULBLADE~ ability = ~AP_D5_RFD1~ num_allowed = ~3~ END
LAF action_add_hla STR_VAR kit_name = ~D5_SOULBLADE~ ability = ~GA_D5_RFD5~ num_allowed = ~1~ END
ACTION_IF FILE_EXISTS_IN_GAME ~tg#toug.spl~ BEGIN
LAF action_add_hla STR_VAR kit_name = ~D5_SOULBLADE~ ability = ~AP_TG#TOUG~ num_allowed = ~5~ END
END
//____________________________________________________________________________________
*/
//make items work with psionics_______________________________________________________
//
// potion of clarity: +12 psps
COPY_EXISTING ~potn21.itm~ ~override~
LPF ADD_ITEM_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %cerebremancer_code% parameter2 = %kit_is_row% timing = 1 STR_VAR resource = ~d5ptn21~ END
IF_EXISTS BUT_ONLY
//potion of power: +12 psps...?
COPY_EXISTING ~potn41.itm~ ~override~
LPF ADD_ITEM_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %cerebremancer_code% parameter2 = %kit_is_row% timing = 1 STR_VAR resource = ~d5ptn21~ END
IF_EXISTS BUT_ONLY
// illithid brine: +30 psps (and resist psionics)
COPY_EXISTING ~misc9y.itm~ ~override~
LPF ADD_ITEM_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %cerebremancer_code% parameter2 = %kit_is_row% timing = 1 STR_VAR resource = ~d5msc9y~ END
IF_EXISTS BUT_ONLY
//____________________________________________________________________________________
END // end function