diff --git a/TomeAndBlood/README.txt b/TomeAndBlood/README.txt index 75df944..f6a2d41 100644 --- a/TomeAndBlood/README.txt +++ b/TomeAndBlood/README.txt @@ -111,7 +111,7 @@ This component defines specialists by what they can do, instead of by what they - Necromancer: you can innately use a modal ability to slow or control nearby undead. Also, the Chill Touch, Ghoul Touch, and Vampiric Touch spells are improved to have special effects against undead, and they are changed into innate abilities only learnable by necromancers. - Transmuter: you get the innate ability to temporarily create and control a golem. -DO NOT install this component if you are going to use the 5E Spellcasting mod. +*DO NOT* install this component if you are going to use the broader 5E Spellcasting mod. COMPONENT 45: Arcane Crafting @@ -170,6 +170,8 @@ This is a wizard kit that prepares and casts spells according to the D&D 5E rule The Arcanist's preparation slots are governed by MXSPLWIZ.2da; any changes you make to the standard wizard spell table will affect how many spells an Arcanist can prepare. The Arcanist's spellcasting slots are set to match the unmodded spell slots of a Dragon Disciple. If you want to change this, you can modify "TomeandBlood/data/arcanist/D5CSTARC.2da" BEFORE installing the mod. +*DO NOT* install this component if you are going to use the broader 5E Spellcasting mod. + COMPONENT 80: Mana Sorcerer This component gives sorcerers (only unkitted sorcerers, for now) an innate ability to use mana points to cast spells instead of spell-level-based casting slots. Your known spells will be the same (you must choose them manually from an item ability) but you will have a pool of mana points instead of spell slots. Casting a spell costs as many points as its spell level; you will start with ~2 mana points and can progress to as many as 120, at level 25. While more flexible, this is generally less firepower than a normal sorcerer has if you tally up their spell slots; so the Mana Sorcerer has a Restorative Meditation innate ability that can be used between fights, which will restore one half of the points you recently spent, rounded down. diff --git a/TomeAndBlood/TomeAndBlood.tp2 b/TomeAndBlood/TomeAndBlood.tp2 index ea98591..6720504 100755 --- a/TomeAndBlood/TomeAndBlood.tp2 +++ b/TomeAndBlood/TomeAndBlood.tp2 @@ -1,6 +1,6 @@ BACKUP ~TomeAndBlood/backup~ AUTHOR ~aquadrizzt~ -VERSION ~0.9.6~ +VERSION ~0.9.7~ ALWAYS @@ -47,7 +47,7 @@ INCLUDE ~TomeAndBlood/comp/setup_spell_schools.tpa~ LAF spell_schools END - +/* // ----------------------------- // 12: SPELL TWEAKS: GENERAL CHANGES (Subtledoctor) // ----------------------------- @@ -62,7 +62,7 @@ COPY_EXISTING ~sw1h01.itm~ ~override/qdtnb_spelltweaks_gen.qd~ //detection for t INCLUDE ~TomeAndBlood/comp/setup_spell_tweaks.tpa~ LAF general_spell_tweaks END - +*/ // ----------------------------- // 13: SPELL TWEAKS: CLONE CHANGES (Subtledoctor) @@ -532,6 +532,8 @@ INCLUDE ~TomeAndBlood/comp/setup_arcanist.tpa~ LAF add_arcanist END +COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5__5E_casting_arcane.d5~ + // ----------------------------- // 85: MANA SORCERER(S) diff --git a/TomeAndBlood/comp/setup_familiars.tpa b/TomeAndBlood/comp/setup_familiars.tpa index df38611..a8007dc 100755 --- a/TomeAndBlood/comp/setup_familiars.tpa +++ b/TomeAndBlood/comp/setup_familiars.tpa @@ -36,7 +36,12 @@ COPY_EXISTING ~kitlist.2da~ ~override~ BUT_ONLY //Remove Find Familiar from Spell Selection menu -APPEND ~HIDESPL.2da~ ~SPWI123 1 0~ +ACTION_IF (FILE_EXISTS_IN_GAME ~hidespl.2da~) AND (GAME_IS ~iwdee~) BEGIN + APPEND ~hidespl.2da~ ~SPWI123 1 0~ +END +ACTION_IF (FILE_EXISTS_IN_GAME ~hidespl.2da~) AND !(GAME_IS ~iwdee~) BEGIN + APPEND ~hidespl.2da~ ~SPWI123 1 0 0~ +END //Replace Scrolls of Find Familiar with Scrolls of Magic Missile. COPY_EXISTING ~scrl77.itm~ ~override/scrl6d.itm~ diff --git a/TomeAndBlood/comp/setup_multiclass_sorcerers.tpa b/TomeAndBlood/comp/setup_multiclass_sorcerers.tpa index d797b2c..2d5a054 100644 --- a/TomeAndBlood/comp/setup_multiclass_sorcerers.tpa +++ b/TomeAndBlood/comp/setup_multiclass_sorcerers.tpa @@ -352,6 +352,29 @@ OUTER_SET fighter_sorcerer_code = (0x4000 + %D5_FIGHTER_SORCERER%) OUTER_SET sorcerer_cleric_code = (0x4000 + %D5_SORCERER_CLERIC%) OUTER_SET sorcerer_thief_code = (0x4000 + %D5_SORCERER_THIEF%) +//5E CASTING COMPAT___________________________________________________________________ +// add 318 effects to exempt multisorc from 5E casting +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_FOR_EACH 5e_spl IN ~d5zz000~ ~d5zzini~ /*~d5zlots~*/ ~d5zltwz~ BEGIN + ACTION_IF (FILE_EXISTS_IN_GAME ~%5e_spl%.spl~) BEGIN + COPY_EXISTING ~%5e_spl%.spl~ ~override~ + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %fighter_sorcerer_code% parameter2 = %kit_is_row% timing = 0 duration = 1 STR_VAR resource = EVAL ~%5e_spl%~ END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %sorcerer_cleric_code% parameter2 = %kit_is_row% timing = 0 duration = 1 STR_VAR resource = EVAL ~%5e_spl%~ END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %sorcerer_thief_code% parameter2 = %kit_is_row% timing = 0 duration = 1 STR_VAR resource = EVAL ~%5e_spl%~ END + BUT_ONLY + END +END + /* COPY_EXISTING ~kit.ids~ ~override~ COUNT_2DA_COLS cols @@ -555,63 +578,63 @@ COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5ssplz.spl~ // level 9 = (108 << 24) // 109 << 28 // ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src1a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src1%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 4) parameter2 = (108 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src1%let%~ END END END ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src2a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src2%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 8) parameter2 = (108 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src2%let%~ END END END ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src3a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src3%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 12) parameter2 = (108 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src3%let%~ END END END ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src4a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src4%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 16) parameter2 = (108 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src4%let%~ END END END ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src5a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src5%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 20) parameter2 = (108 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src5%let%~ END END END ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src6a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src6%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 24) parameter2 = (108 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src6%let%~ END END END ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src7a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src7%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 28) parameter2 = (108 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src7%let%~ END END END ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src8a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src8%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 24) parameter2 = (109 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src8%let%~ END END END ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src9a.spl~ BEGIN - ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ ~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~ BEGIN + ACTION_FOR_EACH let IN ~a~ ~b~ ~c~ /*~d~ ~e~ ~f~ ~g~ ~h~ ~i~ ~j~ ~k~ ~l~ ~m~ ~n~ ~o~ ~p~ ~q~ ~r~ ~s~ ~t~*/ BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5src9%let%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = (1 << 28) parameter2 = (109 + (0x10000 * 1)) timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5src9%let%~ END @@ -655,10 +678,6 @@ ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5src-9.spl~ BEGIN LPF ADD_SPELL_EFFECT INT_VAR opcode = 233 target = 1 parameter1 = ((0 - 1) << 28) parameter2 = (109 + (0x10000 * 1)) timing = 1 END END -COPY ~tomeandblood/data/arcanist/d5cstarc.2da~ ~override~ - LPF arcane_casting_slots STR_VAR table_spl = ~d5zltac~ END -BUT_ONLY - COPY_EXISTING ~mxsplsrc.2da~ ~override~ LPF arcane_casting_slots STR_VAR table_spl = ~d5srslt~ END BUT_ONLY diff --git a/TomeAndBlood/comp/setup_spell_switching.tpa b/TomeAndBlood/comp/setup_spell_switching.tpa index e08139e..78a244c 100755 --- a/TomeAndBlood/comp/setup_spell_switching.tpa +++ b/TomeAndBlood/comp/setup_spell_switching.tpa @@ -99,7 +99,8 @@ COMPILE ~weidu_external/tomeandblood/d5swtch.baf~ //make .spl, .cre, etc._______________________________________________________________ // -COPY ~tomeandblood/lib/semi_spont/d5zgren.bam~ ~override/d5swtch.bam~ +//COPY ~tomeandblood/lib/semi_spont/d5zgren.bam~ ~override/d5swtch.bam~ +COPY ~%MOD_FOLDER%/lib/semi_spont/d5zpurp.bam~ ~override/d5swtch.bam~ COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5swtch.spl~ SAY NAME1 ~Change known spell~ diff --git a/TomeAndBlood/comp/setup_spell_tweaks.tpa b/TomeAndBlood/comp/setup_spell_tweaks.tpa index 412d6ce..442ef30 100755 --- a/TomeAndBlood/comp/setup_spell_tweaks.tpa +++ b/TomeAndBlood/comp/setup_spell_tweaks.tpa @@ -78,79 +78,8 @@ ACTION_IF FILE_EXISTS_IN_GAME ~spwi804.spl~ BEGIN LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %lesser_simulacrum_state% parameter2 = 110 timing = 1 STR_VAR resource = ~d5simul7~ END // and make d5simul7 318 immune if stat = 3 // LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %simulacrum_state% parameter2 = 110 timing = 1 STR_VAR resource = ~d5simul8~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5simul8~ END - - COPY ~TomeAndBlood/data/core/d5_base.spl~ ~override/d5simul6.spl~ - LPF ADD_SPELL_EFFECT INT_VAR opcode = 278 target = 1 parameter1 = (0 - 7) parameter2 = 0 timing = 9 END // -7 thac0 - LPF ADD_SPELL_EFFECT INT_VAR opcode = 191 target = 1 parameter1 = (0 - 7) parameter2 = 0 timing = 9 END // -7 arcane caster level - LPF ADD_SPELL_EFFECT INT_VAR opcode = 18 target = 1 parameter1 = 40 parameter2 = 2 timing = 9 END // -60% hp - LPF ADD_SPELL_EFFECT INT_VAR opcode = 145 target = 1 parameter2 = 1 timing = 1 END // no divine spellcasting - PHP_EACH d5_no_lowspells AS ind => spell BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 2-3 spells - END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src2.spl~ END // for spontaneous casters - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-2.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src3.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-3.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src4.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-4.spl~ END - PHP_EACH d5_no_midspells AS ind => spell BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 4-6 spells - END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src5.spl~ END // for spontaneous casters - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-5.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src6.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-6.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src7.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-7.spl~ END - PHP_EACH d5_no_highspells AS ind => spell BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 7+ spells - END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src8.spl~ END // for spontaneous casters - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-8.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src9.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-9.spl~ END -// LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = (3 << 24) parameter2 = %clone_stat% timing = 9 STR_VAR resource = ~d5simul6~ END - - COPY ~TomeAndBlood/data/core/d5_base.spl~ ~override/d5simul7.spl~ - LPF ADD_SPELL_EFFECT INT_VAR opcode = 278 target = 1 parameter1 = (0 - 5) parameter2 = 0 timing = 9 END // -5 thac0 - LPF ADD_SPELL_EFFECT INT_VAR opcode = 191 target = 1 parameter1 = (0 - 5) parameter2 = 0 timing = 9 END // -5 arcane caster level - LPF ADD_SPELL_EFFECT INT_VAR opcode = 18 target = 1 parameter1 = 60 parameter2 = 2 timing = 9 END // -40% hp - LPF ADD_SPELL_EFFECT INT_VAR opcode = 145 target = 1 parameter2 = 1 timing = 1 END // no divine spellcasting - PHP_EACH d5_no_midspells AS ind => spell BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 4-6 spells - END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src5.spl~ END // for spontaneous casters - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-5.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src6.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-6.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src7.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-7.spl~ END - PHP_EACH d5_no_highspells AS ind => spell BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 7+ spells - END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src8.spl~ END // for spontaneous casters - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-8.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src9.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-9.spl~ END -// LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = (3 << 24) parameter2 = %clone_stat% timing = 9 STR_VAR resource = ~d5simul7~ END - - COPY ~TomeAndBlood/data/core/d5_base.spl~ ~override/d5simul8.spl~ - LPF ADD_SPELL_EFFECT INT_VAR opcode = 278 target = 1 parameter1 = (0 - 3) parameter2 = 0 timing = 9 END // -3 thac0 - LPF ADD_SPELL_EFFECT INT_VAR opcode = 191 target = 1 parameter1 = (0 - 3) parameter2 = 0 timing = 9 END // -3 arcane caster level - LPF ADD_SPELL_EFFECT INT_VAR opcode = 18 target = 1 parameter1 = 75 parameter2 = 2 timing = 9 END // -25% hp - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = ~spwi505~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = ~spwi607~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = ~spwi703~ END - PHP_EACH d5_no_highspells AS ind => spell BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 7+ spells - END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src8.spl~ END // for spontaneous casters - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-8.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src9.spl~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-9.spl~ END -// LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = (3 << 24) parameter2 = %clone_stat% timing = 9 STR_VAR resource = ~d5simul8~ END - LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %mislead_clone_state% parameter2 = 110 timing = 9 STR_VAR resource = ~d5simul8~ END - LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %lesser_simulacrum_state% parameter2 = 110 timing = 9 STR_VAR resource = ~d5simul8~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 72 target = 2 parameter1 = 4 parameter2 = 0 timing = 1 END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 241 target = 2 parameter1 = 0 parameter2 = 1002 duration = 1 END //...custom simulacrum summon // @@ -221,25 +150,53 @@ ACTION_IF FILE_EXISTS_IN_GAME ~spwi804.spl~ BEGIN COPY_EXISTING ~d5si804.spl~ ~override/d5si8049.spl~ LPF ALTER_SPELL_HEADER INT_VAR target = 1 END LPF ALTER_EFFECT INT_VAR silent = 1 target = 2 END + LPF DELETE_EFFECT INT_VAR match_opcode = 233 END + LPF DELETE_EFFECT INT_VAR match_opcode = 206 END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 272 target = 2 timing = 9 STR_VAR resource = ~d5si9ilb~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 2 timing = 4 duration = 2 STR_VAR resource = ~d5si8049~ END COPY_EXISTING ~spwi804.spl~ ~override/d5si9il.spl~ SAY NAME1 @6277 SAY UNIDENTIFIED_DESC @6278 WRITE_LONG 0x34 9 WRITE_ASCII 0x3a ~d5projic~ #8 - LPF ALTER_SPELL_HEADER INT_VAR speed = 5 target = 1 STR_VAR icon = ~d5projib~ END + LPF ALTER_SPELL_HEADER INT_VAR speed = 5 target = 1 range = 40 STR_VAR icon = ~d5projib~ END LPF DELETE_EFFECT END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 2 parameter2 = 1 timing = 1 duration = 0 STR_VAR resource = ~d5si8049~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 2 timing = 4 duration = 2 STR_VAR resource = ~d5si9il~ END COPY ~TomeAndBlood/data/spell_tweaks/d5projic.bam~ ~override~ COPY ~TomeAndBlood/data/spell_tweaks/d5projib.bam~ ~override~ ADD_SPELL ~override/d5si9il.spl~ 2 9 D5_WIZARD_CLONE + + CREATE EFF ~d5si9ilb~ + WRITE_LONG 0x10 146 + WRITE_LONG 0x14 1 + WRITE_LONG 0x1c 0 + WRITE_LONG 0x20 1 + WRITE_LONG 0x24 1 + WRITE_SHORT 0x2c 100 + WRITE_ASCII 0x30 ~d5si9ilb~ #8 + + COPY ~TomeAndBlood/lib/d5_base.spl~ ~override/d5si9ilb.spl~ + LPF ADD_SPELL_EFFECT INT_VAR opcode = 72 target = 2 parameter1 = 4 parameter2 = 0 timing = 1 END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 241 target = 2 parameter1 = 0 parameter2 = 1002 duration = 1 END + LAF RES_NUM_OF_SPELL_NAME STR_VAR spell_name = ~D5_WIZARD_CLONE~ RET spell_res END - ACTION_IF FILE_EXISTS_IN_GAME ~hidespl.2da~ BEGIN + + COPY_EXISTING ~%spell_res%.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 321 STR_VAR match_resource = ~d5si9il~ resource = EVAL ~%spell_res%~ END + + ACTION_IF (FILE_EXISTS_IN_GAME ~hidespl.2da~) AND (GAME_IS ~iwdee~) BEGIN APPEND ~hidespl.2da~ ~%spell_res% 1 0~ END + ACTION_IF (FILE_EXISTS_IN_GAME ~hidespl.2da~) AND !(GAME_IS ~iwdee~) BEGIN + APPEND ~hidespl.2da~ ~%spell_res% 1 0 0~ + END + + ACTION_IF (FILE_EXISTS_IN_GAME ~clabma08.2da~) BEGIN // illusionist kit table + APPEND ~clabma08.2da~ ~PROJ_CLONE **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** GA_%spell_res% **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ~ + END //...8th level: simulacrum // @@ -257,6 +214,52 @@ ACTION_IF FILE_EXISTS_IN_GAME ~spwi804.spl~ BEGIN SAY NAME2 @6275 SAY IDENTIFIED_DESC @6276 END + +//...apply penalties to simulacra, part 2 +// + COPY ~TomeAndBlood/data/core/d5_base.spl~ ~override/d5simul6.spl~ + LPF ADD_SPELL_EFFECT INT_VAR opcode = 278 target = 1 parameter1 = (0 - 7) parameter2 = 0 timing = 9 END // -7 thac0 + LPF ADD_SPELL_EFFECT INT_VAR opcode = 191 target = 1 parameter1 = (0 - 7) parameter2 = 0 timing = 9 END // -7 arcane caster level + LPF ADD_SPELL_EFFECT INT_VAR opcode = 18 target = 1 parameter1 = 40 parameter2 = 2 timing = 9 END // -60% hp + LPF ADD_SPELL_EFFECT INT_VAR opcode = 145 target = 1 parameter2 = 1 timing = 1 END // no divine spellcasting + PHP_EACH d5_no_lowspells AS ind => spell BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 2-4 spells + END + PHP_EACH d5_no_midspells AS ind => spell BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 5-7 spells + END + PHP_EACH d5_no_highspells AS ind => spell BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 8+ spells + END +// LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = (3 << 24) parameter2 = %clone_stat% timing = 9 STR_VAR resource = ~d5simul6~ END + + COPY ~TomeAndBlood/data/core/d5_base.spl~ ~override/d5simul7.spl~ + LPF ADD_SPELL_EFFECT INT_VAR opcode = 278 target = 1 parameter1 = (0 - 5) parameter2 = 0 timing = 9 END // -5 thac0 + LPF ADD_SPELL_EFFECT INT_VAR opcode = 191 target = 1 parameter1 = (0 - 5) parameter2 = 0 timing = 9 END // -5 arcane caster level + LPF ADD_SPELL_EFFECT INT_VAR opcode = 18 target = 1 parameter1 = 60 parameter2 = 2 timing = 9 END // -40% hp + LPF ADD_SPELL_EFFECT INT_VAR opcode = 145 target = 1 parameter2 = 1 timing = 1 END // no divine spellcasting + PHP_EACH d5_no_midspells AS ind => spell BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 5-7 spells + END + PHP_EACH d5_no_highspells AS ind => spell BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 8+ spells + END +// LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = (3 << 24) parameter2 = %clone_stat% timing = 9 STR_VAR resource = ~d5simul7~ END + + COPY ~TomeAndBlood/data/core/d5_base.spl~ ~override/d5simul8.spl~ + LPF ADD_SPELL_EFFECT INT_VAR opcode = 278 target = 1 parameter1 = (0 - 3) parameter2 = 0 timing = 9 END // -3 thac0 + LPF ADD_SPELL_EFFECT INT_VAR opcode = 191 target = 1 parameter1 = (0 - 3) parameter2 = 0 timing = 9 END // -3 arcane caster level + LPF ADD_SPELL_EFFECT INT_VAR opcode = 18 target = 1 parameter1 = 75 parameter2 = 2 timing = 9 END // -25% hp + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = ~spwi505~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = ~spwi607~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = ~spwi703~ END + PHP_EACH d5_no_highspells AS ind => spell BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~%spell%~ END // remove level 8+ spells + END +// LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = (3 << 24) parameter2 = %clone_stat% timing = 9 STR_VAR resource = ~d5simul8~ END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %mislead_clone_state% parameter2 = 110 timing = 9 STR_VAR resource = ~d5simul8~ END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = %lesser_simulacrum_state% parameter2 = 110 timing = 9 STR_VAR resource = ~d5simul8~ END + END CLEAR_ARRAYS @@ -283,7 +286,7 @@ DEFINE_ACTION_FUNCTION invisibility_tweaks BEGIN // INCLUDE ~%MOD_FOLDER%/lib/d5_insanctibility.tpa~ -ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5_insanctibility.d5~ BEGIN +ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5__insanctibility.d5~ BEGIN LAM D5_INSANCTIBILITY END diff --git a/TomeAndBlood/data/level_one_cantrips/mxsplbrd.2da b/TomeAndBlood/data/level_one_cantrips/mxsplbrd.2da index 9d06cf2..f978864 100755 --- a/TomeAndBlood/data/level_one_cantrips/mxsplbrd.2da +++ b/TomeAndBlood/data/level_one_cantrips/mxsplbrd.2da @@ -6,8 +6,8 @@ 4 1 2 0 0 0 0 5 1 3 0 0 0 0 6 1 4 0 0 0 0 -7 1 4 1 0 0 0 -8 1 4 2 0 0 0 +7 2 4 1 0 0 0 +8 2 4 2 0 0 0 9 2 4 3 0 0 0 10 3 4 3 1 0 0 11 3 4 3 2 0 0 diff --git a/TomeAndBlood/data/level_one_cantrips/mxsplwiz.2da b/TomeAndBlood/data/level_one_cantrips/mxsplwiz.2da index f055f15..eae53a7 100755 --- a/TomeAndBlood/data/level_one_cantrips/mxsplwiz.2da +++ b/TomeAndBlood/data/level_one_cantrips/mxsplwiz.2da @@ -2,13 +2,13 @@ 0 1 2 3 4 5 6 7 8 9 1 1 0 0 0 0 0 0 0 0 -2 1 1 0 0 0 0 0 0 0 -3 1 2 0 0 0 0 0 0 0 -4 1 3 0 0 0 0 0 0 0 -5 2 3 1 0 0 0 0 0 0 -6 2 4 2 0 0 0 0 0 0 -7 2 5 2 1 0 0 0 0 0 -8 2 5 3 2 0 0 0 0 0 +2 2 1 0 0 0 0 0 0 0 +3 2 2 0 0 0 0 0 0 0 +4 2 3 0 0 0 0 0 0 0 +5 2 4 1 0 0 0 0 0 0 +6 3 4 2 0 0 0 0 0 0 +7 3 5 2 1 0 0 0 0 0 +8 3 5 3 2 0 0 0 0 0 9 3 5 3 2 1 0 0 0 0 10 3 5 4 2 2 0 0 0 0 11 3 5 4 3 3 0 0 0 0 diff --git a/TomeAndBlood/lang/english/setup.tra b/TomeAndBlood/lang/english/setup.tra index 17a2654..88a0594 100755 --- a/TomeAndBlood/lang/english/setup.tra +++ b/TomeAndBlood/lang/english/setup.tra @@ -1373,7 +1373,7 @@ Casting Time: 5 Area of Effect: One creature Saving Throw: none -This powerful spell creates a clone of the target creature, similar to the 8th-lev el Simulacrum spell. The with 100% of the experience (level, hit dice, skills, etc.) of the caster. The clone created has 75% of the target creature's hit points, and 3-point penalties on to-hit rolls and effective caster level (if relevant). The clone may not use consumable items like potions or scrolls (which are not truly replicated). The clone can, however replicate a substantial amount of the target's arcane magical abilities, if the target has any - able to cast any arcane spells memorized that day, up to 7th spell level. Additionally, the clone is so real and has such a sense of identity that it can successfully use divine magic (if the target creature has such capabilities). +This powerful spell creates a clone of the target creature, similar to the 8th-level Simulacrum spell. The clone created has 75% of the target creature's hit points, and 3-point penalties on to-hit rolls and effective caster level (if relevant). The clone may not use consumable items like potions or scrolls (which are not truly replicated). The clone can, however replicate a substantial amount of the target's arcane magical abilities, if the target has any - able to cast any arcane spells memorized that day, up to 7th spell level. Additionally, the clone is so real and has such a sense of identity that it can successfully use divine magic (if the target creature has such capabilities). ~ @6351 = ~Contingency~ @6352 = ~Contingency diff --git a/TomeAndBlood/lib/d5_armored_casting.tpa b/TomeAndBlood/lib/d5_armored_casting.tpa index 1b37589..604361a 100755 --- a/TomeAndBlood/lib/d5_armored_casting.tpa +++ b/TomeAndBlood/lib/d5_armored_casting.tpa @@ -122,7 +122,7 @@ END //ARMORED CASTING MACRO by SubtleDoctor_______________________________________________ // DEFINE_ACTION_MACRO D5_ARMORED_CASTING BEGIN - ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5_armcast.d5~ BEGIN + ACTION_IF NOT FILE_EXISTS_IN_GAME ~d5__armcast.d5~ BEGIN COPY_EXISTING_REGEXP GLOB ~^.+\.itm$~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_SHORT 0x1c type @@ -202,7 +202,7 @@ DEFINE_ACTION_MACRO D5_ARMORED_CASTING BEGIN WRITE_BYTE 0x19 0 LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = ~d5arcap~ END - COPY_EXISTING ~sw1h04.itm~ ~override/d5_armcast.d5~ // marker file + COPY_EXISTING ~sw1h04.itm~ ~override/d5__armcast.d5~ // marker file END END //__________________________________________________________________________________ diff --git a/TomeAndBlood/lib/d5_insanctibility.tpa b/TomeAndBlood/lib/d5_insanctibility.tpa index 7f8520f..4220617 100755 --- a/TomeAndBlood/lib/d5_insanctibility.tpa +++ b/TomeAndBlood/lib/d5_insanctibility.tpa @@ -3,7 +3,7 @@ // DEFINE_ACTION_MACRO D5_INSANCTIBILITY BEGIN - COPY_EXISTING ~sw1h01.itm~ ~override/d5_insanctibility.d5~ + COPY_EXISTING ~sw1h01.itm~ ~override/d5__insanctibility.d5~ APPEND ~splprot.2da~ ~D5_SANCT%TAB%63%TAB%1%TAB%4~ diff --git a/TomeAndBlood/lib/fnp_compat.tpa b/TomeAndBlood/lib/fnp_compat.tpa index 559bc64..2eb0d91 100644 --- a/TomeAndBlood/lib/fnp_compat.tpa +++ b/TomeAndBlood/lib/fnp_compat.tpa @@ -480,7 +480,7 @@ DEFINE_ACTION_MACRO apply_fnp_spheres BEGIN END BUT_ONLY ACTION_IF (%kit_class% = 3) BEGIN - ACTION_IF (FILE_EXISTS_IN_GAME ~d5_cleric_umd.d5~) && !(FILE_CONTAINS_EVALUATED (~%mod_clab%.2da~ ~AP_D5_UMD~)) BEGIN + ACTION_IF (FILE_EXISTS_IN_GAME ~d5__cleric_umd.d5~) && !(FILE_CONTAINS_EVALUATED (~%mod_clab%.2da~ ~AP_D5_UMD~)) BEGIN APPEND ~%mod_clab%.2da~ ~UMD AP_D5_NUMD **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ~ UNLESS ~AP_D5_NUMD~ END diff --git a/TomeAndBlood/lib/misc_tnb_functions.tpa b/TomeAndBlood/lib/misc_tnb_functions.tpa index dec7b56..e545b11 100755 --- a/TomeAndBlood/lib/misc_tnb_functions.tpa +++ b/TomeAndBlood/lib/misc_tnb_functions.tpa @@ -602,7 +602,7 @@ END // DEFINE_ACTION_FUNCTION sorcerer_spell_learning BEGIN -ACTION_IF !(FILE_EXISTS_IN_GAME ~d5_wiz_learn.d5~) BEGIN +ACTION_IF !(FILE_EXISTS_IN_GAME ~d5__wiz_learn.d5~) BEGIN COPY ~tomeandblood/lib/d5_base.spl~ ~override/d50wspl.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 STR_VAR resource = EVAL ~SPWI908~ END @@ -770,7 +770,7 @@ COPY ~tomeandblood/lib/d5_base.spl~ ~override/d5msor2.spl~ SAY UNIDENTIFIED_DESC @17050 LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 4 duration = 1 STR_VAR resource = ~d5msor1~ END -COPY ~tomeandblood/lib/d5_marker.d5~ ~override/d5_wiz_learn.d5~ +COPY ~tomeandblood/lib/d5_marker.d5~ ~override/d5__wiz_learn.d5~ END diff --git a/TomeAndBlood/lib/semi_spontaneous.tpa b/TomeAndBlood/lib/semi_spontaneous.tpa index dc7c3e0..eb1f38a 100755 --- a/TomeAndBlood/lib/semi_spontaneous.tpa +++ b/TomeAndBlood/lib/semi_spontaneous.tpa @@ -1,5 +1,5 @@ -// v5 - universal +// v5.7 - universal /* @@ -33,7 +33,7 @@ the way it works: DEFINE_ACTION_FUNCTION semi_spontaneous_casting INT_VAR include_arcane = 0 include_divine = 0 BEGIN -ACTION_IF !(FILE_EXISTS_IN_GAME ~d5_semi_spont.d5~) BEGIN +ACTION_IF !(FILE_EXISTS_IN_GAME ~d5__semi_spont.d5~) BEGIN //disable quickspell buttons__________________________________________________________ @@ -166,15 +166,17 @@ COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5z17wz.spl~ COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5z89wz.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 42 target = 1 parameter1 = (0 - 1) parameter2 = 384 timing = 9 END -BUT_ONLY -// this is for... what? to eliminate kited mage bonus slots? +COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5z17dv.spl~ + LPF ADD_SPELL_EFFECT INT_VAR opcode = 62 target = 1 parameter1 = (0 - 1) parameter2 = 127 timing = 9 END + +// this is for... what? to eliminate kitted mage bonus slots? COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5z0slt.spl~ PATCH_IF (MOD_IS_INSTALLED ~TomeAndBlood.tp2~ ~62~) BEGIN // level 1 cantrips - LPF ADD_SPELL_EFFECT INT_VAR opcode = 42 target = 1 parameter1 = (0 - 1) parameter2 = 126 timing = 9 END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 42 target = 1 parameter1 = (0 - 1) parameter2 = 510 /*126*/ timing = 9 END // should cover lvl 8-9 spls too END PATCH_IF !(MOD_IS_INSTALLED ~TomeAndBlood.tp2~ ~62~) BEGIN // level 1 cantrips - LPF ADD_SPELL_EFFECT INT_VAR opcode = 42 target = 1 parameter1 = (0 - 1) parameter2 = 127 timing = 9 END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 42 target = 1 parameter1 = (0 - 1) parameter2 = 511 /*127*/ timing = 9 END // should cover lvl 8-9 spls too END LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 321 target = 1 timing = 1 STR_VAR resource = ~d5z0slt~ END LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = 0 parameter2 = %kit_is_row% timing = 0 duration = 1 STR_VAR resource = ~d5z0slt~ END @@ -182,7 +184,7 @@ COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5z0slt.spl~ /* I think this is only applied once, no need for 2nd copy -COPY_EXISTING ~d500slt.spl~ ~override/d5z1slt.spl~ +COPY_EXISTING ~d5z0slt.spl~ ~override/d5z1slt.spl~ LPF ALTER_EFFECT INT_VAR match_opcode = 321 STR_VAR match_resource = ~d500slt~ resource = ~d501slt~ END */ @@ -201,9 +203,6 @@ COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5zjslt.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 42 target = 1 parameter1 = (0 - 1) parameter2 = 127 timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 321 target = 1 timing = 1 STR_VAR resource = ~d5zjslt~ END -COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5z17dv.spl~ - LPF ADD_SPELL_EFFECT INT_VAR opcode = 62 target = 1 parameter1 = (0 - 1) parameter2 = 127 timing = 9 END - //create advance copies of some spells________________________________________________ // @@ -624,8 +623,8 @@ COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5zprp.spl~ This ability allows the you to prepare a new set of spells for the next day. Upon using the ability, preparation slots will become available in your spellbook, and spellcasting will be disabled. After filling any available preparation slots, you must rest for 8 hours. Upon waking, spellcasting will be re-enabled, and you will be unable to modify the contents of your preparation slots until the next time this ability is used. ~ - WRITE_ASCII 0x3a ~d5zpurp~ #8 - LPF ALTER_SPELL_HEADER INT_VAR target = 7 STR_VAR icon = ~d5zpurp~ END + WRITE_ASCII 0x3a ~d5zgren~ #8 + LPF ALTER_SPELL_HEADER INT_VAR target = 7 STR_VAR icon = ~d5zgren~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END @@ -736,43 +735,40 @@ END ACTION_IF !(FILE_EXISTS_IN_GAME ~d5zprpd.spl~) BEGIN COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5zprpd.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 93 target = 1 parameter1 = 1 parameter2 = 1 timing = 1 END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z89wz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 9 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17dv~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z17wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 STR_VAR resource = ~d5z89wz~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5zprp1~ END // LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5zz145~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5src-1~ END @@ -794,8 +790,8 @@ ACTION_IF !(FILE_EXISTS_IN_GAME ~d5zprpd.spl~) BEGIN LPF ADD_SPELL_EFFECT INT_VAR opcode = 279 target = 1 parameter2 = 2 timing = 9 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 duration = 0 STR_VAR resource = ~d5zz172~ END // LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 4 duration = 1 STR_VAR resource = ~d5zsplz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 4 duration = 1 STR_VAR resource = ~d5zspld~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 4 duration = 1 STR_VAR resource = ~d5zspla~ END +// LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 4 duration = 1 STR_VAR resource = ~d5zspld~ END +// LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 4 duration = 1 STR_VAR resource = ~d5zspla~ END END @@ -804,13 +800,14 @@ END // put this zz000 in the clab tables ACTION_IF !(FILE_EXISTS_IN_GAME ~d5zz000.spl~) BEGIN COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5zz000.spl~ - SAY NAME1 ~initialize 5E spellcasting~ - SAY UNIDENTIFIED_DESC ~initialize 5E spellcasting~ - LPF ALTER_SPELL_HEADER INT_VAR target = 7 STR_VAR icon = ~d5zcast~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 93 target = 1 parameter1 = 1 parameter2 = 1 timing = 1 END + SAY NAME1 ~initialize 5E spellcasting~ + SAY UNIDENTIFIED_DESC ~initialize 5E spellcasting~ + LPF ALTER_SPELL_HEADER INT_VAR target = 7 STR_VAR icon = ~d5zcast~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 93 target = 1 parameter1 = 1 parameter2 = 1 timing = 1 END // LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5zlotz~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 parameter2 = 2 timing = 9 STR_VAR resource = ~d5zlots~ END - LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = 19 parameter2 = 105 timing = 9 STR_VAR resource = ~d5zz000~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 parameter2 = 2 timing = 9 STR_VAR resource = ~d5zlots~ END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = 19 parameter2 = 105 timing = 9 STR_VAR resource = ~d5zz000~ END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 318 target = 1 parameter1 = 2 parameter2 = 112 timing = 9 STR_VAR resource = ~d5zz000~ END END ACTION_IF !(FILE_EXISTS_IN_GAME ~d5zz001.spl~) BEGIN @@ -823,9 +820,9 @@ ACTION_IF !(FILE_EXISTS_IN_GAME ~d5zzini.spl~) BEGIN LPF ADD_SPELL_EFFECT INT_VAR opcode = 326 target = 1 parameter1 = 1 parameter2 = 105 timing = 1 STR_VAR resource = ~d5z0slt~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5zz206~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5znoqk~ END - PATCH_IF (MOD_IS_INSTALLED ~tomeandblood.tp2~ ~62~) BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5z2slt~ END - END +// PATCH_IF (MOD_IS_INSTALLED ~tomeandblood.tp2~ ~62~) BEGIN +// LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5z2slt~ END +// END LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = ~d5zz000~ END // LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5zprpb~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter1 = 0 parameter2 = 1 timing = 1 STR_VAR resource = ~d5zprp1~ END @@ -867,8 +864,8 @@ COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5zstta.spl~ <<<<<<<< d5/d5zclons.2da 2DA V1.0 IND - MEM CASTS TYPE PROCESSED -100 # # # # + MEM CAST TYPE PROCESSED +100 # # # # >>>>>>>> COPY ~d5/d5zclons.2da~ ~override/d5zclons.2da~ @@ -917,6 +914,7 @@ ACTION_IF (IS_AN_INT %burning_hands_strref%) BEGIN PATCH_IF (burning_change = 1) BEGIN LPF ALTER_SPELL_HEADER INT_VAR target = 1 END LPF ALTER_EFFECT INT_VAR match_opcode = 148 opcode = 146 target = 2 STR_VAR match_resource = ~spwi103~ END + WRITE_BYTE 0x1b (THIS BOR 1) END END END @@ -936,7 +934,7 @@ IF_EXISTS BUT_ONLY //____________________________________________________________________________________ -COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5_semi_spont.d5~ +COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5__semi_spont.d5~ END // end marker file check @@ -1036,7 +1034,7 @@ COPY_EXISTING ~d5zclons.2da~ ~override~ INNER_ACTION BEGIN COPY_EXISTING ~%mem_spell%.spl~ ~override~ READ_LONG 0x34 level - BUT_ONLY + IF_EXISTS BUT_ONLY // create innate spell COPY_EXISTING ~%cast_spell%.spl~ ~override/%innate_spell%.spl~ WRITE_SHORT 0x1c 4 @@ -1093,12 +1091,14 @@ COPY_EXISTING ~d5zclons.2da~ ~override~ // make spells adding the innate spell COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/%give_spell%.spl~ LPF ADD_SPELL_EFFECT INT_VAR opcode = 171 target = 1 timing = 9 STR_VAR resource = EVAL ~%innate_spell%~ END -// make 206 spells preventing the .EFF +// make 206 spells preventing the add spell COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/%block_spell%.spl~ WRITE_SHORT 0x1c 4 LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~%give_spell%~ END // add 206 spells to CLAB spell COPY_EXISTING ~d5zz206.spl~ ~override~ + LPF DELETE_EFFECT INT_VAR match_opcode = 146 STR_VAR match_resource = EVAL ~%block_spell%~ END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 STR_VAR match_resource = EVAL ~%block_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%block_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 321 target = 1 timing = 9 STR_VAR resource = EVAL ~%block_spell%~ END // make learn spells canceling the 206 @@ -1112,16 +1112,20 @@ COPY_EXISTING ~d5zclons.2da~ ~override~ ACTION_IF (~%spell_type%~ STRING_EQUAL_CASE ~arcane~) BEGIN ACTION_IF (FILE_EXISTS_IN_GAME ~d5zwot%level%a.spl~) BEGIN COPY_EXISTING ~d5zwot%level%a.spl~ ~override~ + LPF DELETE_EFFECT INT_VAR match_opcode = 146 STR_VAR match_resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END COPY_EXISTING ~d5zwot%level%b.spl~ ~override~ + LPF DELETE_EFFECT INT_VAR match_opcode = 146 STR_VAR match_resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END COPY_EXISTING ~d5zwot%level%c.spl~ ~override~ + LPF DELETE_EFFECT INT_VAR match_opcode = 146 STR_VAR match_resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END COPY_EXISTING ~d5zwot%level%d.spl~ ~override~ + LPF DELETE_EFFECT INT_VAR match_opcode = 146 STR_VAR match_resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%give_spell%~ END @@ -1191,58 +1195,96 @@ END // end define function DEFINE_ACTION_FUNCTION semi_divine_spells BEGIN +// ***** check if cast spell already there... if so use same ind ACTION_IF (FILE_EXISTS_IN_GAME ~d5zclons.2da~) BEGIN + OUTER_SET high_ind = 99 COPY_EXISTING ~d5zclons.2da~ ~override~ COUNT_2DA_COLS cols - COUNT_2DA_ROWS cols rows - READ_2DA_ENTRY (rows - 1) 0 cols last_ind + READ_2DA_ENTRIES_NOW ~r2en_zclons~ cols + FOR (row = 0; row < r2en_zclons; ++row) BEGIN + READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 0 this_ind + PATCH_IF (this_ind > high_ind) BEGIN + SET high_ind = this_ind + END + END BUT_ONLY - OUTER_SET spl_ind = (last_ind + 1) - ACTION_IF !(FILE_EXISTS_IN_GAME ~d5_spheres.d5~) BEGIN + ACTION_IF !(FILE_EXISTS_IN_GAME ~d5__spheres.d5~) BEGIN COPY_EXISTING_REGEXP ~^[Ss][Pp][Pp][Rr][1-7]\([0-4][0-9]\|50\)\.spl$~ ~override~ - PATCH_IF !(FILE_CONTAINS_EVALUATED (~d5zclons.2da~ ~%SOURCE_RES%~)) BEGIN + SET spl_ind = 0 INNER_ACTION BEGIN - APPEND ~d5zclons.2da~ ~%spl_ind% %SOURCE_RES% %SOURCE_RES% divine no ~ + ACTION_IF (FILE_CONTAINS_EVALUATED (~d5zclons.2da~ ~%SOURCE_RES%~)) BEGIN + COPY_EXISTING ~d5zclons.2da~ ~override~ + COUNT_2DA_COLS cols + READ_2DA_ENTRIES_NOW ~r2en_zclons~ cols + FOR (row = 0; row < r2en_zclons; ++row) BEGIN + READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 0 prev_ind + READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 2 cast_spell + PATCH_IF (~%SOURCE_RES%~ STRING_EQUAL_CASE ~%cast_spell%~) BEGIN + SET spl_ind = prev_ind + END + END + BUT_ONLY + END + ACTION_IF (spl_ind = 0) BEGIN + OUTER_SET high_ind = high_ind + 1 + OUTER_SET spl_ind = high_ind + END + APPEND ~d5zclons.2da~ ~%spl_ind% %SOURCE_RES% %SOURCE_RES% divine no ~ UNLESS ~%SOURCE_RES% %SOURCE_RES%~ END - END - SET spl_ind = (spl_ind + 1) BUT_ONLY END // end no FnP - ACTION_IF (FILE_EXISTS_IN_GAME ~d5_spheres.d5~) BEGIN + ACTION_IF (FILE_EXISTS_IN_GAME ~d5__spheres.d5~) BEGIN COPY_EXISTING ~d5fnplst.2da~ ~override~ COUNT_2DA_COLS cols READ_2DA_ENTRIES_NOW ~r2en_fnplst~ cols FOR (row = 0; row < r2en_fnplst; ++row) BEGIN - READ_2DA_ENTRY_FORMER ~r2en_sclons~ row 0 real_spell - READ_2DA_ENTRY_FORMER ~r2en_sclons~ row 1 major_spell - READ_2DA_ENTRY_FORMER ~r2en_sclons~ row 2 minor_spell - PATCH_IF !(FILE_CONTAINS_EVALUATED (~d5zclons.2da~ ~%major_spell%~)) BEGIN - INNER_ACTION BEGIN - APPEND ~d5zclons.2da~ ~%spl_ind% %major_spell% %real_spell% divine no ~ + READ_2DA_ENTRY_FORMER ~r2en_fnplst~ row 0 real_spell + READ_2DA_ENTRY_FORMER ~r2en_fnplst~ row 1 major_spell + READ_2DA_ENTRY_FORMER ~r2en_fnplst~ row 2 minor_spell + READ_2DA_ENTRY_FORMER ~r2en_fnplst~ row 3 focus_spell + SET spl_ind = 0 + INNER_ACTION BEGIN + COPY_EXISTING ~d5zclons.2da~ ~override~ + COUNT_2DA_COLS cols + COUNT_2DA_ROWS cols rows + READ_2DA_ENTRY (rows - 1) 0 cols last_ind + BUT_ONLY + ACTION_IF (FILE_CONTAINS_EVALUATED (~d5zclons.2da~ ~%real_spell%~)) BEGIN + COPY_EXISTING ~d5zclons.2da~ ~override~ + COUNT_2DA_COLS cols + READ_2DA_ENTRIES_NOW ~r2en_zclons~ cols + READ_2DA_ENTRY (r2en_zclons - 1) 0 cols last_ind + FOR (row = 0; row < r2en_zclons; ++row) BEGIN + READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 0 prev_ind + READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 2 cast_spell + PATCH_IF (~%real_spell%~ STRING_EQUAL_CASE ~%cast_spell%~) BEGIN + SET spl_ind = prev_ind + END + END + BUT_ONLY END - END - SET spl_ind = (spl_ind + 1) - PATCH_IF !(~%minor_spell%~ STRING_EQUAL_CASE ~%major_spell%~) BEGIN - PATCH_IF !(~%minor_spell%~ STRING_EQUAL_CASE ~****~) BEGIN - PATCH_IF !(FILE_CONTAINS_EVALUATED (~d5zclons.2da~ ~%minor_spell%~)) BEGIN - INNER_ACTION BEGIN - APPEND ~d5zclons.2da~ ~%spl_ind% %minor_spell% %real_spell% divine no ~ - END + ACTION_IF (spl_ind = 0) BEGIN + OUTER_SET high_ind = high_ind + 1 + OUTER_SET spl_ind = high_ind + END + APPEND ~d5zclons.2da~ ~%spl_ind% %major_spell% %real_spell% divine no ~ UNLESS ~%major_spell% %real_spell%~ +// APPEND ~d5zclons.2da~ ~%spl_ind% %focus_spell% %real_spell% divine no ~ UNLESS ~%focus_spell% %real_spell%~ + ACTION_IF !(~%minor_spell%~ STRING_EQUAL_CASE ~%major_spell%~) BEGIN + ACTION_IF !(~%minor_spell%~ STRING_EQUAL_CASE ~****~) BEGIN + APPEND ~d5zclons.2da~ ~%spl_ind% %minor_spell% %real_spell% divine no ~ UNLESS ~%minor_spell% %real_spell%~ END END END - SET spl_ind = (spl_ind + 1) END BUT_ONLY END // end FnP END - END // end function @@ -1254,12 +1296,23 @@ DEFINE_ACTION_FUNCTION semi_arcane_spells BEGIN ACTION_IF (FILE_EXISTS_IN_GAME ~d5zclons.2da~) BEGIN + OUTER_SET high_ind = 99 + COPY_EXISTING ~d5zclons.2da~ ~override~ + COUNT_2DA_COLS cols + READ_2DA_ENTRIES_NOW ~r2en_zclons~ cols + FOR (row = 0; row < r2en_zclons; ++row) BEGIN + READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 0 this_ind + PATCH_IF (this_ind > high_ind) BEGIN + SET high_ind = this_ind + END + END + BUT_ONLY + COPY_EXISTING ~d5zclons.2da~ ~override~ COUNT_2DA_COLS cols COUNT_2DA_ROWS cols rows READ_2DA_ENTRY (rows - 1) 0 cols last_ind BUT_ONLY - OUTER_SET spl_ind = (last_ind + 1) OUTER_SET scroll_spell_ind = 0 OUTER_SPRINT $scroll_spells(~spell~) ~0~ // ~%scroll_spell_ind%~ @@ -1271,7 +1324,7 @@ ACTION_IF (FILE_EXISTS_IN_GAME ~d5zclons.2da~) BEGIN READ_LONG 0x6a effectsoffset ELSE 0 haslearn = 0 hascast = 0 -// PATCH_IF (headcount = 2) BEGIN +// PATCH_IF (headcount > 1) BEGIN FOR (headcyc = 0; headcyc < headcount ; headcyc = headcyc + 1) BEGIN thishead = 0 READ_SHORT (headoffset + (headcyc * 0x38) + 0x1e) effcount ELSE 0 @@ -1300,7 +1353,7 @@ ACTION_IF (FILE_EXISTS_IN_GAME ~d5zclons.2da~) BEGIN END END END -// END // end has 2 headers +// END // end has >1 headers PATCH_IF (haslearn = 1) AND (hascast = 1) AND (~%resref_cast%~ STRING_EQUAL_CASE ~%resref_learn%~) BEGIN SPRINT $scroll_spells(~%resref_learn%~) ~1~ // ~%scroll_spell_ind%~ SET ++scroll_spell_ind @@ -1321,22 +1374,37 @@ ACTION_IF (FILE_EXISTS_IN_GAME ~d5zclons.2da~) BEGIN ~TG#AEGI~ ~TG#FORS~ ~LI#SCRB~ BEGIN - COPY_EXISTING ~%hla%.spl~ ~override~ - READ_SHORT 0x1c spell_type - PATCH_IF (spell_type = 1) BEGIN - SPRINT $scroll_spells(~%hla%~) ~1~ - END - IF_EXISTS BUT_ONLY + ACTION_IF (FILE_EXISTS_IN_GAME ~%hla%.spl~) BEGIN + COPY_EXISTING ~%hla%.spl~ ~override~ + READ_SHORT 0x1c spell_type + PATCH_IF (spell_type = 1) BEGIN + SPRINT $scroll_spells(~%hla%~) ~1~ + END + IF_EXISTS BUT_ONLY + END END ACTION_PHP_EACH scroll_spells AS arcane_spell => ind BEGIN ACTION_IF (%ind% > 0) BEGIN - ACTION_IF FILE_EXISTS_IN_GAME ~%arcane_spell%.spl~ BEGIN - ACTION_IF !(FILE_CONTAINS_EVALUATED (~d5zclons.2da~ ~%arcane_spell%~)) BEGIN - APPEND ~d5zclons.2da~ ~%spl_ind% %arcane_spell% %arcane_spell% arcane no ~ - OUTER_SET spl_ind = (spl_ind + 1) - END + OUTER_SET spl_ind = 0 + ACTION_IF (FILE_CONTAINS_EVALUATED (~d5zclons.2da~ ~%arcane_spell%~)) BEGIN + COPY_EXISTING ~d5zclons.2da~ ~override~ + COUNT_2DA_COLS cols + READ_2DA_ENTRIES_NOW ~r2en_zclons~ cols + FOR (row = 0; row < r2en_zclons; ++row) BEGIN + READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 0 prev_ind + READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 2 cast_spell + PATCH_IF (~%arcane_spell%~ STRING_EQUAL_CASE ~%cast_spell%~) BEGIN + SET spl_ind = prev_ind + END + END + BUT_ONLY END + ACTION_IF (spl_ind = 0) BEGIN + OUTER_SET high_ind = high_ind + 1 + OUTER_SET spl_ind = high_ind + END + APPEND ~d5zclons.2da~ ~%spl_ind% %arcane_spell% %arcane_spell% arcane no ~ UNLESS ~%arcane_spell% %arcane_spell%~ END END @@ -1362,7 +1430,7 @@ ACTION_IF (FILE_EXISTS_IN_GAME ~d5zclons.2da~) BEGIN BUT_ONLY OUTER_SET spl_ind = (last_ind + 1) - APPEND ~d5zclons.2da~ ~%spl_ind% %new_spell% %cast_spell% %spell_type% no ~ UNLESS ~%new_spell%~ + APPEND ~d5zclons.2da~ ~%spl_ind% %new_spell% %cast_spell% %spell_type% no ~ UNLESS ~%new_spell% %cast_spell%~ END @@ -1387,19 +1455,21 @@ ACTION_IF (FILE_CONTAINS_EVALUATED (~d5zclons.2da~ ~%free_spell%~)) BEGIN COPY_EXISTING ~d5zclons.2da~ ~override~ COUNT_2DA_COLS cols READ_2DA_ENTRIES_NOW ~r2en_zclons~ cols + SET free_spell_ind = 0 FOR (row = 0; row < r2en_zclons; ++row) BEGIN READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 1 mem_spell READ_2DA_ENTRY_FORMER ~r2en_zclons~ row 0 z_ind PATCH_IF (~%mem_spell%~ STRING_EQUAL_CASE ~%free_spell%~) BEGIN SET free_spell_ind = z_ind - END + END END BUT_ONLY - COPY_EXISTING ~%list_spell%.spl~ ~override~ -// LPF ADD_SPELL_EFFECT INT_VAR opcode = 171 target = 1 timing = 9 STR_VAR resource = EVAL ~%free_spell%~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = EVAL ~d5z%free_spell_ind%b~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5z%free_spell_ind%b~ END - BUT_ONLY + ACTION_IF (free_spell_ind > 0) BEGIN + COPY_EXISTING ~%list_spell%.spl~ ~override~ + LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 STR_VAR resource = EVAL ~d5z%free_spell_ind%b~ END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = EVAL ~d5z%free_spell_ind%b~ END + BUT_ONLY + END END END // end function @@ -1701,7 +1771,7 @@ ACTION_DEFINE_ASSOCIATIVE_ARRAY int_nums_lets BEGIN 25 => 7a END -ACTION_IF !(FILE_EXISTS_IN_GAME ~d5_semi_int.d5~) BEGIN +ACTION_IF !(FILE_EXISTS_IN_GAME ~d5__semi_int.d5~) BEGIN // stat-based bonus spells____________________________________________________________ // @@ -1755,8 +1825,8 @@ ACTION_IF (int_bonus_mem_slots = 0) BEGIN LPF ADD_SPELL_EFFECT INT_VAR insert_point = 1 opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5absp2~ END LPF ADD_SPELL_EFFECT INT_VAR insert_point = 1 opcode = 206 target = 1 parameter1 = (0 - 1) timing = 9 STR_VAR resource = ~d5abspb~ END LPF ADD_SPELL_EFFECT INT_VAR insert_point = 1 opcode = 321 target = 1 timing = 9 STR_VAR resource = ~d5abspb~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5zislt~ END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5zjslt~ END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 1 opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5zislt~ END + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 1 opcode = 146 target = 1 parameter2 = 1 timing = 1 STR_VAR resource = ~d5zjslt~ END END COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5intbz.spl~ @@ -1823,7 +1893,7 @@ COPY_EXISTING ~d5zlotf.spl~ ~override~ LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 326 target = 1 parameter1 = %semi_spont_arcane% parameter2 = 110 timing = 1 duration = 0 STR_VAR resource = ~d5zintz~ END IF_EXISTS BUT_ONLY -COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5_semi_int.d5~ +COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5__semi_int.d5~ END @@ -1868,7 +1938,7 @@ ACTION_DEFINE_ASSOCIATIVE_ARRAY cha_nums_lets BEGIN 24 => 5a END -ACTION_IF !(FILE_EXISTS_IN_GAME ~d5_semi_cha.d5~) BEGIN +ACTION_IF !(FILE_EXISTS_IN_GAME ~d5__semi_cha.d5~) BEGIN // stat-based bonus spells____________________________________________________________ // @@ -1994,7 +2064,7 @@ COPY ~%MOD_FOLDER%/lib/semi_spont/d5_base.spl~ ~override/d5cham5a.spl~ LPF ALTER_SPELL_HEADER INT_VAR target = 5 END LPF ADD_SPELL_EFFECT INT_VAR opcode = 95 target = 1 parameter1 = 9 timing = 0 duration = 126144000 END -COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5_semi_cha.d5~ +COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5__semi_cha.d5~ END @@ -2052,7 +2122,7 @@ ACTION_DEFINE_ASSOCIATIVE_ARRAY wis_nums_lets BEGIN 25 => 7a END -ACTION_IF !(FILE_EXISTS_IN_GAME ~d5_semi_wis.d5~) BEGIN +ACTION_IF !(FILE_EXISTS_IN_GAME ~d5__semi_wis.d5~) BEGIN // stat-based bonus spells____________________________________________________________ // @@ -2122,7 +2192,7 @@ COPY_EXISTING ~d5zlotf.spl~ ~override~ LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 326 target = 1 parameter1 = %semi_spont_divine% parameter2 = 110 timing = 1 duration = 0 STR_VAR resource = ~d5zwisz~ END IF_EXISTS BUT_ONLY -COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5_semi_wis.d5~ +COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5__semi_wis.d5~ END @@ -2189,7 +2259,7 @@ BUT_ONLY //wizard +slot items__________________________________________________________________ // -ACTION_IF !(FILE_EXISTS_IN_GAME ~d5_arcane_slot_items.d5~) BEGIN +ACTION_IF !(FILE_EXISTS_IN_GAME ~d5__arcane_slot_items.d5~) BEGIN ACTION_IF (FILE_CONTAINS_EVALUATED (~splstate.ids~ ~D5_MULTI_SORC~)) BEGIN COPY_EXISTING ~splstate.ids~ ~override~ @@ -2709,7 +2779,7 @@ Weight: 0~ END END -COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5_arcane_slot_items.d5~ +COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5__arcane_slot_items.d5~ END @@ -2762,7 +2832,7 @@ BUT_ONLY //priest +slot items__________________________________________________________________ // -ACTION_IF !(FILE_EXISTS_IN_GAME ~d5_divine_slot_items.d5~) BEGIN +ACTION_IF !(FILE_EXISTS_IN_GAME ~d5__divine_slot_items.d5~) BEGIN ACTION_IF (FILE_CONTAINS_EVALUATED (~splstate.ids~ ~D5_SEMI_DIVINE~)) BEGIN COPY_EXISTING ~splstate.ids~ ~override~ @@ -3136,7 +3206,7 @@ ACTION_PHP_EACH priest_slot_items AS ind => slot_item BEGIN END -COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5_divine_slot_items.d5~ +COPY ~%MOD_FOLDER%/lib/semi_spont/d5_marker.d5~ ~override/d5__divine_slot_items.d5~ END diff --git a/TomeAndBlood/qd_tnb_settings.ini b/TomeAndBlood/qd_tnb_settings.ini index 286ff55..e8dd66a 100644 --- a/TomeAndBlood/qd_tnb_settings.ini +++ b/TomeAndBlood/qd_tnb_settings.ini @@ -2,7 +2,7 @@ //__________________________________________________________________________________ //__________________________________________________________________________________ // -// MIGHT & GUILE SETTINGS +// TOME & BLOOD SETTINGS //__________________________________________________________________________________ //__________________________________________________________________________________