/
bpbg_ring.tpa
executable file
·64 lines (51 loc) · 3.02 KB
/
bpbg_ring.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
DEFINE_ACTION_FUNCTION adjust_rings BEGIN
//
// change the mandated ring to hijack the way dying works
//
LAF d5_resolve_state STR_VAR new_state_id = ~D5_BP_DEAD~ RET new_state_ind END
OUTER_SET bp_dead_state = %new_state_ind%
APPEND ~splprot.2da~ ~D5_CURHP_LESS%TAB%0%TAB%-1%TAB%2~ UNLESS ~D5_CURHP_LESS~
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_CURHP_LESS~) BEGIN
SET curhp_less_row = %row%
END
END
BUT_ONLY
COPY_EXISTING ~bprng1.itm~ ~override~
LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 177 target = 1 parameter2 = 2 timing = 2 STR_VAR resource = ~d5bprng1~ END
LPF ALTER_EFFECT INT_VAR match_opcode = 208 parameter1 = 2 END
IF_EXISTS BUT_ONLY
CREATE EFF ~d5bprng1~
WRITE_LONG 0x10 232
WRITE_LONG 0x14 1
WRITE_LONG 0x20 20
WRITE_LONG 0x24 2
WRITE_SHORT 0x2c 100
WRITE_ASCII 0x30 ~d5bprng1~ #8
WRITE_LONG 0x48 102
COPY ~%MOD_FOLDER%/data/d5_base.spl~ ~override/d5bprng1.spl~
LPF ALTER_SPELL_HEADER INT_VAR target = 5 END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = 3 parameter2 = %curhp_less_row% timing = 1 STR_VAR resource = ~d5bprng2~ END
// LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %bp_dead_state% parameter2 = 110 timing = 1 STR_VAR resource = ~d5bprng3~ END
LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %bp_dead_state% parameter2 = 110 timing = 0 duration = 1 STR_VAR resource = ~d5bprng1~ END
COPY ~%MOD_FOLDER%/data/d5_base.spl~ ~override/d5bprng2.spl~
LPF ALTER_SPELL_HEADER INT_VAR target = 5 END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 39 target = 1 parameter2 = 1 timing = 0 duration = 126144000 END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 328 target = 1 parameter2 = %bp_dead_state% timing = 0 duration = 126144000 special = 1 END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 100 target = 1 parameter2 = 2 timing = 0 duration = 126144000 END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 0 duration = 9 STR_VAR resource = ~d5bprng1~ END
LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %bp_dead_state% parameter2 = 110 timing = 0 duration = 1 STR_VAR resource = ~d5bprng2~ END
COPY ~%MOD_FOLDER%/data/d5_base.spl~ ~override/d5bpres.spl~
LPF ALTER_SPELL_HEADER INT_VAR target = 1 END
// WRITE_BYTE 0x20 (THIS BOR 0b00000001)
LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 1 STR_VAR resource = ~d5bprng2~ END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 4 duration = 1 STR_VAR resource = ~sppr607~ END
// LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 0 duration = 9 STR_VAR resource = ~d5bprng3~ END
COPY ~%MOD_FOLDER%/data/BPHUB.baf~ ~weidu_external/BP_in_BG/compile/BPHUB.baf~
REPLACE_TEXTUALLY ~D5_BP_DEAD~ ~%bp_dead_state%~
COMPILE ~weidu_external/BP_in_BG/compile/BPHUB.baf~
END // end define function